Autor Beitrag
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Fr 04.10.02 22:13 
Hi
Ich möchte gerne zur Laufzeit in mein Hauptmenü weitere Untermenüs einfügen. Darum habe ich in der Hilfe von Delphi nachgeschlagen und dort steht folgendes Beispiel
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var
  NewItem: TMenuItem;
  I : integer;
begin
  { zuerst Trennlinie erzeugen }
  NewItem := TMenuItem.Create(Self);
  NewItem.Caption := '-';
  { neuen Eintrag in Menü FENSTER einfügen }
  Fenster.Add(NewItem);
  { jetzt für jedes Formular einen Eintrag erzeugen und einfügen }
  for  I := 0 to Screen.FormCount-1 do
  begin
    NewItem := TMenuItem.Create(Self);
    NewItem.Caption := Screen.Forms[I].Name;
    Fenster.Add(NewItem);

  end;
end;

Ich habe daraus eigentlich nur den Variablenname und den Createaufruf herausgenommen.
Ich bekomme jedoch schon beim Compilieren folgenden Fehler
Zitat:

[Fehler] test.pas(545): Undefinierter Bezeichner: 'Self'

Woran liegt das?

cu Patmann
patmann2001 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Fr 04.10.02 22:38 
Ich habe jetzt den Eintrag self durch den Namen des Hauptmenüs ersetzt, dann klappt es. Warum schreiben die dann in der Hilfe self :?:

cu Patmann
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 05.10.02 09:04 
Das "self" wird möglicherweise daher resultieren, dass es eine form-bezogene Prozedur ist, z.B.
ausblenden Quelltext
1:
2:
procedure TForm1.BuildMenu(Sender: TObject);
...

usw. In dem Fall würde "self" für die Form (Form1) stehen. Das Rätsel könnte aber nur Borland lösen, da die ja den Prozedur/Funktionskopf vergessen haben. :)