Kolego Misiekd mam pytanie.
Czy dobrze rozumiem, że zaznaczenie rekordu w gridzie powoduje zaznaczenie tego samego rekordu w tabeli, tak, że cała pętla until staje się niepotrzebna? (jestem twórcą tego nieszczęsnego kodu i szczerze mówiąc założyłem że zaznaczając uda mi się jedynie pobrać wartość, żeby później po przeszukaniu tabeli pętlą dopasować do niej rekord)
EDIT: Bilobil3 - można zmieniać szerokości kolumn w ich parametrach po wybraniu ich z listy Structure
EDIT2: misiekd - hm... to chyba niemożliwe, zeby działało bez pętli...? U mnie nie działą taka procedura jak poniżej:
procedure Tf_kontrahenci.grid_kontrahenciCellClick(Column: TColumn);
var id:string;
begin
id:=grid_kontrahenci.Fields[0].AsString;
e_id.clear;
e_imie.Clear;
e_nazwisko.Clear;
e_telefon.Clear;
e_ulica.Clear;
e_nr_domu.Clear;
e_nr_mieszkania.Clear;
e_kod_pocztowy.Clear;
e_miasto.Clear;
e_nip.Clear;
e_firma.Clear;
e_regon.Clear;
e_rabat.Clear;
t_kontrahenci.First;
//while not t_kontrahenci.Eof do
// begin
// if t_kontrahenci.fieldvalues['id_kontrahenta']=id then
begin
if t_kontrahenci.fieldvalues['id_kontrahenta']<>NULL then e_id.text:=t_kontrahenci.fieldvalues['id_kontrahenta'];
if t_kontrahenci.fieldvalues['imie']<>NULL then e_imie.text:=t_kontrahenci.fieldvalues['imie'];
if t_kontrahenci.fieldvalues['nazwisko']<>NULL then e_nazwisko.Text:=t_kontrahenci.fieldvalues['nazwisko'];
if t_kontrahenci.fieldvalues['telefon']<>NULL then e_telefon.text:=t_kontrahenci.fieldvalues['telefon'];
if t_kontrahenci.fieldvalues['ulica']<>NULL then e_ulica.Text:=t_kontrahenci.fieldvalues['ulica'];
if t_kontrahenci.fieldvalues['nr_domu']<>NULL then e_nr_domu.Text:=t_kontrahenci.fieldvalues['nr_domu'];
if t_kontrahenci.fieldvalues['nr_mieszkania']<>NULL then e_nr_mieszkania.Text:=t_kontrahenci.fieldvalues['nr_mieszkania'];
if t_kontrahenci.fieldvalues['kod_pocztowy']<>NULL then e_kod_pocztowy.Text:=t_kontrahenci.fieldvalues['kod_pocztowy'];
if t_kontrahenci.fieldvalues['miasto']<>NULL then e_miasto.Text:=t_kontrahenci.fieldvalues['miasto'];
if t_kontrahenci.fieldvalues['nip']<>NULL then e_nip.text:=t_kontrahenci.fieldvalues['nip'];
if t_kontrahenci.fieldvalues['nazwa_firmy']<>NULL then e_firma.Text:=t_kontrahenci.fieldvalues['nazwa_firmy'];
if t_kontrahenci.fieldvalues['regon']<>NULL then e_regon.Text:=t_kontrahenci.fieldvalues['regon'];
if t_kontrahenci.fieldvalues['rabat']<>NULL then e_rabat.Text:=t_kontrahenci.fieldvalues['rabat'];
end;
// t_kontrahenci.Next;
// end;
end;
Daje to dość oczywisty efekt. Zczytanie po kliknieciu zawsze wartości pierwszego rekordu (t_kontrahenci.first).
FINAL EDIT: Boze, co za głupota, cała ta procedura powinna być znacznie prostsza i wyglądac tak:
procedure Tf_kontrahenci.grid_kontrahenciCellClick(Column: TColumn);
begin
e_id.text:=grid_kontrahenci.Fields[0].AsString;
e_imie.text:=grid_kontrahenci.Fields[1].AsString;
e_nazwisko.text:=grid_kontrahenci.Fields[2].AsString;
e_telefon.text:=grid_kontrahenci.Fields[3].AsString;
e_ulica.text:=grid_kontrahenci.Fields[4].AsString;
e_nr_domu.text:=grid_kontrahenci.Fields[5].AsString;
e_nr_mieszkania.text:=grid_kontrahenci.Fields[6].AsString;
e_kod_pocztowy.text:=grid_kontrahenci.Fields[7].AsString;
e_miasto.text:=grid_kontrahenci.Fields[8].AsString;
e_nip.text:=grid_kontrahenci.Fields[9].AsString;
e_firma.text:=grid_kontrahenci.Fields[10].AsString;
e_regon.text:=grid_kontrahenci.Fields[11].AsString;
e_rabat.text:=grid_kontrahenci.Fields[12].AsString;
end;