Herkese iyi çalışmalar dilerim. Form üzerinde 30 adet bitbutonum var ve bunların bilgileri veritabanından çağırılıyor. Alt taraftaki kod bu yüzden bayağı bir uzuyor. Bunu nasıl bir döngüye alıp kod kalabalığından kurtulabilirim.
for i :=0 to form3.ComponentCount-1 do /// formdaki componentlerin index numaraları 0 dan başlar..
if form3.Components[i] is TButton then // i ninci komponent bir buton ise..
(Form3.Components[i] as TButton).Caption := 'etiket..'; ///
formda index numarasını bildigin bir komponentin tüm properties hatta eventslarını değiştirebilirsin..
for i :=0 to form3.ComponentCount-1 do /// formdaki componentlerin index numaraları 0 dan başlar..
if form3.Components[i] is TButton then // i ninci komponent bir buton ise..
begin
Form3.Components[i] as TButton).Caption := UniQuery1['tus_ismi']; ///
UniQuery1.next;
end;
var
I: Integer;
Buton: TObject;
begin
if UniTable1.RecordCount > 0 then
begin
UniTable1.First;
for I := 0 to UniTable1.RecordCount - 1 do
begin
Buton := FindComponent('BitBtn' + (i + 1).ToString);
if Assigned(Buton) and (Buton is TBitBtn) then
begin
TBitBtn(Buton).Caption := UniTable1['tus_ismi'];
TBitBtn(Buton).Glyph.LoadFromFile(UniTable1['tus_resmi']);
TBitBtn(Buton).hint := UniTable1['tus_barkodu'];
end;
UniTable1.next;
end;
end;
end;