Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi komponeten eigenschaften (https://www.delphipraxis.net/9559-komponeten-eigenschaften.html)

LoL 29. Sep 2003 11:33

Re: komponeten eigenschaften
 
:wiejetzt:
? OI = Objekt Inspector?
wie soll mir das helfen?
ich will in der create prozedur einfach nur die eigenschaften meiner komponete festlegen!

Hansa 29. Sep 2003 11:41

Re: komponeten eigenschaften
 
Also sage doch mal genau was Du willst. Soll das ganze zur Laufzeit geschehen ? Dann schreibe das doch in deinem Constructor mit rein, daß die Farbe weiß ist. Direkt hinter dem inherited.

LoL 29. Sep 2003 11:44

Re: komponeten eigenschaften
 
weis ich:

Zitat:

Zitat von lol
ich habe ein komponente erstellt.
Delphi-Quellcode:
constructor TTest.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
  ---->Komponete weiß färben<-----
end;

und wie jetzt genau?(Source plz)

sakura 29. Sep 2003 11:47

Re: komponeten eigenschaften
 
Wie wäre es mit

Delphi-Quellcode:
constructor TTest.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
  Color := clWhite;
end;
...:cat:...

sakura 29. Sep 2003 11:50

Re: komponeten eigenschaften
 
Noch was zum Thema default. Der Wert der dort angeben wird, wird durch Delphi nicht automatisch initialisiert. Das gibt der IDE lediglich an, daß, wenn dieser Wert im OI eingetragen wird, daß dieser nicht gespeichert/geladen werden muss, da die Komponente dieses automatisch so tut ;-)

Delphi-Quellcode:
type
  TArt = (1, 2, 3, 4);

type
  TTest = class(tpanel)
  private
    { Private declarations }
    Art    : TArt;
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
  published
    { Published declarations }
    property nummer : TArt
                         read Art
                         write Art
                         default 3;
  end;
im Constructor müsste dieser Wert dann unbedingt gesetzt werden, ansonsten kann es zu unerwartetem Verhalten der Komponente kommen ;-)

Delphi-Quellcode:
constructor TTest.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
  Nummer := 3;
end;
...:cat:...

LoL 29. Sep 2003 11:50

Re: komponeten eigenschaften
 
auf das simpelste kommt man nicht! :wall:
und wie kann ich auf die eigenschaftsänderung reagieren?

sakura 29. Sep 2003 11:53

Re: komponeten eigenschaften
 
Auch recht einfach:

Code:
type
  TArt = (1, 2, 3, 4);

type
  TTest = class(tpanel)
  private
    { Private declarations } 
    Art    : TArt;
    [color=#f50000]procedure SetArt(Value: TArt);[/color]
  protected
    { Protected declarations } 
  public
    { Public declarations } 
    constructor Create(AOwner: TComponent); override;
  published
    { Published declarations } 
    property nummer : TArt
                         read Art
                         write [color=#ff0000]SetArt [/color]
                         default 3;
  end;

[color=#f50000]procedure TTest.SetArt(Value: TArt);
begin
  if Value <> Nummer then
  begin
    // ÄNDERUNG
    Nummer := Value;
  end;
end;[/color]
...:cat:...

sakura 29. Sep 2003 11:55

Re: komponeten eigenschaften
 
Ich gebe Dir mal noch einen Lesetipp, da steht das alles drinne ;-)

http://www.delphipraxis.net/internal_redirect.php?t=272

...:cat:...

Motzi 29. Sep 2003 12:49

Re: komponeten eigenschaften
 
Noch ein Lese-Tipp - meine OOP-Ausarbeitung: www.x-spy.net/personal ;)

LoL 29. Sep 2003 13:18

Re: komponeten eigenschaften
 
wenn ich das mache...

Zitat:

Zitat von sakura

if Value <> Nummer then
begin
// ÄNDERUNG
Nummer := Value; <------hier knallts
end;
end;

...meldet delphi einen stack überlauf!
kannst du mir helfen


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.
Seite 2 von 3     12 3      

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