Einzelnen Beitrag anzeigen

Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Hilfe mit published property einer Liste

  Alt 12. Feb 2017, 13:13
Der Nutzer der Komponente soll nur erlaubte Baudraten zur Auswahl haben z.B. (4800, 9600, 19200) als String oder als Integer.
Bei der Property kannst du erst mal entscheiden, ob du ein Integer oder rein Aufzählungstype verwenden willst.

Beim Aufzählungstype kann der Nutzer nur deine vorgegebenen Werte verwenden:

Delphi-Quellcode:
type
  TBaudRate = (bt2400,bt4800,bt9600);


  TMyCompo = class(Tobject)
    private
    FBaudRate: TBaudRate;
    procedure SetBaudRate(const Value: TBaudRate);
    public
      Property BaudRate:TBaudRate read FBaudRate write SetBaudRate;
    end;
Oder Du verwendest Integer als Type. Dann kannst du entweder im Setter eine Exception auslösen, wenn ein Wert verwendet wird, der nicht gültig ist.

Delphi-Quellcode:
procedure TMyCompo.SetBaudRate(const Value: Integer);
begin
  if not
    (
    (value = 2400) or
    (value = 4800) or
    (value = 9600)
    ) then
    raise Exception.Create('Ungültiger Wert für die BaudRate');

  FBaudRate := Value;
end;



Oder Du setzt im Setter den naheliegensten Wert. (Beispiel: Nutzer möchte den Wert 4900 verwenden und du änderst im Setter den Wert auf den Gültigen Wert 4800.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de

Geändert von bernau (12. Feb 2017 um 13:20 Uhr)
  Mit Zitat antworten Zitat