Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Непонятки с последовательностьюсобытий [D5]


stelius ©   (2004-04-30 11:52:00) 

Народ, объясните мне вот что:
Пишу:
//в главной форме
procedure TMainForm.Button1Click(sender: TObject);
begin
 fm1 := Tfm1.Create(self);
 fm1.ShowModal;
 fm1.Free;
end;
...
//в fm1
procedure Tfm1.FormCreate(sender: TObject);
begin
 qr1.Open;
end;

procedure Tfm1.DBLookupComboBox1Change(sender: TObject);
begin
 if qr1.Locate(...) then
   ...;
end;

procedure Tfm1.FormClose(sender: TObject);
begin
 qr1.Close;
end;


Ругается , что DataSet is closed. Это чего, событие OnChange контрола происходит раньше, чем событие OnCreate формы, на которой он лежит?


TransparentGhost   (2004-04-30 12:50:00) [1]

Poprobuj prover' keyvalue i itemindex posle vibora znachenija kotorogo net.
Vrode i KeyValue dolzhen bit' raven ili '' ili -1.
i itemindex = -1.
prover' kto iz nih ukazivajet na vibor ne sushestvujushej zapisi i togo ispol'zuj.

sam proverit' ne mogu - u menja D3 i u DBLookupComboBox net sobitija onChange.


stelius   (2004-04-30 12:43:00) [2]

2TransparentGhost   (30.04.04 12:34) [12]
а если в него ввели значение, которого нет в qr1?


TransparentGhost   (2004-04-30 12:34:00) [3]

DBLookupComboBox1.keyValue:=.. ne spasjot na on create?
A na onChange zachem peremeshaca po LookUpTable? razve combobox sam etogo ne delajet?


stelius   (2004-04-30 12:14:00) [4]

точнее qr1 для DBLookupComboBox1 является LookupTable, а data sourse у него другой Query


Плохиш   (2004-04-30 12:13:00) [5]

>stelius ©   (30.04.04 12:09) [6]

qr1, хотя это не поможет :-)
Лучше проверяй qr1.Active в DBLookupComboBox1Change


MIKE kouzmine   (2004-04-30 12:13:00) [6]

procedure Tfm1.DBLookupComboBox1Change(sender: TObject);
begin
if qr1.active and qr1.Locate(...) then
  ...;
end;


TransparentGhost   (2004-04-30 12:13:00) [7]

Da, tochno...upustil iz vidu :o)
Tol'ko chto rabotal s formoj cherez SHOW, potomu i misli jesho na toj storone :o)


stelius   (2004-04-30 12:11:00) [8]


> Плохиш   (30.04.04 12:07) [5]
> Хотя, скорее всего ты меняешь DBLookupComboBox1 при создании
> формы

DBLookupComboBox1 привязан к полю дргого Query


stelius   (2004-04-30 12:09:00) [9]


> Плохиш   (30.04.04 12:05) [4]
> Установи свойство Active в false в дезеинере

Active чего?


Плохиш   (2004-04-30 12:07:00) [10]

>stelius ©   (30.04.04 11:52)

Хотя, скорее всего ты меняешь DBLookupComboBox1 при создании формы


Плохиш   (2004-04-30 12:05:00) [11]

>stelius ©   (30.04.04 11:52)

> Ругается , что DataSet is closed. Это чего, событие OnChange
> контрола происходит раньше, чем событие OnCreate формы,
> на которой он лежит?

Установи свойство Active в false в дезеинере

> TransparentGhost   (30.04.04 11:59) [2]
> ne ponjal smisla :

ShowModal/b> - волшебное слово


stelius   (2004-04-30 12:04:00) [12]

fm1.free произойдет после закрытия формы, т.к. она ShowModal


TransparentGhost   (2004-04-30 11:59:00) [13]

ne ponjal smisla :

fm1 := Tfm1.Create(self);
fm1.ShowModal;
fm1.Free;

pokazat' i srazu razrushit' formu?
Zachem pokazivat' jesli vsjo-ravno vrjat-li pol'zovatel' jejo zametit?


TransparentGhost   (2004-04-30 11:56:00) [14]

Pri sozdanii formi sozdajutsja vse komponenti lezhashije na nej, pri sozdanii kazhdogo komponenta vizivajutsja jego svojstva, a uzh v samom konce tebe dajotsja vozmozhnost' nanesti poslednije shtrihi cherez Form.OnCreate.


Наверх

Титульная страница Поиск, карта сайта Написать письмо