Вопрос по работе с ExtPascal

Модератор: Модераторы

Вопрос по работе с ExtPascal

Сообщение bloodlines » 07.07.2010 10:52:39

Собственно на
Код: Выделить всё
TExtWindow
есть
Код: Выделить всё
LoginEd: TExtFormTextField
. При нажатии на кнопку хочу считать значение LoginEd в переменную
Код: Выделить всё
LName : String;

Делаю так
Код: Выделить всё
LName := LoginEd.JSString(LoginEd.GetValue);


В результате в LName заноситься '-$72C7'. И так всегда, что бы я там не писал.
А вот это
Код: Выделить всё
LName := LoginEd.Value;

возвращает только значение, поставленное в Design.

Пожалуйста подскажите как получить строковое значение из TExtFormTextField? Что я не так делаю?
Аватара пользователя
bloodlines
постоялец
 
Сообщения: 100
Зарегистрирован: 05.11.2008 11:26:19

Re: Вопрос по работе с ExtPascal

Сообщение Brainenjii » 07.07.2010 12:42:05

Забавно ^_^ Уже задавался этим вопросом. Единственный вариант, как я понял - передавать нужное значение через Ajax.
Например:
Код: Выделить всё
  ...
  ExtButton1.On('click', Ajax(ExtButton1Click, ['value', LoginEd.GetValue]));
  ...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Вопрос по работе с ExtPascal

Сообщение bloodlines » 07.07.2010 12:54:13

Форум на code.google.com я читал. Но никак до конца не могу разобраться! Если не сложно то пожалуйста помогите мне с кодом

Код: Выделить всё
{$DEFINE UseRuntime}

unit LoginUn;
{$mode delphi}
{$H+}

interface

uses
  SysUtils, Classes, FileUtil,
{$IFDEF UseRuntime}
  Ext, ExtPascal, ExtPascalUtils, ExtForm,
  ExtData, ExtGrid, ExtUtil, ExtAir, ExtDd,
  ExtLayout, ExtMenu, ExtDirect, ExtState, ExtTree,
  ExtUxForm;

{
   Ext, ExtPascal, ExtPascalUtils, ExtForm,
  ExtData, ExtGrid, ExtUtil, ExtAir, ExtDd,
  ExtLayout, ExtMenu, ExtDirect, ExtState, ExtTree,
  ExtUxForm;
}

type
  {$M+}
  TExtPanel_Tab = TExtPanel;
  TExtFormTextField_Grid = TExtFormTextField;
  TExtFormNumberField_Grid = TExtFormNumberField;
  TExtFormDateField_Grid = TExtFormDateField;
  TExtFormTimeField_Grid = TExtFormTimeField;
  TExtFormCheckbox_Grid = TExtFormCheckbox;
  TExtFormComboBox_Grid = TExtFormComboBox;
  {$M-}

{$ELSE}
  ExtP_Design_Ctrls;
{$ENDIF}

{$M+}
type

  { TLoginWin }
  TLoginWin = class(TExtWindow)
    ConnectBtn: TExtButton;
    ExtFormLabel1: TExtFormLabel;
    ExtFormLabel2: TExtFormLabel;
    ExtFormLabel3: TExtFormLabel;
    SQLLog: TExtFormTextArea;
    LoginEd: TExtFormTextField;
    PassEd: TExtFormTextField;
    DBConn: TZConnection;
    ServiceQ: TZQuery;
  private
  public
    LoggedIn : boolean;
    constructor Create;
    procedure Show;
  published
   procedure ConnectBtnClick;
  end;
  {$M-}

implementation

uses
  AppThread, LConvEncoding;

procedure TLoginWin.ConnectBtnClick;
var
   LName, LPass : String;
begin

  LName := LoginEd.JSString(LoginEd.GetValue);
  LPass := PassEd.JSString(PassEd.GetValue);
// LName := LoginEd.Value;

end;

constructor TLoginWin.Create;
begin
  inherited;
{$IFDEF UseRuntime}
{$I LoginUn.inc}
{$ENDIF}

Closable := false;

PassEd.InputType  := itPassword;

ConnectBtn.On('click', Ajax(ConnectBtnClick,['value', LoginEd.GetValue]));

end;

procedure TLoginWin.Show;
begin
  inherited Show;
end;

end. 


Как в переменную LName занести значение LoginEd ?
Аватара пользователя
bloodlines
постоялец
 
Сообщения: 100
Зарегистрирован: 05.11.2008 11:26:19

Re: Вопрос по работе с ExtPascal

Сообщение Brainenjii » 07.07.2010 13:43:22

Вот так, например:
Код: Выделить всё
...
procedure TLoginWin.ConnectBtnClick;
var
   LName, LPass : String;
begin

  LName := CurrentThread.Query['value'];
  LPass := CurrentThread.Query['pass'];
// LName := LoginEd.Value;

end;

...

constructor TLoginWin.Create;
begin
  inherited;
{$IFDEF UseRuntime}
{$I LoginUn.inc}
{$ENDIF}

Closable := false;

PassEd.InputType  := itPassword;

ConnectBtn.On('click', Ajax(ConnectBtnClick,['value', LoginEd.GetValue, 'pass', PassEd.GetValue]));

end;

...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Вопрос по работе с ExtPascal

Сообщение bloodlines » 07.07.2010 13:57:05

Большое спасибо! Отличная штука этот ExtPascal! Только вот Ajax на мой взгляд немного доморошенная поделка. Кстати, думаю Вам стоит включить данный вопрос в свой мануал.
P.S. В Вашем мануале очень понравилась идея со встроенным в exe Indy WEB сервером.
Аватара пользователя
bloodlines
постоялец
 
Сообщения: 100
Зарегистрирован: 05.11.2008 11:26:19


Вернуться в Сети

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru