Wenn ihr das Ganze
OOP-mäßig gestaltet, dann könntet ihr euch einige Objekte erstellen
z.B.
Delphi-Quellcode:
type TAmpelStatus = (asRot, asRotGelb, asGelb, asGruen, asGelbBlinkend);
TAmpel2 = class
private
x, y: Integer; // die Koordinaten, wo sie auf dem Bildschirm gezeichnet wird
PortRot: Integer; // die Adressen der entsprechenden LED
PortGruen: Integer; //
Status: TAmpelStatus;
public
Constructor Erstelle(x, y: Integer; PortRot, PortGruen: Integer);
Procedure Umstellen(NeuerStatus: TAmpelStatus);
Prozedure Zeichne(Zeichenflaeche: TCanvas);
end;
TAmpel3 = class
private
x, y: Integer; // die Koordinaten, wo sie auf dem Bildschirm gezeichnet wird
PortRot: Integer; // die Adressen der entsprechenden LED
PortGelb: Integer; //
PortGruen: Integer; //
BlinkerAn: Boolean; // einfach bei jedem Zeichnen umschalten und zusammen
Status: TAmpelStatus; // mit asGelbBlinkend auf das Gelb anwenden
public
Constructor Erstelle(x, y: Integer; PortRot, PortGelb, PortGruen: Integer);
Procedure Umstellen(NeuerStatus: TAmpelStatus);
Prozedure Zeichne(Zeichenflaeche: TCanvas);
end;
Die Komponenten wissen wie sie selber aussehn und welche LEDs sie ansteuern müssen.
Somit muß sich das Steuerprogramm nicht darum kümmern.
Jetzt könnt ihr im Programm einfach alle nötigen Ampeln erzeugen und jede Ampel kann sich dann selber auf eine Zeichenfläche malen und die zugehörigen LEDs ansteuern.
Dann braucht ihr nur noch das Programm erstellen, welches diese Komponenten ansteuert.