Einzelnen Beitrag anzeigen

Roachford
(Gast)

n/a Beiträge
 
#35

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 12. Okt 2008, 12:01
Zitat von EWeiss:
wäre eine idee aber wie sieht es bei den Create aus wenn du mehrere Checkboxen addierst ?
Was meinst du mit "addieren"?

Der Constructor wird für jede neue Instanz durchlaufen. Wenn du nun eine neue Checkbox brauchst, lege dir eine neue Instanz an. Pro Instanz sind alle Felder der Klasse eindeutig (also jede Instanz hat für ihre Felder ihren eigenen Speicherplatz), ausser du deklarierst die Felder explizit als "class var".

Und auch würde ich den Status als property zusammenfassen:

Delphi-Quellcode:
    
  private
    function GetStatus: bool;
    procedure SetStatus(const AValue: bool);

  public
    ...
    property ButtonStatus: bool read GetStatus write SetStatus;
  end;

...

function TSkinCheckButton.GetStatus: bool;
begin
  Result := ( SendMessage(FButtonHandle, BM_GETCHECK, 0, 0) = BST_CHECKED );
end;

procedure TSkinCheckButton.SetStatus(const AValue: Bool);
const
  coStates: array[bool] of integer = (BST_UNCHECKED, BST_CHECKED);
begin
  SendMessage(FButtonHandle, BM_SETCHECK, coStates[AValue], 0);
end;
Um das nochmals zu verdeutlichen: Wenn du dir 2x diese Klasse anlegst, haben beide ihre eigenes FButtonHandle und somit auch jeweils ein eigenes Handle. Deshalb kann der Getter/Setter auch immer auf FButtonHandle zugreifen, da er das Handle der jeweiligen Instanz hat.
  Mit Zitat antworten Zitat