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

Вниз

как обрабатывается событие OnCreate ???????   Найти похожие ветки 

 
-=snoop=- ©   (2005-07-14 15:12) [0]

всем еще раз привет, дело такое,есть Form1, которая видет Form2

...
implementation
uses workWithGrupp;
...

для Form2 описано событие он креате, в которое передается переменная gGruppName, само событие отрабатывается вот каким кодом

gADOq := TADOQuery.Create(form2) ;
 gADOq.Name := "gADO" ;
 gADOq.CursorLocation := clUseClient ;
 gADOq.CursorType := ctStatic ;
 gADOq.ParamCheck := false ;
 gADOq.ConnectionString :=
      "Provider= VFPOLEDB.1;"+
      "Data Source="+gPthVl+"\pro\;"+
      "Password="";Collating Sequence=MACHINE" ;
 gADOq.SQL.Clear ;
gADOq.SQL.Add("SELECT a.name, a.Arm_00,a.Arm_01,a.Arm_02,a.Arm_03,a.Arm_05,a.Arm_06,a.Arm_09,a.Arm_mg,a.Arm_14,a.Arm_tz,a.Arm_tv,a.Arm_pd,a.Arm_ex,a.A rm_cn,a.Arm_tx,"+
          "b.lbl_name, b.lbl_path, b.lbl_code FROM E:\work\!userbst\grupp a INNER JOIN label.pro b ON a.predpr=b.lbl_code WHERE trim(Name)="+""""+gGruppName+"""") ;
gADOq.Active := true ;

я долго не мог понять, почему запрос не выдает ни каких данных!
для проверки значения gGruppName зделал вывод на экран этой переменной

form2.Caption := "Группа для редактирования"+gGruppName ;
showmessage(gGruppName) ;

далее произошло, то чего я ждал((( но это не вызвало у меня особого восторга. при загрузки Form1 отработался showmessage, который естественно вернул пустое значение!!!
вызов процедуры следующий

procedure TForm2.FormCreate(Sender: TObject)
...


какой-то глюк!


 
MetalFan ©   (2005-07-14 15:14) [1]

брр... товарищ! вы в терминах определитесь!
> вызов процедуры следующий
>
> procedure TForm2.FormCreate(Sender: TObject)

какой же это вызов?!


 
DiamondShark ©   (2005-07-14 15:14) [2]


> для Form2 описано событие он креате, в которое передается
> переменная gGruppName

Это, интересно, как же?


 
ANB ©   (2005-07-14 15:15) [3]


> для Form2 описано событие он креате, в которое передается
> переменная gGruppName,
- а как ты переменную то передешь в событие ????


 
-=snoop=- ©   (2005-07-15 06:03) [4]

в Form1 у меня определна переменная gGruppName, которой присваевается возвращенное значение от процедуры

procedure tform1.pgGrupGrdDblClick(Sender: TObject);
begin
 gGruppName := trim(gGrupGRD.DataSource.DataSet.FieldByName("Name").AsString) ;
 workWithGrupp.Form2.ShowModal() ;


 
-=snoop=- ©   (2005-07-15 06:44) [5]

а если в терминах, то возвпащается от процедуры обработки события pgGrupGrdDblClick


 
-=snoop=- ©   (2005-07-15 07:00) [6]

как-бы я не тупил с терминами, вопрос остается, и звучит примерно так - "какого чьЁрта отрабатывается OnCreate формы, которая загружается ТОЛЬКО ПОСЛЕ того как я дважды клину по гриду на первой форме"


 
gydvin   (2005-07-15 09:26) [7]

Потому что событие OnCreate возникает непосредственно после создания формы. А form2 как я понял дочерняя тоже создается вместе с главной но невидимо пока

ТОЛЬКО ПОСЛЕ того как я дважды клину по гриду на первой форме"

потому всю процедуру из form2.oncreate перенеси в form2.onshow


 
-=snoop=- ©   (2005-07-15 09:32) [8]

а как можно отключить создание всех дочерних объектов?


 
ЮЮ ©   (2005-07-15 09:42) [9]

Project > Options > Forms
Там два "контейнера" для форм, левый - для автосоздаваемых.

З.Ы. исключив фориу из автосоздаваеиых, теперь не забуть её создать раньше, чем использовать :)


 
gydvin   (2005-07-15 09:51) [10]

И удаляй после использования и главное предохраняйся вовремя использования 8)


 
-=snoop=- ©   (2005-07-15 10:00) [11]

а если у меня 100000 дочерних форм? они все создадуться? бред!


 
-=snoop=- ©   (2005-07-15 10:05) [12]

какой-то бред, создавать объект до его использования


 
Alexander Panov ©   (2005-07-15 10:07) [13]

-=snoop=- ©   (15.07.05 10:00) [11]
а если у меня 100000 дочерних форм? они все создадуться? бред!


а ты попробуй.

-=snoop=- ©   (15.07.05 10:05) [12]
какой-то бред, создавать объект до его использования


странно было бы наоборот делать.


 
Digitman ©   (2005-07-15 10:10) [14]


> -=snoop=- ©   (15.07.05 10:05) [12]
> какой-то бред, создавать объект до его использования


еще бредовей - пытаться использовать несуществующий объект


 
Anatoly Podgoretsky ©   (2005-07-15 10:18) [15]

Что такое бред, это не философский вопрос, а точный диагноз.


 
-=snoop=- ©   (2005-07-15 10:21) [16]

для чего создавать объект, если теоретически он не будет использован


 
gydvin   (2005-07-15 10:24) [17]

-=snoop=- ©   (15.07.05 10:21) [16]
для чего создавать объект, если теоретически он не будет использован

Ну это ты к дядюшке Борланду а еще лучше Билу


 
Anatoly Podgoretsky ©   (2005-07-15 10:26) [18]

-=snoop=- ©   (15.07.05 10:21) [16]
И даже класс в этом случае не стоит включать


 
Digitman ©   (2005-07-15 10:27) [19]


> -=snoop=- ©   (15.07.05 10:21) [16]


это тебе как прикладному программеру видне, будет или не будет ..


 
ЮЮ ©   (2005-07-15 10:42) [20]

>для чего создавать объект, если теоретически он не будет использован

А на кой ты тогда создавал эту форму (в дизайнере), да ещё в этом проекте, если даже теоретически она не будет использована? :)


 
-=snoop=- ©   (2005-07-15 10:53) [21]

да ладно ЮЮ, ты ведь прекрасно понимаешь, что есть редко используемые участки программы, такие как первоначальные настройки....

тогда я понять не могу, в каком событии нужно создавать елементы управления (DBGrid, DBCheckBox=в моем случае), в OnActivate =нельзя.....


 
Плохиш ©   (2005-07-15 10:54) [22]


> -=snoop=- ©   (15.07.05 10:21) [16]
> для чего создавать объект, если теоретически он не будет
> использован

Этот вопрос ты должен задать себе. На кой включать в проект классы, если теоретически они в проекте не будут использоваться, это уже патология.


 
Плохиш ©   (2005-07-15 10:56) [23]


> -=snoop=- ©   (15.07.05 10:53) [21]

Может тебе для начала забыть о практическом программировании и заняться теорией?


 
gydvin   (2005-07-15 10:58) [24]

-=snoop=- ©   (15.07.05 10:53) [21]  ответ
в [7]


 
ЮЮ ©   (2005-07-15 11:04) [25]

>ответ в [7]

нет в [9]. Ты сам определил, что экземпляр формы должен быть создан независимо от того, будет он использоваться или нет.

"перекинь форму" вправо и она не будет созлаваться. Тогда процесс создания экземпляра формы(созданной тобою в дизайне) во время выполнения программы, лежит на тебе.


 
Alexander Panov ©   (2005-07-15 11:08) [26]

-=snoop=- ©   (15.07.05 10:53) [21]

Если тебе не нужно, чтобы формы даже не появлялись в списке автосоздаваемых, поступай просто - создавай их в Runtime.


 
gydvin   (2005-07-15 11:17) [27]

ЮЮ ©   (15.07.05 11:04) [25]

Нет если формы выкинуть из списка автосоздоваемых то тогда [9], а если нет то [7]


 
-=snoop=- ©   (2005-07-15 11:20) [28]

спасибо, буду делать


 
gydvin   (2005-07-15 11:21) [29]

Alexander Panov ©   (15.07.05 11:08) [26]

Ох геморное енто занятие.

Это ж надо создать форму потом накидать компоненты которым присвоить процедуры. Брр ну нет лучше уж в дизайне.



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

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

Наверх




Память: 0.53 MB
Время: 0.057 c
1-1121945241
stud
2005-07-21 15:27
2005.08.07
подскажите где ошибка?


1-1121867870
ki11er
2005-07-20 17:57
2005.08.07
Shared Section


3-1120116915
Apachi
2005-06-30 11:35
2005.08.07
Возрощает ли ADOCommand количесво измененных записей


4-1118046120
Андрей Жук
2005-06-06 12:22
2005.08.07
Как перечислить потоки, которые привязаны к процессу?


3-1120209540
Dell3r
2005-07-01 13:19
2005.08.07
Помогите составить запрос