![]() |
Re: String als default bei propertys ???
Zitat:
Delphi-Quellcode:
if VCommPort = '' then VComport := 'Defaultwert';
|
Re: String als default bei propertys ???
Zitat:
es sollten schon strings sein |
Re: String als default bei propertys ???
Zitat:
@EDatabaseError: Füge einfach Dax's Code ein (das mit dem Constructor und Create...) |
Re: String als default bei propertys ???
die "Default" directive bestimmt nicht welchen Wert das Propertie nach dem erstellen hat.
Das "Default" dient dazu das Properties nicht in der DFM gespeichert werden wenn Sie eben diesen Wert haben. Wenn du willst das nach dem erstellen, die komponente bestimmte Wert hat, musst du den Constructor überschreiben und darin die Werte setzen. Und wie das geht solltest du in jedem ordentlichen oop-Tutorial lernen. Es hier zu posten bringt nix weil dir eben diese Grundlagen fehlen und somit nur weitere Fragen auftauchen würden welche mit einem ordentlichen Tutorial in 5 Minuten geklärt werden. Und so ein Tutorial gibts auf: ![]() |
Re: String als default bei propertys ???
Delphi-Quellcode:
Schaut euch mal den Code an :cry:
unit EDEComPort;
interface uses Windows, Messages, SysUtils, Classes, Controls, Dialogs; const DefaultComPort = 'Com1'; DefaultDataBits = 8; DefaultStopBits = 1; DefaultParity = 'none'; type TEDEComPort = class(TComponent) private { Private-Deklarationen } VComPort: String; VParity: String; VDataBits: Integer; VStopBits: Integer; procedure SetComPort(Value: String); procedure SetParity(Value: String); procedure SetDatabits(Value: Integer); procedure SetStopbits(Value: Integer); protected { Protected-Deklarationen } public { Public-Deklarationen } constructor Create; override; //<- Dekleration "Create" unterscheidet sich von vorheriger Dekleration function Open : Boolean; function Close : Boolean; procedure TX(Data: String); function RX : String; property ComPort: String read VComPort write SetComPort; property Parity: String read VParity write SetParity; property Databits: Integer read VDatabits write SetDatabits default DefaultDatabits; property Stopbits: Integer read VStopbits write SetStopbits default DefaultStopbits; published { Published-Deklarationen } end; procedure Register; implementation procedure Register; begin RegisterComponents('Tobias Hocke Software', [TEDEComPort]); end; constructor TEDEComPort.Create; begin inherited Create; //<- Nicht genügend wirkliche Parameter ComPort := DefaultComPort; end; |
Re: String als default bei propertys ???
Zitat:
|
Re: String als default bei propertys ???
@EDataBaseError: Wenn du eine Methode überschreibst musst diese die gleichen Parameter haben wie die originale. Ansonsten wäre ja unklar wie die überschriebene Methode aufgerufen wird wenn jemand die Methode der Basisklasse aufruft.
|
Re: String als default bei propertys ???
danke :thumb:
|
Re: String als default bei propertys ???
Bevor ich hier noch zerrissen werde : wenn string so nicht geht, dann orientiere Dich doch an AsyncPro. Die benutzen einen Aufzählungstyp (Com1,Com2...Com16...) Nacht.
|
Re: String als default bei propertys ???
String geht indirekt auch. Mann muss dort nur den Umweg über stored gehen. Also eine Funktion schreiben die zurück gibt ob default oder nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz