Ich habe ein kleines Problem beim Erstellen von PanelGadget´s - ich hoffe Ihr könnt mir helfen.
Ich habe ein PanelGadget mit zwei Laschen in einem "normalen" Fenster erzeugt. Hier gelingt es mir problemlos in jeder Lasche unterschiedliche z.B. Button Gadget´s zu erzeugen.
Öffne ich das Fenster über WIN-API als Dialog dann erscheinen mir die Buttons der ersten Lasche auch in der zweiten Lasche und die der (eigentlich) zweiten Lasche sind nicht in der Lasche vorhanden.
Code: Alles auswählen
#MainWindow = 0
Enumeration
#Panel_Einstellung = 10
#Panel_Main
#Button_Einstellung_Test1
#Button_Einstellung_Test2
#Button_Main_Test1
#Button_Main_Test2
#Button_Main_OpenDLG
EndEnumeration
Structure DLG_TEMPLATE
style.l
dwExtendedStyle.l
cdit.w
x.w
y.w
cx.w
cy.w
menu.w
class.w
title.l
EndStructure
Procedure DlgProcOptions(hwnd, msg, wParam, lParam)
Select msg
Case #WM_INITDIALOG
SetWindowText_(hwnd,"Einstellungen")
If CreateGadgetList(hwnd)
PanelGadget(#Panel_Einstellung,0,0,400,380)
AddGadgetItem(#Panel_Einstellung,-1,"Zuordnungen")
ButtonGadget(#Button_Einstellung_Test1,10,10,100,40,"TEST1")
AddGadgetItem(#Panel_Einstellung,-1,"sonstiges")
ButtonGadget(#Button_Einstellung_Test2,10,60,100,40,"TEST2")
CloseGadgetList()
EndIf
Case #WM_COMMAND
Select (wParam&$FFFF)
Case #IDCANCEL
EndDialog_(hwnd,#IDCANCEL)
EndSelect
EndSelect
EndProcedure
If OpenWindow(#MainWindow, 0, 0, 500, 400, "Hauptfenster", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(#MainWindow))
PanelGadget(#Panel_Main,0,0,400,280)
AddGadgetItem(#Panel_Main,-1,"Zuordnungen")
ButtonGadget(#Button_Main_Test1,10,10,100,40,"TEST1")
ButtonGadget(#Button_Main_OpenDLG,10,60,100,40,"Öffne Dialogfenster")
AddGadgetItem(#Panel_Main,-1,"sonstiges")
ButtonGadget(#Button_Main_Test2,10,60,100,40,"TEST2")
Repeat
Event = WaitWindowEvent()
Type = EventType()
GadgetID = EventGadget()
Window = EventWindow()
MenuID = EventMenu()
Select Event
Case #PB_Event_Gadget
Select GadgetID
Case #Button_Main_OpenDLG
dlg.DLG_TEMPLATE
dlg\style=#WS_POPUP | #WS_BORDER | #WS_SYSMENU | #DS_MODALFRAME | #WS_CAPTION | #DS_CENTER
dlg\cx=200
dlg\cy=200
Erg = DialogBoxIndirectParam_(0,dlg,WindowID(#MainWindow),@DlgProcOptions(),0)
EndSelect
Case #WM_CLOSE
Quit = 1
EndSelect
Until Quit = 1
EndIf
Was mache ich hier falsch ???
Joachim