mám takovej záhadnej problém a chtěl bych vás poprosit o pomoc.
mám na Formu 2x TDBListBox.
oba čerpají z jedne databáze, ale každej z nich má vlastní TDataSource, TIBQuery, TIBTransaction a TIBUpdate.
ve FormCreate je naplním daty, každej z jiné tabulky.
zatím je všechno v pohodě, ale když kliknu na jeden z nich a pak na druhej, u druhyho to vyhodí hlášku:
Not in Edit mode
- Kód: Vybrat vše
procedure TForm1.DBListBox1Click(Sender: TObject);
var vybranejRadek: Integer;
begin
vybranejRadek:= DBListBox1.ItemIndex;
with IBQ_1 do begin
MoveBy(-DBListBox1.Items.Count);
MoveBy(vybranejRadek);
end;
DBListBox1.ItemIndex:= vybranejRadek;
end;
procedure TForm1.DBListBox2Click(Sender: TObject);
var vybranejRadek: Integer;
begin
vybranejRadek:= DBListBox2.ItemIndex;
with IBQ_2 do begin
MoveBy(-DBListBox2.Items.Count);
MoveBy(vybranejRadek);
end;
DBListBox2.ItemIndex:= vybranejRadek;
end;
zajimavy je, že když na form přidám nějakou další komponentu, která má focus, tak po prvním kliknutí na kterejkoliv DBListBox se stejná chyba ukáže i při kliknutí na ni.
prostě jak jednou kliknu na kterejkoliv DBListBox, už nemůžu kliknout na nic jinyho, co má focus.
přes TTimer si nechávám vypsat stav Datasetu:
- Kód: Vybrat vše
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not (DBListBox1.DataSource.DataSet.State in [dsEdit, dsInsert]) then
begin
Label5.Caption:= 'DBListBox1 není v Insert Edit';
end else begin
Label5.Caption:= 'DBListBox1 je v Insert Edit';
end;
if not (DBListBox2.DataSource.DataSet.State in [dsEdit, dsInsert]) then
begin
Label6.Caption:= 'DBListBox2 není v Insert Edit';
end else begin
Label6.Caption:= 'DBListBox2 je v Insert Edit';
end;
end;
když kliknu na DBListbox1, tak dataset DBListbox2 se změní na je v Edit Insert ale DBListBox1 zůstane není v Edit Insert.
to samé je i obráceně.
vůbec nechápu, o co tady jde ...
pomůžete mi s tím prosím někdo ??