Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String als default bei propertys ??? (https://www.delphipraxis.net/74482-string-als-default-bei-propertys.html)

mkinzler 3. Aug 2006 21:01

Re: String als default bei propertys ???
 
Zitat:

Wie geht das mit dem Constructor???
Delphi-Quellcode:
if VCommPort = '' then VComport := 'Defaultwert';

EDatabaseError 3. Aug 2006 21:01

Re: String als default bei propertys ???
 
Zitat:

Zitat von CK_CK
Deine Komponente hat doch bestimmt eine OnCreate-Prozedur, oder?

Und da schreibst du einfach rein:
Delphi-Quellcode:
Port:= 'Com1';
Eine andere Möglichkeit wäre eine Variable dieses Typs (statt String):
Delphi-Quellcode:
type
  TPort = (Com1,Com2,Com3);

:oops: Das ist meine erste Componente... nein ich hab kein oncreate
es sollten schon strings sein

CK_CK 3. Aug 2006 21:02

Re: String als default bei propertys ???
 
Zitat:

Zitat von Dax
@CK_CK: OnCreate ist ein Event von TForm und noch paar andren Klassen, wenn ich mich nich irre... Meinst du AfterConstruction?

Nein, ich meinte die überschriebene Create-Prozedur, hab' mich falsch ausgedrückt... (dein Code ist genau, was ich meinte...)

@EDatabaseError: Füge einfach Dax's Code ein (das mit dem Constructor und Create...)

SirThornberry 3. Aug 2006 21:09

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: http://www.dsdt.info/tutorials/crashkurs/?page=8

EDatabaseError 3. Aug 2006 21:10

Re: String als default bei propertys ???
 
Delphi-Quellcode:
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;
Schaut euch mal den Code an :cry:

mkinzler 3. Aug 2006 21:12

Re: String als default bei propertys ???
 
Zitat:

constructor Create( AOwner: TComponent); override;
Properties gehören in den published Abschnitt

SirThornberry 3. Aug 2006 21:15

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.

EDatabaseError 3. Aug 2006 21:16

Re: String als default bei propertys ???
 
danke :thumb:

Hansa 4. Aug 2006 00:10

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.

SirThornberry 4. Aug 2006 07:39

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.
Seite 2 von 3     12 3      

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