[DBListBox] Not in Edit Mode

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod dyžon 8. 10. 2017 11:28

Zdravím,
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;
a po startu oba nejsou v Edit Insert.
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 ??
AMD FX-6300; Gigabyte 970A-DS3P; DDR3 8192MBytes; AMD Radeon HD 6700 Series
dyžon
Junior
Uživatelský avatar

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků