AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi durch popup menü label erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

durch popup menü label erstellen

Ein Thema von the_beginner · begonnen am 15. Dez 2004 · letzter Beitrag vom 17. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
the_beginner

Registriert seit: 4. Dez 2004
Ort: Düsseldorf
27 Beiträge
 
#1

durch popup menü label erstellen

  Alt 15. Dez 2004, 21:32
juten abend an alle,

ich habe ne frage und über ne antwort währe ich sehr froh.

frage: besteht die möglichkeit, über ein popup menü (das ich schon habe) einen button an der stelle zu kreieren, auf die ich mit der rechten maustaste geklickt habe um das popup menü aufzumachen?

wenn ja, wie? das problem am popup menü ist, dass es keine x und y parameter mit sich trägt und man dem objekt dann nicht sagen kann wo es erstellt werden soll. die einzige lösung währe vielleicht wenn man dann die aktuelle mausposition - bzw + der größe des popup fensters rechnet und dann dort das label kreiert, wobei dann das problem auftritt, dass der findige benutzer die maus irgendwo anders parkt und mit der tastatur arbeitet

also über hilfe währe ich sehr dankbar!
the_beginner
  Mit Zitat antworten Zitat
DennyC

Registriert seit: 27. Jan 2003
Ort: Berlin
47 Beiträge
 
Delphi 7 Professional
 
#2

Re: durch popup menü label erstellen

  Alt 15. Dez 2004, 22:31
Hallo!

Vielleicht beschreibst Du mal noch, wo denn das Popup herkommt, auf welchem Element soll das Label entstehen?!

Denny
Mein Leben in HTML
http://www.devblog.de > Delphi Blog
http://www.evius.de > Job
  Mit Zitat antworten Zitat
Udo

Registriert seit: 19. Jan 2003
54 Beiträge
 
Delphi 8 Architect
 
#3

Re: durch popup menü label erstellen

  Alt 16. Dez 2004, 09:37
Hi

Kannst dir doch im OnMouseDown die Koordinaten merken.

Udo
  Mit Zitat antworten Zitat
the_beginner

Registriert seit: 4. Dez 2004
Ort: Düsseldorf
27 Beiträge
 
#4

Re: durch popup menü label erstellen

  Alt 16. Dez 2004, 13:59
also: das popup ist ein "PopUpMenu" aus dem Unitkasten "Menu" von Delphi 7. Das PopupMenü hat die Einträge:
- Label erstellen
- Label löschen
- Label verschieben.

Dadurch das das PopupMenü jedoch im Objektinspektor bei Form1 unter Ereignisse bei PopupMenü eingetragen ist, bekomme ich keinerlei X und Y Werte, wie es normalerweise ist, wenn ich eine Prozedur oder etwas Anderes bei "OnMouseDown" reinschreibe.

Die Labels die erstellt werden sollen, sollen aber da erstellt werden, wo man draufgeklickt hat um das PopUp Menu aufzumachen, bzw auch da gelöscht werden, falls dort ein Label existiert. Mein Problem ist halt nur, dass ich keinerlei Werte bekomme und somit nicht Checken kann obdort schon ein Objekt ist bzw wo ich das Objekt erstellen soll.

(Das Label soll auf Form1 erstellt werden)
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: durch popup menü label erstellen

  Alt 16. Dez 2004, 14:03
Du kannst dir doch im OnMouseDown-Ereignis deiner Form die Koordinaten merken.
  Mit Zitat antworten Zitat
Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#6

Re: durch popup menü label erstellen

  Alt 16. Dez 2004, 14:09
Moin

Zitat:
Dadurch das das PopupMenü jedoch im Objektinspektor bei Form1 unter Ereignisse bei PopupMenü eingetragen ist..
Lass das doch einfach weg. (e.g Form1.PopupMenu := nil)

Im MouseDown des Forms prüfen, obs die rechte Maustaste ist, wenn ja, Koordinaten merken (globale Variablen.. ) und Popopemenu1.popup aufrufen.

Dabei kannst du dann auch gleich vorher prüfen, ob an dieser Stelle schon ein Control vorhanden ist und dein Popupmenu entsprechend anpassen.


schönen Gruß
Sam
  Mit Zitat antworten Zitat
the_beginner

Registriert seit: 4. Dez 2004
Ort: Düsseldorf
27 Beiträge
 
#7

Re: durch popup menü label erstellen

  Alt 16. Dez 2004, 15:06
Zitat von BluesKid:
Moin

Zitat:
Dadurch das das PopupMenü jedoch im Objektinspektor bei Form1 unter Ereignisse bei PopupMenü eingetragen ist..
Lass das doch einfach weg. (e.g Form1.PopupMenu := nil)

Im MouseDown des Forms prüfen, obs die rechte Maustaste ist, wenn ja, Koordinaten merken (globale Variablen.. ) und Popopemenu1.popup aufrufen.

Dabei kannst du dann auch gleich vorher prüfen, ob an dieser Stelle schon ein Control vorhanden ist und dein Popupmenu entsprechend anpassen.


schönen Gruß
Sam
so ich hab das jetzt so gemacht wie du es gesagt hast, aber irgendwie popt das popup fenster etwa 50-100 pixel weiter oben und etwas rechts versetzt auf! woran liegt das?

hier der code:
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  IF button=mbRight
   THEN popupmenu1.Popup(x,y);
end;
  Mit Zitat antworten Zitat
Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#8

Re: durch popup menü label erstellen

  Alt 16. Dez 2004, 15:16
Delphi-Referenz durchsuchenClientToScreen()
  Mit Zitat antworten Zitat
the_beginner

Registriert seit: 4. Dez 2004
Ort: Düsseldorf
27 Beiträge
 
#9

Re: durch popup menü label erstellen

  Alt 17. Dez 2004, 17:53
Zitat von BluesKid:
hä? was meisnt du damit? das ist so wie wenn ich einfach nur sage "Apfelbaum"! 0 Inhalt und keiner weiß um was es geht, wenn er den Befehl nicht kennt!
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#10

Re: durch popup menü label erstellen

  Alt 17. Dez 2004, 17:58
Zitat von the_beginner:
Zitat von BluesKid:
hä? was meisnt du damit? das ist so wie wenn ich einfach nur sage "Apfelbaum"! 0 Inhalt und keiner weiß um was es geht, wenn er den Befehl nicht kennt!
Wenn du den Mauszeiger über das bewegst, siehst du den Hint "Schau in die Delphi-Hilfe". Das wollte er dir damit sagen. Dein Problem ist, das du verschiedene X/Y-Koordinaten kombinierst. Einmal ist 0/0 die obere linke Ecke deines Formulars und einmal die des Bildschirms. Würdest du dein Formular in die linke obere Ecke schieben, müsste es passen. Mit ClientToScreen bzw. ScreenToClient kannst do genau diesen Unterschied umrechnen. Also tu, was der Hint dir sagt

btw: Wenn man
Zitat:
den Befehl nicht kennt
ist es mit oder ohne immer eine gute Idee in der Hilfe nachzuschlagen
  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:40 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