AGB  ·  Datenschutz  ·  Impressum  







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

Welches Objekt hat PopUp geöffnet?

Ein Thema von TheAn00bis · begonnen am 1. Apr 2005 · letzter Beitrag vom 1. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#1

Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 18:58
Hi, ich habe mehreren Einträgen eines PopUps ein gemeinsames Ereignis zu gewiesen, die passende Aktion frage ich jetzt über den Sender ab.
Das PopUp verlinke ich jetzt mit zwei verschiedenen Memos. Wie finde ich jetzt raus, über welches Memo das PopUp geöffnet wurde?
Denn der Sender gibt nur an, welchen Eintrag ich geöffnet habe, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#2

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:00
Du kann den Sender im onPopup Ereignis abfragen.

MfG Pr0g
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#3

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:03
Stimmt!

Hab ich gerade garnicht dran gedacht! Dann speicher ich den in einer Variablen und les ihn wieder aus. Genial , danke!
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#4

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:21
Hat auch noch mit dem Thema zu tun:

Ich speicher den Sender so:

Delphi-Quellcode:
var SenderPopUp:string [...]
SenderPopUp:=Sender.Classname;

Jetzt will ich den Namen anwenden:

if execute then TMemo(FindComponent(SenderPopUp)).lines.loadfromfile(filename);
Jetzt bekomme ich eine AccesViolation. Warum?
Das muss am Sender liegen, wenn ich statt "TMemo(FindComponent(SenderPopUp))" direkt Memo1 oder Memo2 nehme klappt das Einwand frei.
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#5

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:31
Das wird daran liegen, das FindComponet nichts findet, in dem String also nichts, oder was falsches steht. Lass dir den String mal mit ShowMessage zu Kontrolle ausgeben.
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#6

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:36
Hast recht, kann nicht klappen: SenderPopUp=TPopUpMenu.

Aber warum? Ich weise ihn so zu:

Delphi-Quellcode:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
SenderPopUp:=Sender.Classname;

end;
Man mit sowas muss ich mich mehr beschäftigen!
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:37
Entweder den Namen mit
SenderPopUp:=TPopupMenu(Sender).PopupComponent.Name; oder gleich so
Delphi-Quellcode:
var SenderPopUp:TObject [...]
SenderPopUp:=TPopupMenu(Sender).PopupComponent;

if execute then TMemo(SenderPopUp).lines.loadfromfile(filename);
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:41
Zitat von TheAn00bis:
Hast recht, kann nicht klappen: SenderPopUp=TPopUpMenu.

Aber warum? Ich weise ihn so zu:

Delphi-Quellcode:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
SenderPopUp:=Sender.Classname;

end;
Man mit sowas muss ich mich mehr beschäftigen!
Sender.Classname gibt immer nur die Klasse des Senders zurück, nicht den Namen selbst.
Wenn also der Sender Memo1 oder Memo2 wäre, würde Sender.Classname in beiden Fällen "TMemo" sein.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:43
Zitat von Binärbaum:
Sender.Classname gibt immer nur die Klasse des Senders zurück, nicht den Namen selbst.
Wenn also der Sender Memo1 oder Memo2 wäre, würde Sender.Classname in beiden Fällen "TMemo" sein.

MfG
Binärbaum
Aber der Sender ist in diesem Fall das Popupmenu und nicht das Memo.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#10

Re: Welches Objekt hat PopUp geöffnet?

  Alt 1. Apr 2005, 19:45
Danke, klappt!

Danke für die Erklärung Binärbaum, sonst hätte ich jetzt gefragt, warum das nicht klappt.

Zitat von Gruber_Hans_12345:
Aber der Sender ist in diesem Fall das Popupmenu und nicht das Memo.
Aber warum giibt mir SenderPopUp:=TPopupMenu(Sender).PopupComponent; dann das Memo?

Wegen dem "PopupComponent"?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:34 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