AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem beim Zuweisen einer Procedure (Menüs)
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Zuweisen einer Procedure (Menüs)

Ein Thema von Doc Morelli · begonnen am 20. Okt 2004 · letzter Beitrag vom 20. Okt 2004
Antwort Antwort
Benutzerbild von Doc Morelli
Doc Morelli

Registriert seit: 14. Aug 2004
32 Beiträge
 
#1

Problem beim Zuweisen einer Procedure (Menüs)

  Alt 20. Okt 2004, 12:44
Hi @ll,

Delphi-Quellcode:
procedure RunProgram(str: String);
begin
{Hier wird dann das Programm, welches unter dem Pfad str zu finden
ist gestartet}

end;

procedure TForm1.Button1Click(Sender: TObject);
var m: TMenuItem;
    i: integer;
begin
for i := 1 to 10 do begin
    m := TMenuItem.Create(PopupMenu1.Items[0]);
    m.Caption := 'SubItem' + inttostr(i);
    m.Name := 'Name' + inttostr(i);
    m.OnClick := RunProgram('C:\...');
    item1.Add(m);
end;
end;
Ich will mehrere Untermenüs zu einem bestimmten Menü anlegen. Jedes Untermenü soll dann ein anderes Programm öffnen können. Nur gibt es bei:
    m.OnClick := RunProgram('C:\...'); immer folgenden Fehler:
Zitat:
[Fehler] Unit1.pas(45): Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter'
Wie kann ich jetzt m.OnClick die entsprechene Procedure zuweisen???

MFG Doc
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Problem beim Zuweisen einer Procedure (Menüs)

  Alt 20. Okt 2004, 12:54
Du musst eine eigene Procedure machen:

Delphi-Quellcode:
procedure TForm1.OnMenuClick(Sender: TObject);
begin
.
.
.
end;
Diese kannst du dann dem Onclick Eregniss zuweisen.

Kleiner Hinweis. Wenn du in der Delphi Hilfe ein Event anschaust, siehst du immer wie die entsprechende Funktion/Procedure definiert sein muss.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

Re: Problem beim Zuweisen einer Procedure (Menüs)

  Alt 20. Okt 2004, 12:58
Hi,

so müsste es funzen:
Delphi-Quellcode:
TForm1 = class(TForm)
{...}
private
  ProgList: TStrings;
  procedure MyOnClick(Sender: TObject);
end;

procedure FindProgramm(List: TStrings; AObject: TObject);
var
  i: Integer;
begin
  for i := 0 to Pred(List.Count) do
    if List.Objects[i] = AObject then
    begin
      Result := List[i];
      Break;
    end;
end;

procedure TForm1.MyOnClick(Sender: TObject);
var
  ProgName
begin
  ProgName := FindProgramm(ProgList, Sender);
  if ProgName <> 'then
    RunProgramm(String);
end;

procedure TForm1.Button1Click(Sender: TObject);
var m: TMenuItem;
    i: integer;
begin
for i := 1 to 10 do begin
    m := TMenuItem.Create(PopupMenu1.Items[0]);
    m.Caption := 'SubItem' + inttostr(i);
    m.Name := 'Name' + inttostr(i);
    m.OnClick := MyOnClick;
    ProgList.AddObject(C:\...', m);
item1.Add(m);
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
20. Okt 2004, 17:28
Dieses Thema wurde von "Christian Seehase" von "Windows API" nach "VCL-Komponenten und Controls" verschoben.
Kein Windows API Problem
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 03: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