AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 12:17

Parameter dieser Suchanfrage:

Suche in Thema: Classe/Interface aus WinProc aufrufen
Suche alle Beiträge, die von "stahli" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 15 von insges. 15 Treffern
Suche benötigte 0.001s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Also die Optik entschädigt jede Mühe. Das hast Du echt drauf. :thumb:
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    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...
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    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:
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    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...
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Noch genauer wäre: "... wenn alle Referenzen auf das InterfaceObject Nil sind ..."

    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.
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Den Referenzzähler verwaltet Delphi für Dich.
    Und zwar wird er erhöht, wenn Du einer Interfacevariable Dein InterfaceObject zuweist und verringert, wenn Du Nil zuweist.

    Intf1 := TInterfacedObject.Create; // RefCount = 1
    Intf2 := Intf1; // RefCount = 2
    Intf1 := Nil; // RefCount = 1
    Intf2 := Nil; // RefCount = 0 --> InterfaceObject.Free wird "von Delphi" ausgeführt.

    In dem anderen Thread...
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Ok.
    if not Assigned(SkinPopUpMenu) then
    PopUpCallback(OnPopupDestroyed);

    wird nicht ausgeführt, weil SkinPopupMenu immer zugewiesen ist (lassen wir mal die doppelte Verneinung weg).

    Ich habe hier den Thread durchsucht nach "SkinPopUpMenu :=". Zumindest hier kann ich nichts finden, das SkinPopupMenu Nil zuweist.

    Dort, wo das passiert (oder erfolgt dies vielleicht gar nicht?),...
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Schwierig nachzuvollziehen, finde ich.

    Auf DLL-Seite ist das Problem, dass "SkinPopUpMenu" nicht Nil ist?
    if not Assigned(SkinPopUpMenu) then
    PopUpCallback(OnPopupDestroyed);

    Der Callback wird aber auf Anwendungsseite ausgeführt?
    Dann muss die obige Anweisung ja ausgeführt worden sein.

    Wenn SkinPopUpMenu nicht Nil ist, müsstest Du Nil zuweisen - das kann nicht das Problem sein.
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Das sollte doch in der Callback-Methode gemacht werden - oder?
    Wird die ausgeführt?
    Wenn ja, müsste später ja SkinPopUpMenu wieder etwas zugewiesen werden.
    Wenn nein, dann musst Du prüfen, warum nicht.
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Oha, vielen Dank! Wichtiger Hinweis!
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Ich hätte das auch schon vorgeschlagen, dachte aber, das ginge nicht, weil _AddRef ja nicht virtuell ist und somit nicht überschrieben werden kann...

    Gibt es (zum Verständnis) eine Erklärung, warum das so funktioniert?
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Habe das gerade korrigiert.

    Ich schreibe hier schnell mal parallel während der Arbeit. Da bin ich manchmal nicht konzentriert genug. :-(

    Dann musst Du mal schauen, wo da noch eine Referenz gehalten wird.
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Ah, ok.
    Dann tippe ich wirklich auf gegenseitige Referenzierung.

    Wenn das Submenu sein Hauptmenu kennt (also ein einem Property oder ein einer Liste speichert) und auch das Hauptmenu sein Submenü verwaltet (was ja zu vermuten ist ;-) ) dann wird genau dieses Problem vorliegen.


    Quatsch. In der Eile hatte ich das falsch gelesen.
    Also dann wir es im OTTB noch irgendeine Referenz geben, der...
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Sorry, ich kann Deine Fragen nicht ausreichend nachvollziehen.

    Sind das zwei Threads zu zwei verschiedenen Projekten?
    Existiert das Problem der Nicht-Freigabe im anderen Thread noch - und wenn, dann in dem anderen Projekt oder nur in diesem hier?

    Wenn die Fragestellung nicht eindeutig klar ist, kann man darauf natürlich auch nicht hilfreich antworten.

    Aber ich orakle mal etwas...
    ...
  • Forum: Programmieren allgemein

    AW: Classe/Interface aus WinProc aufrufen

      Delphi
      by stahli, 14. Sep 2017
    Ist das hier die Fortsetzung von dem: http://www.delphipraxis.net/193802-object-interface-nil.html#post1381069 ?

    Du hast m.E. im Projekt als auch hier in Deinen Fragen zu wenig Ordnung bzw. Übersicht.

    Wenn Du mit Interfaces arbeitest und die Referenzzählung nutzen willst, musst Du halt den Ablauf soweit überschauen, dass Du weißt wo Referenzen zugewiesen und ob die wieder aufgelöst werden....


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=stahli&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=193838
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 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