Lazarus 2.0.12 (2021.02.21.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Válasz: Komponens önmegsemmisítése 2013 ápr. 03 14:41 #1239

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 463
  • Köszönetek: 76
A következőt javaslom (kerülő megoldásként):
  1. Legyen a Form-nak egy KinyirandoElem:TComponent tulajdonsága
  2. A megsemmisítendő elem OnClick-jében a következőket kell tenni:
    • a form KinyirandoElem-ét állítsd a Sender-re (a megsemmisítendő elemre)
    • hívd a form Close metódusát
  3. A form OnCloseQuery-jében pedig ez a teendő:
    • ha a KinyirandoElem=nil akkor
      • CanClose:=True (bezárható a form)
    • ha a KinyirandoElem<>nil akkor
      • KinyirandóElem.Free
      • KinyirandoElem:=nil
      • CanClose:=False (nem zárható be a form)
... vagy ilyesmi.
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- FPC 3.3.1 -- Lazarus 2.1.0 -- GNU/Linux 5.4.0 x86_64

Válasz: Komponens önmegsemmisítése 2013 ápr. 02 03:19 #1238

  • k1attila1
  • k1attila1 profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 10
  • Köszönetek: 0
Helló

Nekem win32 alatt nem működik, de ha pl. az onExit eseménykezelőbe teszem a Free-t, akkor meg működik. Van ahol működik, van ahol meg nem.

Válasz: Komponens önmegsemmisítése 2013 ápr. 01 17:05 #1237

  • JohnnyK
  • JohnnyK profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 78
  • Köszönetek: 16
Szia!
Érdekességképpen 64 bites Linux alatt a dolog nálam látszólag működik Lazarus 1.0 és FPC 2.6.0-val.
A Button1.onClick eseménybe írt Button1.Free parancs hatására a Button1 gomb eltűnik szem elől.

Komponens önmegsemmisítése 2013 ápr. 01 05:58 #1236

  • k1attila1
  • k1attila1 profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 10
  • Köszönetek: 0
Sziasztok

Azt szeretném megkérdezni, hogy tudja-e valaki, hogy miként tudja egy komponens (objektum) önmagát megsemmisíteni LAZARUSBAN.

Azaz egy formra egy buttont teszek.
De az ONCLICK-be mit teszek, hogy egy gombnyomásra megsemmisítse önmagát ?

Ne csak eltüntesse, hanem NIL-re állítsa és eltünjön a tárhelyről.

Ha az ONCLICKbe Button1.Free-teszek, akkor kiakad.
(Nyilván, hisz a hivott függvény visszakar térni a hívó tárhelyre, de az már nincs meg.)

DELPHIBEN MŰKÖDIK EZ !!!!!!

  • Oldal:
  • 1