AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe mit published property einer Liste

Ein Thema von iphi · begonnen am 12. Feb 2017 · letzter Beitrag vom 12. Feb 2017
Antwort Antwort
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Hilfe mit published property einer Liste

  Alt 12. Feb 2017, 13:45
Delphi-Version: 7
Hallo,

als Anfänger weiß ich leider nicht, nach welchem Konstrukt ich suchen muss.
Daher hier die Beschreibung, was ich erreichen möchte:
Ich möchte in einer Komponente eine published property BaudRate haben.
Der Nutzer der Komponente soll nur erlaubte Baudraten zur Auswahl haben z.B. (4800, 9600, 19200) als String oder als Integer.
Wie lege ich sowas an?

Vielen Dank für Eure Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#2

AW: Hilfe mit published property einer Liste

  Alt 12. Feb 2017, 14: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 14:20 Uhr)
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#3

AW: Hilfe mit published property einer Liste

  Alt 12. Feb 2017, 14:24
Super, danke! Das hilft mir weiter.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Hilfe mit published property einer Liste

  Alt 12. Feb 2017, 16:34
Und bei Integer kann man sich 'nen eigenen Property-Editor basteln, der die Auswahl als Combobox im OI anbietet,
zuzüglich zur Begrenzung im Setter.
$2B or not $2B
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Hilfe mit published property einer Liste

  Alt 12. Feb 2017, 16:58
Gab es unter D7 schon Property-Editoren?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: Hilfe mit published property einer Liste

  Alt 12. Feb 2017, 18:57
AFAIK gab es Property Editoren schon unter Delphi 1. Verwechselst Du da etwas? Und zum Thema: wenn man nur genau festgelegte Werte angeben kann (wie eben bei der Baudrate) würde ich den Wert nicht als Integer definieren, sondern wie bereits erwähnt eine Aufzählung verwenden. Alles andere verwirrt doch nur.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz