![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Непонятки с последовательностьюсобытий [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.