Delphi-PRAXiS

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 active geht nicht (https://www.delphipraxis.net/105556-active-geht-nicht.html)

Matthias-k 24. Dez 2007 11:32


active geht nicht
 
hi leutz,

ich hab folgendes problem:

ich hab eine komponente, die die eigenschaft active besitzt. diese hab ich wie alle anderen eigenschaften deklariert.

Delphi-Quellcode:
  private
    FActive : boolean;

  published
    property Active : boolean read factive write factive;
jetzt möchte ich im oncreate prüfen, ob active auf true oder false gestellt wurde. aber egal, was ich im oi einstelle, factive ist IMMER false.

an einer anderen stelle wird active oder factive nicht beeinträchtigt.

Delphi-Quellcode:
  inherited Create(AOwner);
 
  if NOT (csDesigning in ComponentState) then
    if factive then
      loadproperties;
woran kann das liegen? weil das ist irgendwie ganz komisch.

mfg matthias

DeddyH 24. Dez 2007 11:36

Re: active geht nicht
 
Da ich nicht weiß, wovon Deine Komponente abgeleitet ist, tippe ich mal, dass bereits die Vorfahrklasse eine Eigenschaft Active besitzt.

Matthias-k 24. Dez 2007 11:43

Re: active geht nicht
 
Delphi-Quellcode:
  TDirectGridControl = class(TComponent)

MrSpock 24. Dez 2007 11:45

Re: active geht nicht
 
Hallo Matthias,

wenn du die Komponente auf das Formular gezogen hast und die Eigenschaften dann im OI bearbeiten willst, ist doch csDesigning im ComponentState, oder?

Matthias-k 24. Dez 2007 11:51

Re: active geht nicht
 
aber das create der kompo wird erst aufgerufen, wenn das programm gestartet wird.

vorher wird eigentlich kein quelltext ausgeführt. oderi rre ich mich da?

ansonsten muss ich mir was überlegen, wie ich das mache, das er beim start des programmes, wenn active true ist, die einstellungen lädt.

thkerkmann 24. Dez 2007 11:59

Re: active geht nicht
 
Hi,

beim Create der Kompo ist dein fActive immer false, weil die Kompo noch gar nicht fertig geladen ist.
Dazu gibt es das Ereignis Loaded, welches dir anzeigt, dass die Kompo vollständig aus der dfm ge'loaded' ist.

Hier kannst Du nun prüfen, ob fActive einen bestimmten Zustand, so wie im OI eingestellt hat.

Dazu mußt du die Methode Loaded allerdings überschreiben. Schau dir das mal in der Online Hilfe an.

Frohes Fest :-D

P.S. Wieso gibt es eigentlich für die OH keinen Button in der Such-Anfragen Einstellung des Boards ? :roll:

Matthias-k 24. Dez 2007 16:05

Re: active geht nicht
 
hi,

ich hab jetzt die loaded methode per override überschrieben.

klappt einwandfrei!

danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 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