AGB  ·  Datenschutz  ·  Impressum  







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

PopupMenü zur Laufzeit

Ein Thema von Blackheart · begonnen am 18. Mär 2007 · letzter Beitrag vom 18. Mär 2007
Antwort Antwort
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#1

PopupMenü zur Laufzeit

  Alt 18. Mär 2007, 22:04
Hallo Leute
Wie erstelle Ich zur Laufzeit ein PopUpMenu für RichEdit ?
Hab schon die Suche bemüht und schon einiges probiert aber es
klappt nicht so recht.
Vieleicht hatt das ja schon wer von Euch getan und kann Mir mal
ein paar Tips dazu geben.

Delphi-Quellcode:
RE:=TPopUpMenu.Create(RichEdit1);
  RE.Name:='Test';
  RE.Items.Caption:='Test';
Blackheart
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: PopupMenü zur Laufzeit

  Alt 18. Mär 2007, 22:14
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    popRTF: TPopupMenu;
    procedure OnMenuItemClick(Sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1 : TForm1;

implementation

{$R *.dfm}

procedure TForm1.OnMenuItemClick(Sender: TObject);
begin
  case TMenuItem(Sender).Tag of
    0: ShowMessage(TMenuItem(Sender).Caption);
    1: ShowMessage(TMenuItem(Sender).Caption);
    2: ShowMessage(TMenuItem(Sender).Caption);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  mi : TMenuItem;
begin
  popRTF := TPopupMenu.Create(Form1);

  mi := TMenuItem.Create(Form1);
  mi.Caption := 'Item0';
  mi.Tag := 0;
  mi.OnClick := OnMenuItemClick;
  popRtf.Items.Add(mi);
  mi := TMenuItem.Create(Form1);
  mi.Caption := 'Item1';
  mi.Tag := 1;
  mi.OnClick := OnMenuItemClick;
  popRtf.Items.Add(mi);
  mi := TMenuItem.Create(Form1);
  mi.Caption := 'Item2';
  mi.Tag := 2;
  mi.OnClick := OnMenuItemClick;
  popRtf.Items.Add(mi);

  RichEdit1.PopupMenu := popRTF;
end;
Sollte selbst erklärend sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: PopupMenü zur Laufzeit

  Alt 18. Mär 2007, 22:26
Danke Luckie, jetzt wo Ich es seh TMenuItem aber manchmal hatt man ein Brett vorm Kopf.
Wollte mal versuchen Mir eine Unit zu schreiben für ein Standard PopUp
für RichEdit, mal schauen.
Nochmals vielen Dank.
Blackheart
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: PopupMenü zur Laufzeit

  Alt 18. Mär 2007, 23:40
Hallo,

bei Luckies Code kannst du dir die Zuweisung von TMenuItem.Tag sogar noch sparen folgendes reicht aus:
Delphi-Quellcode:
procedure TForm1.OnMenuItemClick(Sender: TObject);
begin
  if (Sender is TMenuItem) then
    ShowMessage((Sender as TMenuItem).Caption);

 (*case TMenuItem(Sender).Tag of
    0: ShowMessage(TMenuItem(Sender).Caption);
    1: ShowMessage(TMenuItem(Sender).Caption);
    2: ShowMessage(TMenuItem(Sender).Caption);
  end;*)

end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: PopupMenü zur Laufzeit

  Alt 18. Mär 2007, 23:48
Aber nicht, wenn er für jeden Eintrag im Menü etwas anderes ausführen will und das wird wohl der Fall 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 17:49 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