bestimmten Code einer Komponente einmalig zur Laufzeit ausführen

Rund um die LCL und andere Komponenten
Antworten
Daniel L.
Beiträge: 7
Registriert: Fr 18. Apr 2025, 10:39
OS, Lazarus, FPC: Lnux Mint
CPU-Target: 64Bit

bestimmten Code einer Komponente einmalig zur Laufzeit ausführen

Beitrag von Daniel L. »

Lazarus 3.2
Win-11, Linux-Mint

Hallo zusammen,

eine von mir abgeleitete Komponente von TStringGrid soll (nur!) zur Runtime-Creation einmalig einen bestimmten Code ausführen.

Überschreibe ich dafür den constructor create,
wird bereits zur Designtime-Creation der Code ausgeführt, (und dann noch mal zur Laufzeit).

Danke für Hinweise,

Daniel

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6848
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: bestimmten Code einer Komponente einmalig zur Laufzeit ausführen

Beitrag von af0815 »

Sowas in der Art ?

Code: Alles auswählen

  if (csDesigning in Sender.ComponentState) then EXIT;
Quelle: https://www.freepascal.org/docs-html/rt ... state.html und https://www.freepascal.org/docs-html/rt ... state.html
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: bestimmten Code einer Komponente einmalig zur Laufzeit ausführen

Beitrag von m.fuchs »

Du könntest ComponentState auswerten. Wenn csDesigning in dem Set enthalten ist, sollte deine Komponente im Designer sein.

Ist jetzt allerdings nur aus dem Kopf und ungetestet.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Daniel L.
Beiträge: 7
Registriert: Fr 18. Apr 2025, 10:39
OS, Lazarus, FPC: Lnux Mint
CPU-Target: 64Bit

Re: bestimmten Code einer Komponente einmalig zur Laufzeit ausführen

Beitrag von Daniel L. »

vielen Dank euch beiden,
ja, so gehts!
:D

Code: Alles auswählen

if (csDesigning in AOwner.ComponentState) then...
Gruß Daniel

Antworten