[wxmax] Menubar aus eigener Klasse erzeugen
Übersicht BlitzMax, BlitzMax NG Allgemein
BlueMBetreff: [wxmax] Menubar aus eigener Klasse erzeugen |
Fr, Apr 29, 2011 10:57 Antworten mit Zitat |
|
---|---|---|
Hallo,
wieso geht das hier nicht : Code: [AUSKLAPPEN] Import wx.wxApp Import wx.wxFrame Import wx.wxMenu Import wx.wxMenuBar Strict Type MyApp Extends wxApp Method OnInit:Int() Local a:UI = UI( New UI.Create(Null,wxID_any,"blabla")) Return True End Method End Type Type UI Extends wxFrame Field menu:MenuBar_ Method OnInit:Int() menu = MenuBar_(New MenuBar_.Create()) SetMenuBar(menu) Centre Show(True) Return True End Method End Type Type MenuBar_ Extends wxMenuBar Field menu_file:wxMenu Field menu_exit:wxMenuItem Method OnInit:Int() menu_file = New wxMenu.Create() menu_exit = New wxMenuItem.Create(menu_file,1,"Beenden") menu_file.AppendItem(menu_exit) Append(menu_file,"File") return True End Method End Type New MyApp.Run() wenn ich allerdings die MenuBar_ KLasse entferne und alles in die OnInit Methode des wxframe stecke geht es. Wäre aber schön, wenn man aus Gründen der Übersichtlichkeit eine extra KLasse nutzen könnte. Danke für eure Hilfe EDIT: Ich habe jetzt überlegt das man aus der wxMenuBar Klasse auch eine wxMenu Klasse machen könnte. So müsste man zwar für jedes Menü eine extra Klasse erzeugen, aber so würde es auch gehen. Code: [AUSKLAPPEN] Import wx.wxApp Import wx.wxFrame Import wx.wxMenu Import wx.wxMenuBar Strict Type MyApp Extends wxApp Method OnInit:Int() Local a:UI = UI( New UI.Create(Null,wxID_any,"blabla")) Return True End Method End Type Type UI Extends wxFrame Field menu:wxMenu Field menubar:wxMenuBar Method OnInit:Int() menu = MenuBar_(New MenuBar_.Create()) menubar = New wxMenuBar.Create() menubar.Append(menu,"File") Connect(1,wxEVT_COMMAND_MENU_SELECTED,OnExit) SetMenuBar(menubar) Centre Show(True) Return True End Method Function OnExit(event:wxEvent) Self(event.parent).Close(True) End Function End Type Type MenuBar_ Extends wxMenu Field menu_exit:wxMenuItem Method OnInit:Int() menu_exit = New wxMenuItem.Create(Self,1,"Beenden") AppendItem(menu_exit) Return True End Method End Type New MyApp.Run() Trotzdem wäre es interessant ob man das ursprüngliche Problem lösen könnte. So muss los. |
||
FireballFlame |
Fr, Apr 29, 2011 13:21 Antworten mit Zitat |
|
---|---|---|
Ich glaube, die wxMenuBar hat kein OnInit... zumindest wird es in deinem Code nicht aufgerufen.
Ich würde dafür aber gleich den wxFormBuilder benutzen, dann sparst du dir den ganzen GUI-Erzeugungscode. |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht BlitzMax, BlitzMax NG Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group