AGB  ·  Datenschutz  ·  Impressum  







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

Fremdes PopupMenu erweitern

Ein Thema von Björn Ole · begonnen am 28. Jul 2010 · letzter Beitrag vom 5. Jul 2011
Antwort Antwort
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

AW: Fremdes PopupMenu erweitern

  Alt 4. Jul 2011, 14:24
[Edit]
Habe es inzwischen selber hinbekommen.
  • WH_CALLWNDPROC mittels SetWindowsHookEx hooken
  • auf WM_INITMENU warten
  • InsertMenuItem mit dem Handle des PopupMenus (CWPSTRUCT.wParam) aufrufen
Würde es Dir viel ausmachen, hier mal Code zu posten?

Ich stehe vor einem ähnlichen Problem. Ich möchte gern das PopupMenü eines stinknormales TMemo um einen Eintrag erweitern.
Mit
Delphi-Quellcode:
lMenu:=GetSystemMenu(Memo1.Handle, False);
InsertMenu(lMenu, 0, MF_BYPOSITION, PrevItemID, 'Icons preview');
klappt es leider nicht. Ist ja auch kein SystemMenü. Aber GetMemo bringt mich auch nicht weiter ...
Alex Winzer
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Fremdes PopupMenu erweitern

  Alt 4. Jul 2011, 16:03
[Edit]
Habe es inzwischen selber hinbekommen.
  • WH_CALLWNDPROC mittels SetWindowsHookEx hooken
  • auf WM_INITMENU warten
  • InsertMenuItem mit dem Handle des PopupMenus (CWPSTRUCT.wParam) aufrufen
Würde es Dir viel ausmachen, hier mal Code zu posten?

Ich stehe vor einem ähnlichen Problem. Ich möchte gern das PopupMenü eines stinknormales TMemo um einen Eintrag erweitern.
Mit
Delphi-Quellcode:
lMenu:=GetSystemMenu(Memo1.Handle, False);
InsertMenu(lMenu, 0, MF_BYPOSITION, PrevItemID, 'Icons preview');
klappt es leider nicht. Ist ja auch kein SystemMenü. Aber GetMemo bringt mich auch nicht weiter ...
na ja mal ne dumme frage warum verwendest du dann nicht GetMenu(dein handle) ?
dann über GetMenuItemCount(ermitteltes handle) die einträge auslesen


gruss

Geändert von EWeiss ( 4. Jul 2011 um 16:05 Uhr)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Fremdes PopupMenu erweitern

  Alt 4. Jul 2011, 16:18
na ja mal ne dumme frage warum verwendest du dann nicht GetMenu(dein handle) ?
dann über GetMenuItemCount(ermitteltes handle) die einträge auslesen

gruss
Danke für die Antwort! Und: Es gibt keine Dummen Fragen!

Die Idee hört sich gut an. Allerdings erhalte ich ja über GetMenu schon nicht das passende Handle. Denn Ansonsten würde ich Items einfügen können. GetMenuItemCount(); bringt mir daher m.E. nichts. So erhalte ich immer -1 für folgende Aufrufe:
Delphi-Quellcode:
lMenu:=GetMenu(self.Handle);
Caption:=IntToStr(GetMenuItemCount(lMenu));
lMenu:=GetMenu(Memo1.Handle);
Caption:=IntToStr(GetMenuItemCount(lMenu));
Gruß
Alex Winzer
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Fremdes PopupMenu erweitern

  Alt 4. Jul 2011, 16:20
na ja mal ne dumme frage warum verwendest du dann nicht GetMenu(dein handle) ?
dann über GetMenuItemCount(ermitteltes handle) die einträge auslesen

gruss
Danke für die Antwort! Und: Es gibt keine Dummen Fragen!

Die Idee hört sich gut an. Allerdings erhalte ich ja über GetMenu schon nicht das passende Handle. Denn Ansonsten würde ich Items einfügen können. GetMenuItemCount(); bringt mir daher m.E. nichts. So erhalte ich immer -1 für folgende Aufrufe:
Delphi-Quellcode:
lMenu:=GetMenu(self.Handle);
Caption:=IntToStr(GetMenuItemCount(lMenu));
lMenu:=GetMenu(Memo1.Handle);
Caption:=IntToStr(GetMenuItemCount(lMenu));
Gruß
Ich habe ein Programm in Delphi geschrieben mit dem man fremde Menüs Fernsteuern kann!
Bei bedarf lade ich es als Open Source mal hoch.
Denke da ist was passendes dabei mit dem du weiterarbeiten könntest.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:40 Uhr)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Fremdes PopupMenu erweitern

  Alt 4. Jul 2011, 16:29
Ich habe ein Programm in Delphi geschrieben mit dem man fremde Menüs Fernsteuern kann!
Bei bedarf lade ich es als Open Source mal hoch.
Denke da ist was passendes dabei mit dem du weiterarbeiten könntest.

gruss
Bedarf!

Der Screenshot sieht vielversprechend aus. Kann man damit "nur" Menüs oder auch - wie von mir benötigt - PopupMenüs fernsteuern. Dann wäre es etwas für mich. Denn wenn man das mit fremden Programmen kann, sollte es innerhalb der eigenen Application erst Recht funktionieren.

Hier im Forum gibt es mehrere Themen dazu. Diese kommmen alle zu dem Ergebnis, dass man das PopupMenü lieber selbst (nach)schreiben und dann die weiteren Einträge hinzufügen sollte. Das finde ich nicht so elegant.

Gruß
Alex Winzer
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Fremdes PopupMenu erweitern

  Alt 4. Jul 2011, 16:35
Ich habe ein Programm in Delphi geschrieben mit dem man fremde Menüs Fernsteuern kann!
Bei bedarf lade ich es als Open Source mal hoch.
Denke da ist was passendes dabei mit dem du weiterarbeiten könntest.

gruss
Bedarf!

Der Screenshot sieht vielversprechend aus. Kann man damit "nur" Menüs oder auch - wie von mir benötigt - PopupMenüs fernsteuern. Dann wäre es etwas für mich. Denn wenn man das mit fremden Programmen kann, sollte es innerhalb der eigenen Application erst Recht funktionieren.

Hier im Forum gibt es mehrere Themen dazu. Diese kommmen alle zu dem Ergebnis, dass man das PopupMenü lieber selbst (nach)schreiben und dann die weiteren Einträge hinzufügen sollte. Das finde ich nicht so elegant.

Gruß
Alle Fenster von dem du ein Handle in erfahrung bringen kannst und die ein Menü haben selbstverständlich
Habs glaube ich nur für Standard/System Menüs erstellt schon lange her..
Teste es einfach dann kannst sehen ob du es gebrauchen kannst.

PS:
Alternativ könntest du dein Popupmenu zerstören und einfach während der laufzeit mit neuen Einträgen
erweitern bzw.. neu einladen (aber zur Laufzeit )

Ich mache das genauso.

gruss

Geändert von EWeiss ( 4. Jul 2011 um 17:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Fremdes PopupMenu erweitern

  Alt 4. Jul 2011, 19:39
Self.Handle dürfte nicht das Handle des Memos auf deiner Form, sondern die Form selber sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 04:35 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-2025 by Thomas Breitkreuz