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 Instanz von TSpeedButton freigeben? ---Funzt immer noch nict (https://www.delphipraxis.net/25679-instanz-von-tspeedbutton-freigeben-funzt-immer-noch-nict.html)

shareholder 10. Jul 2004 12:09


Instanz von TSpeedButton freigeben? ---Funzt immer noch nict
 
in meiner prozedur steht:


TSpeedButton.Free;


aber kommt die meldung:

Zugriffsverletzung bei Adresse BLA. Lesen von BLA...

woran liegt da?

alcaeus 10. Jul 2004 12:26

Re: Instanz von TSpeedButton freigeben?
 
Zitat:

Zitat von shareholder
TSpeedButton.Free;

Du versuchst die Klasse freizugeben. Der korrekte Aufruf lautet:

Delphi-Quellcode:
SpeedButton1.Free;
(Statt SpeedButton1 musst du die entsprechende Objektvariable einsetzen, nicht den Klassennamen)

Greetz
alcaeus

shareholder 10. Jul 2004 12:32

Re: Instanz von TSpeedButton freigeben?
 
wie müsste die zeile dann aussehen?

(TSpeedButton(Sender).Name as TSpeedButton).Free;
Funktioniert nicht. :(

alcaeus 10. Jul 2004 12:55

Re: Instanz von TSpeedButton freigeben? ---Funzt immer noch
 
Sag mal wo du den freigeben willst. Normalerweise:
Delphi-Quellcode:
TSpeedButton(Sender).Free;
Greetz
alcaeus

shareholder 10. Jul 2004 13:01

Re: Instanz von TSpeedButton freigeben? ---Funzt immer noch
 
ups, hab mich im ersten beitrag oben verschrieben.

meinte eigentlich, das bei "TSpeedButton(Sender).Free"
die genannte Fehlermeldung erscheint.

Übrigens steht bei mir nach dem compilieren folgende Meldung:
"[Warnung] test.pas(14): Methode 'MausMachMalDown' verbirgt virtuelle Methode vom Basistyp 'TControl'"

was bedeutet das?

MrKnogge 10. Jul 2004 13:50

Re: Instanz von TSpeedButton freigeben? ---Funzt immer noch
 
Poste doch mal bitte die prozedur "MausMachMalDown".

anku 10. Jul 2004 14:36

Re: Instanz von TSpeedButton freigeben? ---Funzt immer noch
 
Delphi-Quellcode:
FreeAndNil( Sender);
oder so??

mfg

Christian Seehase 10. Jul 2004 15:36

Re: Instanz von TSpeedButton freigeben? ---Funzt immer noch
 
Moin Shareholder,

was Deine Fehlermeldung angeht:

Zitat:

Zitat von Delphi Hilfe zu procedure Free
Warnung
Sie dürfen eine Komponente nie in einer ihrer eigenen Ereignisbehandlungsroutinen oder in einer Ereignisbehandlungsroutine eines untergeordneten Objekts freigeben. Geben Sie beispielsweise auf keinen Fall eine Schaltfläche oder ihr übergeordnetes Formular in der OnClick-Ereignisbehandlungsroutine der Schaltfläche frei.

Für das andere Problem mach' bitte einen neuen Thread auf.
Danke.

Jens Schumann 10. Jul 2004 15:42

Re: Instanz von TSpeedButton freigeben? ---Funzt immer noch
 
Zitat:

Zitat von shareholder
meinte eigentlich, das bei "TSpeedButton(Sender).Free"
die genannte Fehlermeldung erscheint.

Kann es sein, dass Du versuchst den SpeedButton innerhalb des OnClick EventHandlers desselben freizugeben. Wenn ja - ist es Doch kein Wunder, dass die Fehler Meldung erscheint.
Der SpeeButton ruft "seinen" EventHandler auf und führt den Code innerhalb des Handlers aus.
Wenn alles abgearbeitet wurde wird versucht zum SpeedButton zurückzukehren. Dummerweise
ist der SpeedButton nicht mehr da. Daher endet der Rücksprung im Nirvana.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr.

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