Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fenster Menue erstellen (https://www.delphipraxis.net/95895-fenster-menue-erstellen.html)

dor557 15. Jul 2007 14:22


Fenster Menue erstellen
 
Hallo zusammen.

Ich habe schon in vielen anwendungen gesehen das es ein Fenster menue gibt in dem men die Auswählen kann..

das würde ich bei mir gerne auch machen.

ich habe es wie Folgt versucht :

Fenster ist eine Komponente MainMenu !!

Delphi-Quellcode:
proceudure MainForm.MenueEinträge(Sender : Tobject);
var i : Integer;
    Fenster_item : TMenuItem;
begin
    Fenster_Item.Create(MainForm);
    for I := 1 to Screen.FormCount do
    begin
      Fenster_Item.Caption := Inttostr(i);
      Fenster.add(Fenster_Item);
    end;
end;
bekomme da aber immer eine Fehlermeldung.

wie könnte ich das denn stattessen machen ??


Mfg Sascha

Christian Seehase 15. Jul 2007 14:29

Re: Fenster Menue erstellen
 
Moin Sascha,

auch wenn Du die Fehlermeldung nicht genannt hast:

Das wird den Fehler verursachen,
Delphi-Quellcode:
for I := 1 to Screen.FormCount do
da der Index von 0 bis Count-1 geht.

Hawkeye219 15. Jul 2007 14:38

Re: Fenster Menue erstellen
 
Moin Chris,

solange Sascha mit dem Index nicht auf die Forms-Eigenschaft des Screen-Objekts zugreift, wird es auch nicht zum Fehler kommen. Das Erzeugen des MenuItems sollte allerdings korrigiert werden:

Delphi-Quellcode:
//  Fenster_Item.Create(MainForm);
  Fenster_Item := TMenuItem.Create(MainForm);
Gruß Hawkeye

Christian Seehase 15. Jul 2007 14:41

Re: Fenster Menue erstellen
 
Moin Hawkeye,

Zitat:

Zitat von Hawkeye219
solange Sascha mit dem Index nicht auf die Forms-Eigenschaft des Screen-Objekts zugreift, wird es auch nicht zum Fehler kommen.


stimmt auch wieder :oops: :wall:

dor557 15. Jul 2007 14:47

Re: Fenster Menue erstellen
 
So die Letzte antwort hat mir nun geholfen.

so sieht der Fertige Code aus :

Delphi-Quellcode:
    Fenster.Clear;
    for I := 0 to Screen.FormCount-1 do
    begin
    Fenster_Item := TMenuItem.Create(MainForm);
      Fenster_Item.Caption := Screen.Forms[i].Name;
      Fenster.add(Fenster_Item);
    end;
und es Funktioniert. Nur die Caption will er irgendwie nicht nehmen...

Was anderes. warum wird wenn es 2 Formulare sind ein FormCount von 3 angezeigt ??? aber nur 2 Formulare in das Menü geschrieben ??

Christian Seehase 15. Jul 2007 15:30

Re: Fenster Menue erstellen
 
Moin Sascha,

jedes VCL-Programm hat noch ein, eigentlich unsichtbares, Fenster, nämlich Application.
Dessen Caption siehst Du übrigens in der Taskleiste.
Application + 2 eigene Formulare = 3 Formulare.

dor557 16. Jul 2007 17:51

Re: Fenster Menue erstellen
 
Danke schön. Nun ergibt das sinn :)

Gruss Sascha


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 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