Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: bessere lösung für prozeduren
29. Okt 2011, 10:26
Hübscher, besser wartbar fände ich etwas in der Art:
Delphi-Quellcode:
implementation
{$R *.dfm}
type
TInfoRec=Record
Nr:Integer;
Caption:String;
End;
const
InfoRecArray:Array[1..5,1..4] of TInfoRec=(
(
(Nr : 1;Caption :'Name')
, (Nr : 2;Caption :'Kunden Nr')
, (Nr : -1;Caption :'')
, (Nr : -1;Caption :'')
),
(
(Nr : 1;Caption :'Name')
, (Nr : 3;Caption :'Artikel Nr')
, (Nr : 6;Caption :'Bezeichnung')
, (Nr : 7;Caption :'Lieferant')
),
(
(Nr : 2;Caption :'Kunden Nr')
, (Nr : 5;Caption :'Rechnungs Nr')
, (Nr : -1;Caption :'')
, (Nr : -1;Caption :'')
),
(
(Nr : 1;Caption :'Name')
, (Nr : 2;Caption :'Kunden Nr')
, (Nr : 4;Caption :'Auftrags Nr')
, (Nr : -1;Caption :'')
),
(
(Nr : 1;Caption :'Name')
, (Nr : -1;Caption :'')
, (Nr : -1;Caption :'')
, (Nr : -1;Caption :'')
));
procedure TForm1.DisplayArray(Nr:Integer);
var
i:Integer;
l:TLabel;
begin
Combobox1.Items.Clear;
for I := 1 to 4 do
begin
l := TLabel(FindComponent('Label' + IntToStr(i)));
if Assigned(l) then
begin
l.Visible := InfoRecArray[Nr,i].Nr >0;
l.Caption := IntToStr(InfoRecArray[Nr,i].Nr) + ' = ' + InfoRecArray[Nr,i].Caption;
if l.Visible then Combobox1.Items.Add(IntToStr(InfoRecArray[Nr,i].Nr));
end;
end;
Combobox1.ItemIndex := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DisplayArray(1);
end;
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
|
|
Zitat
|