Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.03;
Скачать: CL | DM;

Вниз

Как правильно присвоить значения сразу же после создания объекта?   Найти похожие ветки 

 
SP   (2009-03-17 16:34) [0]

unit FrameSetting;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs,Ora, StdCtrls;

type
 TFrmSetting = class(TFrame)
   GBxConnect: TGroupBox;
   LblName: TLabel;
   LblPass: TLabel;
   LblTNS: TLabel;
   LblSid: TLabel;
   LblServer: TLabel;
   LblPort: TLabel;
   EdName: TEdit;
   EdPass: TEdit;
   EdTNS: TEdit;
   EdSID: TEdit;
   EdServer: TEdit;
   EdPort: TEdit;
   CbODAC: TCheckBox;
   BtnTest: TButton;
   BtnSave: TButton;
   constructor Create(AOwner:TComponent;OraSession:TOraSession); reintroduce; overload;
 private
   FOraSession:TOraSession;
 public
   { Public declarations }
 end;

implementation
{$R *.dfm}
uses main;

constructor TFrmSetting.Create(AOwner:TComponent;OraSession:TOraSession);
begin
 Create(AOwner);
 FOraSession:=OraSession;
end;

end.


Но нужно сразу после создания фрейма сделать вот это:

 EdName.Text:=DBUsername;
 EdPass.Text:=DBPassword;
 EdTNS.Text:=DBTNS;
 EdSID.Text:=DBSID;
 EdServer.Text:=DBServer;
 EdPort.Text:=IntToStr(DBPort);
 CbODAC.Checked:=DBODAC;


Если помещестить все это в конструктор - то это не дает никаких результатов, думаю из-за того, что соответствующие объекты на то время еще не созданы (странно только что я при этом не получаю ексепшенов)

События OnCreate у фрейма нет...
Как мне правильно поступить?


 
SP   (2009-03-17 16:38) [1]

Можно конечно попробовать сделать через Рostmessage, но ИМХО это будет выглядеть по-идиотски


 
Anatoly Podgoretsky ©   (2009-03-17 16:45) [2]

> SP  (17.03.2009 16:34:00)  [0]

Сделай это в OnShow


 
Ega23 ©   (2009-03-17 16:46) [3]

перекрыть TFrame.AfterConstruction  ?


 
SP   (2009-03-17 16:54) [4]


> Сделай это в OnShow


Его у фрейма тоже нет..


> Ega23 ©   (17.03.09 16:46) [3]
>
> перекрыть TFrame.AfterConstruction  ?


Хм... Щас попробую.


 
SP   (2009-03-17 16:59) [5]


> перекрыть TFrame.AfterConstruction  ?


Работает. Спасибо!


 
MsGuns ©   (2009-03-17 16:59) [6]

Кстати действительно есть определенные неудобства оттого что у фрэйма нет OnCreate - приходится писать и извне вызывать методы, инициализирующие фрйэм. Аналогично при его разрушении

Может, я чего-то недопонимаю ?


 
Ega23 ©   (2009-03-17 17:11) [7]


> Может, я чего-то недопонимаю ?


Есть AfterConstruction, есть BeforeDestruction. Они виртуальные.


 
SP   (2009-03-18 00:15) [8]


> Они виртуальные.


Хм... Не то чтобы именно виртуальные, но пустые. По крайней мере в D7


 
Германн ©   (2009-03-18 00:25) [9]


> SP   (18.03.09 00:15) [8]
>
>
> > Они виртуальные.
>
>
> Хм... Не то чтобы именно виртуальные, но пустые.

Главное, что они именно виртуальные. Поэтому то что они пустые - это ерунда.


 
девушка   (2009-03-18 07:43) [10]


> Есть AfterConstruction, есть BeforeDestruction. Они виртуальные.


интересно, конечно...
Но я обычно пишу 2 метода - для инициализации и для очистки, а потом вы вызываю их в форме.
Одно из преимуществ - возможность передачи каких угодно параметров.


 
Ega23 ©   (2009-03-18 09:07) [11]


> Но я обычно пишу 2 метода - для инициализации и для очистки,
>  а потом вы вызываю их в форме.
> Одно из преимуществ - возможность передачи каких угодно
> параметров.
>


Ну и пиши свои методы, кто запрещает-то?
А вызов ставь в AC и BD. Или свой механизм придумывай.
Минус BeforeDestruction в том, что отменить действие не получится. В отличие от какого-нибудь Tform.OnCloseQuery


 
Cobalt ©   (2009-03-19 11:35) [12]

> Ega23 ©   (18.03.09 09:07) [11]
> Минус BeforeDestruction в том, что отменить действие не
> получится. В отличие от какого-нибудь Tform.OnCloseQuery


К фрейму это, слава богу, неприменимо. Это ж не форма какая, которую можно закрыть, или как "закрытие вкладки в Tab-контроле".


 
Плохиш ©   (2009-03-19 12:17) [13]


> SP   (18.03.09 00:15) [8]
>
>
> > Они виртуальные.
>
>
> Хм... Не то чтобы именно виртуальные, но пустые.

Как пустота связана с виртуальностью?



Страницы: 1 вся ветка

Текущий архив: 2009.05.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
15-1235747643
easy
2009-02-27 18:14
2009.05.03
Программер спит


2-1237293422
ivanoff
2009-03-17 15:37
2009.05.03
как получить список дней недели от Windows (на его языке)


15-1234962314
KSergey
2009-02-18 16:05
2009.05.03
Что движет авторами статей?


15-1235949803
Германн
2009-03-02 02:23
2009.05.03
Опять о программистах


2-1237900470
IIIakal
2009-03-24 16:14
2009.05.03
Помогите плиз разобраться с синтаксисом SQL запроса