![]() |
AW: Classe/Interface aus WinProc aufrufen
Zitat:
Das ist zum Verständnis vielleicht wichtig, da wir hier schon so lange um den Brei herum reden. Wenn ein Objekt 5 Interfaces unterstützt und 3 Interfaces je einer Interfacevariablen zugewiesen sind, ist der RefCounter des Objektes = 3. |
AW: Classe/Interface aus WinProc aufrufen
Zitat:
|
AW: Classe/Interface aus WinProc aufrufen
Zitat:
Ich suche das jetzt raus. Zitat:
Dann tue ich folgendes..
Delphi-Quellcode:
Hier setze ich alle variablen auf 0, NIL oder wie auch immer danach ist mein Interface NIL (Da keine Variable mehr in gebrauch ist.)
// TODO
FillChar(SkinPopUpMenu, SizeOf(SkinPopUpMenu), 0); if not Assigned(SkinPopUpMenu) then PopUpCallback(OnPopupDestroyed); Darf man aber anscheinend auch nicht. Und ja ich weis das man eine Variable direkt auf Nil setzen kann wäre es nicht so dann sollte man es direkt lassen. Aber da hat man mir dann wieder zwischen gepfuscht mit der Meldung nein man darf kein Interface selbst auf NIL setzen.
Delphi-Quellcode:
SkinPopUpMenu := Nil;
Ehrlich keine Ahnung was das noch soll. Wie man es macht, macht man es falsch. Hätte man mich nicht so irritiert mit den Referenz Zähler dann hätte ich schon lange einfach vor
Delphi-Quellcode:
PopUpCallback(OnPopupDestroyed);
Einfach
Delphi-Quellcode:
SkinPopUpMenu := Nil;
gesetzt und fertig. Wäre ja nicht das erste mal das ich eine Variable auf NIL setze LOL. Zitat:
Mich interessiert das überhaupt nicht ob der Zähler 0 oder auf 3 steht. Mich interessiert nur eins kann ich mein Interface selbst auf NIL setzen oder nicht. Dann wäre meine Lösung diese
Delphi-Quellcode:
und fertig .. alles so wie gehabt. (Bei normalen Classen)
SkinPopUpMenu := nil;
PopUpCallback(OnPopupDestroyed); gruss |
AW: Classe/Interface aus WinProc aufrufen
Genau so ist es korrekt. Berichte mal, ob dann alles funktioniert.
Wenn Du mit Interfaces incl. Referenzzählung arbeitest, dann nie bei dem Objekt hinter dem Interface Free aufrufen! Immer nur Interfacevariablen Nil zuweisen. Bei der letzten Nil-Zuweisung wird Free automatisch ausgeführt. Dafür ist die Referenzzählung da. Wie schon mal gesagt: "InterfaceObject.Free" ist etwas völlig anderes als "MyInterfaceVariable := Nil" |
AW: Classe/Interface aus WinProc aufrufen
Zitat:
Warum auch nicht. Ich habe mich hier einfach nur verrückt machen lassen weil entschuldige kein Angriff gegen irgend jemanden jeder etwas anderes gesagt hat. Zitat:
gruss |
AW: Classe/Interface aus WinProc aufrufen
Du hast das m.E. nur falsch verstanden. Ist auch kein Vorwurf. :-)
Ich habe auch Interfaces schon eine Weile genutzt, bis ich die Zusammenhänge wirklich verstanden habe. Jetzt ist mir gar nicht klar, was daran so schwierig war. Auch durch so eine Diskussion hier festigt man die eigenen Kenntnisse. Insofern profitieren hier alle. :thumb: |
AW: Classe/Interface aus WinProc aufrufen
Ich denke da ich kein Informatiker bin .. ist es mir auch nicht so geläufig die richtigen Ausdrücke für ein Problem zu definieren.
Auf Grund dessen entstehen die Probleme mit denen ich zu kämpfen habe. (siehe Spaghetti Code) usw... für mich stellt dann so etwas einen Angriff gegen meine Person dar. Ich bin ja nicht blöd.. hab ich wohl schon bewiesen aber mir fehlt es halt an den Dingen die ein Informatiker als selbstverständlich voraussetzt. Aber das muss man nicht alles wissen. ;) PS: EurekaLog ist ein mächtiges Werkzeug :) Habe mal die 30Tage Test Version versucht. Feines Teil. gruss |
AW: Classe/Interface aus WinProc aufrufen
Wir helfen uns ja hier gegenseitig und freiwillig.
Persönliche Angriffe gibt es ja hier zum Glück so gut wie nicht - ist ja leider selten im Netz, dass es so freundlich zugeht. Insofern muss man nur versuchen, nicht aneinander vorbei zu reden. An Dich der Tipp: Es wäre vielleicht etwas geordneter zugegangen, wenn Du die Probleme und Fragen präziser formuliert hättest. Wobei mir auch klar ist, dass das manchmal nicht so einfach ist, wenn man die Zusammenhänge noch nicht richtig einordnen kann. Geht ja fast jedem so. |
AW: Classe/Interface aus WinProc aufrufen
Zitat:
Nur. Ich bin Hobbykoch und da kennt man auch nicht jede Apfelsorte ;) So sieht s jetzt aus und ist gut genug für mich. gruss |
AW: Classe/Interface aus WinProc aufrufen
Also die Optik entschädigt jede Mühe. Das hast Du echt drauf. :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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 by Thomas Breitkreuz