hallo zusammen,
ich habe eine kleine delphi-frage, vllt. weiss jmd. weiter. folgender code gegeben:
Delphi-Quellcode:
if Std div 32 = 0 then ShpStd32Akt.Brush.Color := FarbeInaktiv
else begin
ShpStd32Akt.Brush.Color := FarbeAktiv;
Std := Std - 32;
end;
if Std div 16 = 0 then ShpStd16Akt.Brush.Color := FarbeInaktiv
else begin
ShpStd16Akt.Brush.Color := FarbeAktiv;
Std := Std - 16;
end;
if Std div 8 = 0 then ShpStd8Akt.Brush.Color := FarbeInaktiv
else begin
ShpStd8Akt.Brush.Color := FarbeAktiv;
Std := Std - 8;
end;
if Std div 4 = 0 then ShpStd4Akt.Brush.Color := FarbeInaktiv
else begin
ShpStd4Akt.Brush.Color := FarbeAktiv;
Std := Std - 4;
end;
if Std div 2 = 0 then ShpStd2Akt.Brush.Color := FarbeInaktiv
else begin
ShpStd2Akt.Brush.Color := FarbeAktiv;
Std := Std - 2;
end;
if Std div 1 = 0 then ShpStd1Akt.Brush.Color := FarbeInaktiv
else begin
ShpStd1Akt.Brush.Color := FarbeAktiv;
Std := Std - 1;
end;
es geht um die darstellung einer binaeruhr. die shapes sind die "lichter". mit den if-anweisungen rechne ich aus, welche lichter "brennen" sollen und welche nicht. wie man siehst, ist das viel aehnlicher code. hinzu kommt, dass ich das gleiche ja nochmal fuer die minuten und sekunden mache. das sieht ineffizient aus. kann ich das in einer art schleife oder in einer separaten prozedur auslagern? das waere schoen. es gibt nur ein problem: die bezeichnernamen fuer die shapes sind jedes mal andere: ShpStd32Akt.Brush, ShpStd16Akt.Brush, ShpStd8Akt.Brush, ... kurzum:
kann ich in delphi einen bezeichnernamen --> im quellcode <-- durch eine variable dynamisch ergaenzen? z.b.:
ShpStdXAkt.Brush
und fuer X wird dann mit jedem z.b. prozeduraufruf ein individueller wert eingesetzt.
besten dank im voraus,
ltmick.