Einzelnen Beitrag anzeigen

ltmick

Registriert seit: 31. Dez 2004
7 Beiträge
 
#1

bezeichnernamen im quellcode dynamisch zusammenbauen?

  Alt 1. Jun 2008, 12:56
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.
  Mit Zitat antworten Zitat