AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TpopupMenu macht faxen !

Ein Thema von shifter · begonnen am 7. Sep 2006 · letzter Beitrag vom 8. Sep 2006
Antwort Antwort
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#1

TpopupMenu macht faxen !

  Alt 7. Sep 2006, 18:51
Hi,

ich erstelle Dynamisch ein PopupMenu,
in späteren Zeitpunkt wird es Wieder gelöscht und zwar so :

Delphi-Quellcode:
TPopupMenu(FindComponent('_POP_10')).Free;
TPopupMenu(FindComponent('_POP_10')).PopupComponent := nil;


Und wenn ich noch ein mal erstelle ein PopupMenu mit dem gleichen Namen
wie in diesem Beispiel '_POP_10',
Bekomme ich eine Fehler meldung das dieses Componente ist bereits vorhanden.

Was habe ich falsch gemach bei entfernen von dem PopupMenu ?


Danke für eure Hilfe

gruss
Seba
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: TpopupMenu macht faxen !

  Alt 7. Sep 2006, 18:55
Ich würde mal schauen, ob du das Menü nicht auch noch aus der Components-Auflistung entfernen musst. Davon abgesehen hab ich deinen Thread doch schonmal eben gesehen... http://www.delphipraxis.net/internal...ct.php?t=91734.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: TpopupMenu macht faxen !

  Alt 7. Sep 2006, 18:58
Hi,


was meinst du mit Componenten Auflistung ?

Ja das Stimmt mit dem Therad, nimand hat sich gemeldet also dachte ich bin in falschen "film"


gruss
seba
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: TpopupMenu macht faxen !

  Alt 7. Sep 2006, 19:13
Du führst Free auf eine Instanz aus bevor du eine ihrer Eigenschaften besetzt?
Ich bin nicht mehr so fit in der VCL wie ich es mal war, aber die Komponente nicht wird dank des Ownership-Konzeptes der VCL autom. aus dem Parent geworfen wenn du sie freigibst?
Wenn du also direkt danach FindComponent mit dem gleichen Namen aufrufst[1], was erwartest du zu finden?
Ich kann hier falsch liegen und das Freigeben des Child wird es nicht aus dem Owner entfernen, aber immernoch besetzt du eine Property einer Instanz die schon freigegeben wurde.


[1]elegant unnötige Verschewendung es zweimal direkt nacheinander auszuführen anstatt den Wert zwischenzuspeichern, btw.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: TpopupMenu macht faxen !

  Alt 7. Sep 2006, 19:25
Ja Du hast 100%-ig recht, ich kann doch das nicht ansprechen wenn ich es Freigegeben Habe.
Jetzt habe ich es nur mit Free bahandelt aber es kommt bei nächstem mal
wieder das gleiche, von wegen das es bereits vorhanden ist.


Ich mach es genau so mit Panels oder anderen Componenten,
da kommt es zu keinen Fehler.

Nur bei dem TPopupMenu,

ich komm einfach nicht weiter !
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: TpopupMenu macht faxen !

  Alt 7. Sep 2006, 19:44
Vieleicht Liegt das bei Erstellen ???


Delphi-Quellcode:
Function CREATE_POPUP( Nr : Word ) : TPopupMenu;
Var mi : Array [0..1] of TMenuItem;
Begin

  Result := TPopupMenu.Create( self );
  Result.Name := '_POP_'+IntToStr(UA[Nr].Panel);

  mi[0] := TMenuItem.Create( result );
  mi[0].Caption := 'Vorschau';
  mi[0].OnClick := ON_CLICK_POPUP_VORSCHAU;
  Result.Items.Add( mi[0] );

  mi[1] := TMenuItem.Create( result );
  mi[1].Caption := 'Detalierte Bearbeitung';
  mi[1].OnClick := ON_CLICK_POPUP_DETALIERTE;
  Result.Items.Add( mi[1] );

End;
So wird es erstellt.


gruss
seba
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: TpopupMenu macht faxen !

  Alt 7. Sep 2006, 21:19
Hallo Sebastian,

mir scheint der Wurm steckt schon im Konzept - warum erzeugst du das PopupMenu überhaupt dynamisch? Du kannst es doch schon zur Entwurfszeit bereitstellen. Wenn nötig kannst du es zur Laufzeit mit den dynamisch erzeugten Komponenten verbinden, indem du es der Eigenschaft PopupMenu der jeweiligen Komponente zuweist. Das PopupMenu selbst muss nie freigegeben werden und bleibt auch erhalten, wenn die dynamisch erzeugten Komponenten zerstört werden.

Grüße vom marabu

PS: schöne Bilder ...
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: TpopupMenu macht faxen !

  Alt 8. Sep 2006, 14:49




SELTEN SO GELACHT marabu !!!!!

DAS IST ES.


Warum einfach wenn es komplitzert geht ( oder auch nicht )



Ich könnte micht tot lachen,
warum ich so bl... bin.

Du hast vollkomen Recht, ich kann mir es nicht erklähren warum ich so eine sch... mir ausgedacht habe.
Bestimmt wollte ich besonder Cool sein !

Danke für dei beitrag,
natörlich werde ich so machen wie Du mir das gesagt hast.


DANKE Nochmal.



gruss
seba
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 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