Forum | | | | Stephan Sonneborn | allô Zusammen,
hat quelqu'un une Tip pour mich, comment je qui Buttons RESET et ARTIKEL SUCHEN abfragen peux? KompilierenMarqueSéparation'***************************************************************************************************
'* Programmname: BOMGenerator *
'* Version : 1.00 *
'* Stand : 05.02.2011 *
'* Änderung : *
'**************************************************************+************************************
'***************************************************************************************************
' Schalter setzen *
'***************************************************************************************************
SET ("TRUECOLOR" , 1)
SET ("AUTOPAINT" , 2)
SET ("MESSAGEMODE", 1)
SET ("FASTMODE" , 0)
$IFDEF Interpreter
SET ("DEBUGMODE" , 1)
SET ("ERRORLEVEL" , 1)
$ELSE
SET ("DEBUGMODE" , 0)
SET ("ERRORLEVEL" , 0)
$ENDIF
'***************************************************************************************************
'***************************************************************************************************
' Header-Dateien laden *
'***************************************************************************************************
$H WINDOWS.PH
$H COMMCTRL.PH
'***************************************************************************************************
'***************************************************************************************************
' Include-Dateien laden *
'***************************************************************************************************
'***************************************************************************************************
'***************************************************************************************************
'* Eigene Funktionen *
'***************************************************************************************************
DEF CreateTextL(6) CONTROL("STATIC",@$(2),$50000200,@%(3),@%(4),@%(5),@%(6),@%(1),100, %HInstance, $0000)
DEF CreateTextC(6) CONTROL("STATIC",@$(2),$50000201,@%(3),@%(4),@%(5),@%(6),@%(1),101, %HInstance, $0000)
DEF CreateTextR(6) CONTROL("STATIC",@$(2),$50000202,@%(3),@%(4),@%(5),@%(6),@%(1),102, %HInstance, $0000)
DEF CreateTextTL(6) CONTROL("STATIC",@$(2),$50001300,@%(3),@%(4),@%(5),@%(6),@%(1),103, %HInstance, $0000)
DEF CreateTextTC(6) CONTROL("STATIC",@$(2),$50001301,@%(3),@%(4),@%(5),@%(6),@%(1),104, %HInstance, $0000)
DEF CreateTextTR(6) CONTROL("STATIC",@$(2),$50001302,@%(3),@%(4),@%(5),@%(6),@%(1),105, %HInstance, $0000)
DEF CreateEditL(6) CONTROL("EDIT" ,@$(2),$50000000,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
DEF CreateEditC(6) CONTROL("EDIT" ,@$(2),$50000001,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
DEF CreateEditR(6) CONTROL("EDIT" ,@$(2),$50000002,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
'*-------------------------------------------------------------------------------------------------*
DEF MIN(2) IF(@&(1) <= @&(2), @&(1), @&(2))
DEF MAX(2) IF(@&(1) > @&(2), @&(1), @&(2))
'*-------------------------------------------------------------------------------------------------*
DEF SetwindowTheme(3) !"uxtheme.dll", "SetWindowTheme"
DEF BringWindowToTop(1) !"user32", "BringWindowToTop"
DEF GetSysColor(1) !"USER32","GetSysColor"
'*-------------------------------------------------------------------------------------------------*
'***************************************************************************************************
'* Globale Variablen *
'***************************************************************************************************
DECLARE FlashBitmap&, FlashBitmapX%, FlashBitmapY%, SplashScreen&, Progressbar&[2]
DECLARE SearchPath$, IniFile$, PRGName$, Version$
DECLARE ItemFile$[32,3], ItemFiles% , ItemFilePath$, LastBOMPos&
DECLARE Column$[32], Columns%
DECLARE DLG&, HPic&, Pic& , Statusline&
DECLARE TabControl0&, TabCtl0&[2], TabControl&, TabCtl&[32], Gridbox&[2,32]
DECLARE Groupbox&[2,32], Text&[2,32,12], Edit&[2,32,12], Button&[2,32,12], Choicebox&[2,32,4]
DECLARE Excel&, Workbooks&, ExcelWnd&, ExcelBook&, ExcelSheet&, ExcelSheet$, ExcelSheetLines&
DECLARE Range&
DECLARE Font&[20], FontHeight%[2]
DECLARE LVDLL&, ImageList&
'***************************************************************************************************
ItemFile$[1, 1] = "Tab 1"
ItemFile$[2, 1] = "Tab 2"
ItemFile$[3, 1] = "Tab 3"
ItemFile$[4, 1] = "Tab 4"
ItemFile$[5, 1] = "Tab 5"
PrGName$ = "Demo"
'***************************************************************************************************
'* Prozeduren *
'***************************************************************************************************
'*-------------------------------------------------------------------------------------------------*
'* XP-Manifest für einzelne Controls abschalten *
'*-------------------------------------------------------------------------------------------------*
PROC DisableXPTheme
'*-------------------------------------------------------------------------------------------------*
PARAMETERS Hwnd&
'*-------------------------------------------------------------------------------------------------*
DECLARE Word#
DIM Word#, 2
SetwindowTheme(Hwnd&, Word#, Word#)
DISPOSE Word#
ENDPROC
'*-------------------------------------------------------------------------------------------------*
'************************************************************************************************
' Benutzerdialog *
'************************************************************************************************
PROC Dialog
DECLARE Dialogende% ,aux$, aux%, aux&, dx%, dy%, LastTab%
DECLARE Zeilen&, Zeile&, Zeile$, Found&
DECLARE LVItemText#, LVHandle&, SW#, DblClk&
DECLARE SuchBegriff$[6]
'*-------------------------------------------------------------------------------------------------*
DIM LVItemText#, 16384
DIM SW# , 9*4
'*-------------------------------------------------------------------------------------------------*
'*-------------------------------------------------------------------------------------------------*
'Dialogbox:
'*-------------------------------------------------------------------------------------------------*
dx% = %MAXX
dy% = %MAXY
DLG& = %HWND'CREATE("DIALOG" , %HWND,PrgName$ ,0,0,0,0)
'*-------------------------------------------------------------------------------------------------*
' Statuszeile:
LONG SW#, 0 = 050, 650, 700, 775, 825, 875, 925, dx%-1
Statusline& = CREATE("STATUSWINDOW", DLG& , "", 9, SW#)
SETTEXT Statusline&, 0, "Datei:"
SETTEXT Statusline&, 2, "Stand:"
SETTEXT Statusline&, 4, "Artikel:"
SETTEXT Statusline&, 6, "Treffer:"
SHOWWINDOW(DLG&, 0)
'*-------------------------------------------------------------------------------------------------*
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
'*-------------------------------------------------------------------------------------------------*
' Aktuelle Stückliste:
GROUPBOX&[0,1] = CREATE("GROUPBOX", DLG&, "Aktuelle Stückliste",015,010,(dx% - %BMPX - 050),055)
BUTTON&[0,1] = CREATE("BUTTON", DLG&, "wählen" ,(dx% - %BMPX - 130),027,080,030)
EDIT&[0,0] = CREATE("EDIT", DLG&, "" ,030,030,WIDTH(GROUPBOX&[0,1])-125,025)
CREATE("TOOLTIP", DLG&, Edit&[0,0], "Geben Sie hier den Namen (inkl. Pfad) \nder zu \
bearbeitenden Stückliste an.")
CREATE("TOOLTIP", DLG&, Button&[0,1], "Klicken Sie hier, um die zu \nbearbeitende Stückliste \
auszuwählen.")
'*-------------------------------------------------------------------------------------------------*
' Haupttabcontrol:
TabControl0& = CREATE("TABCTRL", DLG&, "Stückliste", 015, 075, dx% - 40, dy% - 075)
INSERTTAB(TabControl0&,1,"Artikelliste")
DisableXPTheme(TabControl0&)
WHILELOOP 2
TabCtl0&[&LOOP] = CONTROL("DIALOG","", $40081003,2,25,WIDTH(TabControl0&)-5, HEIGHT(TabControl0&)-29,TabControl0&,0,%HINSTANCE)
SHOWWINDOW(TabCtl0&[&LOOP],0)
WEND
SHOWWINDOW(TabCtl0&[2],1)
'*-------------------------------------------------------------------------------------------------*
'Stücklistentab:
'*-------------------------------------------------------------------------------------------------*
'Artikellistentab - Groupbox 1:
GROUPBOX&[2,0] = CREATE("GROUPBOX" , TabCtl0&[2],"Aktueller Artikel", 015,010,(WIDTH(TabCtl0&[2]) - 30),075)
TEXT&[2,0,1] = CREATE("TEXT" , GROUPBOX&[2,0], "Pos." , 015,018,030,017)
TEXT&[2,0,2] = CREATE("TEXT" , GROUPBOX&[2,0], "Menge" , 055,018,035,017)
TEXT&[2,0,3] = CREATE("TEXT" , GROUPBOX&[2,0], "Korr." , 095,018,035,017)
TEXT&[2,0,4] = CREATE("TEXT" , GROUPBOX&[2,0], "Einh." , 135,018,030,017)
TEXT&[2,0,5] = CREATE("TEXT" , GROUPBOX&[2,0], "Benennung 1" , 175,018,150,017)
TEXT&[2,0,6] = CREATE("TEXT" , GROUPBOX&[2,0], "Benennung 2" , 435,018,150,017)
TEXT&[2,0,7] = CREATE("TEXT" , GROUPBOX&[2,0], "Norm" , 695,018,100,017)
TEXT&[2,0,8] = CREATE("TEXT" , GROUPBOX&[2,0], "Werkstoff" , 805,018,100,017)
TEXT&[2,0,9] = CREATE("TEXT" , GROUPBOX&[2,0], "Artikel-Nr." , 915,018,080,017)
TEXT&[2,0,10] = CREATE("TEXT" , GROUPBOX&[2,0], "Gewicht" ,1005,018,080,017)
EDIT&[2,0,1] = CreateEditR (TabCtl0&[2] , "" , 030,050,030,025)
EDIT&[2,0,2] = CreateEditR (TabCtl0&[2] , "" , 070,050,030,025)
EDIT&[2,0,3] = CreateEditR (TabCtl0&[2] , "" , 110,050,030,025)
EDIT&[2,0,4] = CreateTextTL(GROUPBOX&[2,0], "" , 135,039,030,025)
EDIT&[2,0,5] = CreateTextTL(GROUPBOX&[2,0], "" , 175,039,250,025)
EDIT&[2,0,6] = CreateTextTL(GROUPBOX&[2,0], "" , 435,039,250,025)
EDIT&[2,0,7] = CreateTextTL(GROUPBOX&[2,0], "" , 695,039,100,025)
EDIT&[2,0,8] = CreateTextTL(GROUPBOX&[2,0], "" , 805,039,100,025)
EDIT&[2,0,9] = CreateTextTL(GROUPBOX&[2,0], "" , 915,039,080,025)
EDIT&[2,0,10] = CreateTextTL(GROUPBOX&[2,0], "" ,1005,039,080,025)
BUTTON&[2,0,1] = CREATE("BUTTON", TabCtl0&[2], "übergeben" ,WIDTH(TabCtl0&[2])-190,045,160,030)
CREATE("TOOLTIP", DLG&, Edit&[2,0,1] , "Geben Sie hier die Positionszahl in \nder zu \
bearbeitenden Stückliste an.")
CREATE("TOOLTIP", DLG&, Edit&[2,0,2] , "Geben Sie hier die Menge je Einheit an.")
CREATE("TOOLTIP", DLG&, Edit&[2,0,3] , "Geben Sie hier die Korrekturmenge je Einheit an.")
CREATE("TOOLTIP", DLG&, Button&[2,0,2], "Klicken Sie hier, um den Artikel an die \nbearbeitende \
Stückliste anzufügen.")
'*-------------------------------------------------------------------------------------------------*
'Artikellistentab - TabControl:
WINDOWSTYLE 80
TabControl& = CREATE("TABCTRL" , TabCtl0&[2], ItemFile$[1,1], 015, 100, (WIDTH(TabCtl0&[2]) - 30), dy%-300)
TabCtl&[1] = CREATE("WINDOW", TabControl&, "", 2,25,WIDTH(TabControl&)-5, HEIGHT(TabControl&)-29)
EXTERNAL("user32","SetParent",TabCtl&[1],TabControl&)
WHILELOOP 2, 5
INSERTTAB(TabControl&, &LOOP, ItemFile$[&LOOP, 1])
TabCtl&[&LOOP] = CREATE("WINDOW", TabControl&,"", 2,25,WIDTH(TabControl&)-5, HEIGHT(TabControl&)-29)
EXTERNAL("user32","SetParent",TabCtl&[&LOOP],TabControl&)
SHOWWINDOW(TabCtl&[&LOOP],0)
WEND
SHOWWINDOW(TabCtl&[1],1)
DisableXPTheme(TabControl&)
'*-------------------------------------------------------------------------------------------------*
'Artikellistentab - Groupbox 2:
WHILELOOP 1, 5
'*-------------------------------------------------------------------------------------------------*
GROUPBOX&[2,&LOOP] = CREATE("GROUPBOX" ,TabCtl&[&LOOP] ,"Artikelsuche" ,015,010,(WIDTH(TabCtl&[&LOOP]) -030),075)
TEXT&[2,&LOOP,1] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Suchbegriff:" ,015,018,180,020)
TEXT&[2,&LOOP,2] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Nennmaß:" ,205,018,090,020)
TEXT&[2,&LOOP,3] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Länge:" ,305,018,090,020)
TEXT&[2,&LOOP,4] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Norm:" ,405,018,120,020)
TEXT&[2,&LOOP,5] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Werkstoff:" ,535,018,120,020)
TEXT&[2,&LOOP,6] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Kategorie:" ,665,018,120,020)
EDIT&[2,&LOOP,1] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,015,040,180,100)
EDIT&[2,&LOOP,2] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,205,040,090,100)
EDIT&[2,&LOOP,3] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,305,040,090,100)
EDIT&[2,&LOOP,4] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,405,040,120,100)
EDIT&[2,&LOOP,5] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,535,040,120,100)
EDIT&[2,&LOOP,6] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,665,040,120,100)
WEND
'*-------------------------------------------------------------------------------------------------*
BUTTON&[2,0,2] = CREATE("BUTTON",TabControl&,"Artikel finden..." ,875,060,100,030)
BUTTON&[2,0,3] = CREATE("BUTTON",TabControl&,"Reset" ,1075,060,050,030)
CREATE("TOOLTIP", DLG&, Button&[2,0,2], "Klicken Sie hier, um Artikel zu finden.")
CREATE("TOOLTIP", DLG&, Button&[2,0,3], "Klicken Sie hier, um die Suchkriterien zu löschen.")
'*-------------------------------------------------------------------------------------------------*
'*-------------------------------------------------------------------------------------------------*
SETWINDOWPOS DLG& = (%MAXX-dx%)/2,(%MAXY-dy%)/2 - dx%,dy%; 0
SETWINDOWPOS StatusLine& = 0,0-0,0;0
SHOWWINDOW(DLG&, 1)
'*-------------------------------------------------------------------------------------------------*
SETFOCUS(DLG&)
Dialogende% = 0
'*-------------------------------------------------------------------------------------------------*
WHILENOT Dialogende%
'-----------------------------------------------------------------------------------------------'
' Reiter im TabControl0& gewechselt
WHILELOOP 2
SHOWWINDOW(TabCtl0&[&LOOP], GETACTIVETAB(TabControl0&) = (&LOOP-1))
WEND
'-----------------------------------------------------------------------------------------------'
' Reiter im TabControl& gewechselt
WHILELOOP ItemFiles%
SHOWWINDOW(TabCtl&[&LOOP], GETACTIVETAB(TabControl&) = (&LOOP-1))
WEND
'*-------------------------------------------------------------------------------------------------*
WAITINPUT
'*-------------------------------------------------------------------------------------------------*
'*-------------------------------------------------------------------------------------------------*
IF (%KEY = 2)'Beenden
Dialogende% = 2
'*-------------------------------------------------------------------------------------------------*
ELSEIF CLICKED(BUTTON&[2,0,3])'Reset
MESSAGEBOX(PRGName$, "Reset", 0)
'*-------------------------------------------------------------------------------------------------*
ELSEIF CLICKED(BUTTON&[0,1])'Stückliste wählen
aux$ = LOADFILE$("Bitte Stückliste wählen:", SearchPath$ + "*.xls")
IF aux$ <> ""
SETTEXT Edit&[0,0], aux$
SearchPath$ = SUBSTR$(aux$, 1, SUBSTR$(aux$, -1, "\\"))
WRITEINI IniFile$, "OPTIONS", "SearchPath" = SearchPath$
ENDIF
'*-------------------------------------------------------------------------------------------------*
ENDIF
'*-------------------------------------------------------------------------------------------------*
ENDWHILE
'*-------------------------------------------------------------------------------------------------*
DISPOSE LVItemText#
DISPOSE SW#
'*-------------------------------------------------------------------------------------------------*
DESTROYWINDOW(DLG&)
'*-------------------------------------------------------------------------------------------------*
ENDPROC
'*-------------------------------------------------------------------------------------------------*
'***************************************************************************************************
' Hauptprogramm *
'***************************************************************************************************
$IFDEF Interpreter
WINDOWSTYLE (1 | 2 | 8 | 16 | 512)
WINDOW 0,0-%MAXX,%MAXY
CLS GETSYSCOLOR(15)
$ELSE
WINDOWSTYLE (1 | 2 | 8 | 16 | 512)
WINDOW 0,0-%MAXX,%MAXY
SHOWWINDOW(%HWND,0)
font color="#ff8800"> $ENDIF
'+-------------------------------------------------------------------------------------------------+
Dialog
FIN
Hab déjà diverse Lösungen ici im Forum probiert. Muss je qui Buttons réellement sur %HWND poser? ensuite peux je vous pas là positionieren, wohin vous maintenant sommes... |
| | | Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 25.02.2011 ▲ |
| |
| | | je peux qui Buttons weder avec qui souris encore avec qui clavier erreichen -
qui Controls laisser sich scheinbar so pas servir.
So peut sich naturellement aussi pas testen si bm_setState z.B. comme UserMessage ankommt.
Vermutlich klaust Du qui Messages dadurch cela Du SetParent(TabCtl&[1],TabControl&) anwendest.
je crois là hilft seulement qui Controls récente aufzubauen/ anzuordnen. |
| | | | |
| | Stephan Sonneborn | iF (25.02.11)
Vermutlich klaust Du qui Messages dadurch cela Du SetParent(TabCtl&,TabControl&) anwendest.
cela J'ai eu ici [...] gelesen (Dein Beitrag vom 05.10.05/ 19:27)
Ursprünglich hatte ego so: KompilierenMarqueSéparation'***************************************************************************************************
'* Programmname: BOMGenerator *
'* Version : 1.00 *
'* Stand : 05.02.2011 *
'* Änderung : *
'**************************************************************+************************************
'***************************************************************************************************
' Schalter setzen *
'***************************************************************************************************
SET ("TRUECOLOR" , 1)
SET ("AUTOPAINT" , 2)
SET ("MESSAGEMODE", 1)
SET ("FASTMODE" , 0)
$IFDEF Interpreter
SET ("DEBUGMODE" , 1)
SET ("ERRORLEVEL" , 1)
$ELSE
SET ("DEBUGMODE" , 0)
SET ("ERRORLEVEL" , 0)
$ENDIF
'***************************************************************************************************
'***************************************************************************************************
' Header-Dateien laden *
'***************************************************************************************************
$H WINDOWS.PH
$H COMMCTRL.PH
'***************************************************************************************************
'***************************************************************************************************
' Include-Dateien laden *
'***************************************************************************************************
'***************************************************************************************************
'***************************************************************************************************
'* Eigene Funktionen *
'***************************************************************************************************
DEF CreateTextL(6) CONTROL("STATIC",@$(2),$50000200,@%(3),@%(4),@%(5),@%(6),@%(1),100, %HInstance, $0000)
DEF CreateTextC(6) CONTROL("STATIC",@$(2),$50000201,@%(3),@%(4),@%(5),@%(6),@%(1),101, %HInstance, $0000)
DEF CreateTextR(6) CONTROL("STATIC",@$(2),$50000202,@%(3),@%(4),@%(5),@%(6),@%(1),102, %HInstance, $0000)
DEF CreateTextTL(6) CONTROL("STATIC",@$(2),$50001300,@%(3),@%(4),@%(5),@%(6),@%(1),103, %HInstance, $0000)
DEF CreateTextTC(6) CONTROL("STATIC",@$(2),$50001301,@%(3),@%(4),@%(5),@%(6),@%(1),104, %HInstance, $0000)
DEF CreateTextTR(6) CONTROL("STATIC",@$(2),$50001302,@%(3),@%(4),@%(5),@%(6),@%(1),105, %HInstance, $0000)
DEF CreateEditL(6) CONTROL("EDIT" ,@$(2),$50000000,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
DEF CreateEditC(6) CONTROL("EDIT" ,@$(2),$50000001,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
DEF CreateEditR(6) CONTROL("EDIT" ,@$(2),$50000002,@%(3),@%(4),@%(5),@%(6),@%(1),106, %HInstance, $0200)
'*-------------------------------------------------------------------------------------------------*
DEF MIN(2) IF(@&(1) <= @&(2), @&(1), @&(2))
DEF MAX(2) IF(@&(1) > @&(2), @&(1), @&(2))
'*-------------------------------------------------------------------------------------------------*
DEF SetwindowTheme(3) !"uxtheme.dll", "SetWindowTheme"
DEF BringWindowToTop(1) !"user32", "BringWindowToTop"
DEF GetSysColor(1) !"USER32","GetSysColor"
'*-------------------------------------------------------------------------------------------------*
'***************************************************************************************************
'* Globale Variablen *
'***************************************************************************************************
DECLARE FlashBitmap&, FlashBitmapX%, FlashBitmapY%, SplashScreen&, Progressbar&[2]
DECLARE SearchPath$, IniFile$, PRGName$, Version$
DECLARE ItemFile$[32,3], ItemFiles% , ItemFilePath$, LastBOMPos&
DECLARE Column$[32], Columns%
DECLARE DLG&, HPic&, Pic& , Statusline&
DECLARE TabControl0&, TabCtl0&[2], TabControl&, TabCtl&[32], Gridbox&[2,32]
DECLARE Groupbox&[2,32], Text&[2,32,12], Edit&[2,32,12], Button&[2,32,12], Choicebox&[2,32,4]
DECLARE Excel&, Workbooks&, ExcelWnd&, ExcelBook&, ExcelSheet&, ExcelSheet$, ExcelSheetLines&
DECLARE Range&
DECLARE Font&[20], FontHeight%[2]
DECLARE LVDLL&, ImageList&
'***************************************************************************************************
ItemFile$[1, 1] = "Tab 1"
ItemFile$[2, 1] = "Tab 2"
ItemFile$[3, 1] = "Tab 3"
ItemFile$[4, 1] = "Tab 4"
ItemFile$[5, 1] = "Tab 5"
PrGName$ = "Demo"
'***************************************************************************************************
'* Prozeduren *
'***************************************************************************************************
'*-------------------------------------------------------------------------------------------------*
'* XP-Manifest für einzelne Controls abschalten *
'*-------------------------------------------------------------------------------------------------*
PROC DisableXPTheme
'*-------------------------------------------------------------------------------------------------*
PARAMETERS Hwnd&
'*-------------------------------------------------------------------------------------------------*
DECLARE Word#
DIM Word#, 2
SetwindowTheme(Hwnd&, Word#, Word#)
DISPOSE Word#
ENDPROC
'*-------------------------------------------------------------------------------------------------*
'************************************************************************************************
' Benutzerdialog *
'************************************************************************************************
PROC Dialog
DECLARE Dialogende% ,aux$, aux%, aux&, dx%, dy%, LastTab%
DECLARE Zeilen&, Zeile&, Zeile$, Found&
DECLARE LVItemText#, LVHandle&, SW#, DblClk&
DECLARE SuchBegriff$[6]
'*-------------------------------------------------------------------------------------------------*
DIM LVItemText#, 16384
DIM SW# , 9*4
'*-------------------------------------------------------------------------------------------------*
'*-------------------------------------------------------------------------------------------------*
'Dialogbox:
'*-------------------------------------------------------------------------------------------------*
dx% = %MAXX
dy% = %MAXY
DLG& = %HWND'CREATE("DIALOG" , %HWND,PrgName$ ,0,0,0,0)
'*-------------------------------------------------------------------------------------------------*
' Statuszeile:
LONG SW#, 0 = 050, 650, 700, 775, 825, 875, 925, dx%-1
Statusline& = CREATE("STATUSWINDOW", DLG& , "", 9, SW#)
SETTEXT Statusline&, 0, "Datei:"
SETTEXT Statusline&, 2, "Stand:"
SETTEXT Statusline&, 4, "Artikel:"
SETTEXT Statusline&, 6, "Treffer:"
SHOWWINDOW(DLG&, 0)
'*-------------------------------------------------------------------------------------------------*
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
'*-------------------------------------------------------------------------------------------------*
' Aktuelle Stückliste:
GROUPBOX&[0,1] = CREATE("GROUPBOX", DLG&, "Aktuelle Stückliste",015,010,(dx% - %BMPX - 050),055)
BUTTON&[0,1] = CREATE("BUTTON", DLG&, "wählen" ,(dx% - %BMPX - 130),027,080,030)
EDIT&[0,0] = CREATE("EDIT", DLG&, "" ,030,030,WIDTH(GROUPBOX&[0,1])-125,025)
CREATE("TOOLTIP", DLG&, Edit&[0,0], "Geben Sie hier den Namen (inkl. Pfad) \nder zu \
bearbeitenden Stückliste an.")
CREATE("TOOLTIP", DLG&, Button&[0,1], "Klicken Sie hier, um die zu \nbearbeitende Stückliste \
auszuwählen.")
'*-------------------------------------------------------------------------------------------------*
' Haupttabcontrol:
TabControl0& = CREATE("TABCTRL", DLG&, "Stückliste", 015, 075, dx% - 40, dy% - 075)
INSERTTAB(TabControl0&,1,"Artikelliste")
DisableXPTheme(TabControl0&)
WHILELOOP 2
TabCtl0&[&LOOP] = CONTROL("DIALOG","", $40081003,2,25,WIDTH(TabControl0&)-5, HEIGHT(TabControl0&)-29,TabControl0&,0,%HINSTANCE)
SHOWWINDOW(TabCtl0&[&LOOP],0)
WEND
SHOWWINDOW(TabCtl0&[2],1)
'*-------------------------------------------------------------------------------------------------*
'Stücklistentab:
'*-------------------------------------------------------------------------------------------------*
'Artikellistentab - Groupbox 1:
GROUPBOX&[2,0] = CREATE("GROUPBOX" , TabCtl0&[2],"Aktueller Artikel", 015,010,(WIDTH(TabCtl0&[2]) - 30),075)
TEXT&[2,0,1] = CREATE("TEXT" , GROUPBOX&[2,0], "Pos." , 015,018,030,017)
TEXT&[2,0,2] = CREATE("TEXT" , GROUPBOX&[2,0], "Menge" , 055,018,035,017)
TEXT&[2,0,3] = CREATE("TEXT" , GROUPBOX&[2,0], "Korr." , 095,018,035,017)
TEXT&[2,0,4] = CREATE("TEXT" , GROUPBOX&[2,0], "Einh." , 135,018,030,017)
TEXT&[2,0,5] = CREATE("TEXT" , GROUPBOX&[2,0], "Benennung 1" , 175,018,150,017)
TEXT&[2,0,6] = CREATE("TEXT" , GROUPBOX&[2,0], "Benennung 2" , 435,018,150,017)
TEXT&[2,0,7] = CREATE("TEXT" , GROUPBOX&[2,0], "Norm" , 695,018,100,017)
TEXT&[2,0,8] = CREATE("TEXT" , GROUPBOX&[2,0], "Werkstoff" , 805,018,100,017)
TEXT&[2,0,9] = CREATE("TEXT" , GROUPBOX&[2,0], "Artikel-Nr." , 915,018,080,017)
TEXT&[2,0,10] = CREATE("TEXT" , GROUPBOX&[2,0], "Gewicht" ,1005,018,080,017)
EDIT&[2,0,1] = CreateEditR (TabCtl0&[2] , "" , 030,050,030,025)
EDIT&[2,0,2] = CreateEditR (TabCtl0&[2] , "" , 070,050,030,025)
EDIT&[2,0,3] = CreateEditR (TabCtl0&[2] , "" , 110,050,030,025)
EDIT&[2,0,4] = CreateTextTL(GROUPBOX&[2,0], "" , 135,039,030,025)
EDIT&[2,0,5] = CreateTextTL(GROUPBOX&[2,0], "" , 175,039,250,025)
EDIT&[2,0,6] = CreateTextTL(GROUPBOX&[2,0], "" , 435,039,250,025)
EDIT&[2,0,7] = CreateTextTL(GROUPBOX&[2,0], "" , 695,039,100,025)
EDIT&[2,0,8] = CreateTextTL(GROUPBOX&[2,0], "" , 805,039,100,025)
EDIT&[2,0,9] = CreateTextTL(GROUPBOX&[2,0], "" , 915,039,080,025)
EDIT&[2,0,10] = CreateTextTL(GROUPBOX&[2,0], "" ,1005,039,080,025)
BUTTON&[2,0,1] = CREATE("BUTTON", TabCtl0&[2], "übergeben" ,WIDTH(TabCtl0&[2])-190,045,160,030)
CREATE("TOOLTIP", DLG&, Edit&[2,0,1] , "Geben Sie hier die Positionszahl in \nder zu \
bearbeitenden Stückliste an.")
CREATE("TOOLTIP", DLG&, Edit&[2,0,2] , "Geben Sie hier die Menge je Einheit an.")
CREATE("TOOLTIP", DLG&, Edit&[2,0,3] , "Geben Sie hier die Korrekturmenge je Einheit an.")
CREATE("TOOLTIP", DLG&, Button&[2,0,2], "Klicken Sie hier, um den Artikel an die \nbearbeitende \
Stückliste anzufügen.")
'*-------------------------------------------------------------------------------------------------*
'Artikellistentab - TabControl:
WINDOWSTYLE 80
TabControl& = CREATE("TABCTRL" , TabCtl0&[2], ItemFile$[1,1], 015, 100, (WIDTH(TabCtl0&[2]) - 30), dy%-300)
TabCtl&[1] = CONTROL("DIALOG","", $40081003, 2,25,WIDTH(TabControl&)-5, HEIGHT(TabControl&)-29,TabControl&,0,%HINSTANCE)
'TabCtl&[1] = CREATE("WINDOW", TabControl&,"", 2,25,WIDTH(TabControl&)-5, HEIGHT(TabControl&)-29)
'EXTERNAL("user32","SetParent",TabCtl&[1],TabControl&)
WHILELOOP 2, 5
INSERTTAB(TabControl&, &LOOP, ItemFile$[&LOOP, 1])
TabCtl&[&LOOP] =CONTROL("DIALOG","", $40081003, 2,25,WIDTH(TabControl&)-5, HEIGHT(TabControl&)-29,TabControl&,0,%HINSTANCE)
'TabCtl&[&LOOP] = CREATE("WINDOW", TabControl&,"", 2,25,WIDTH(TabControl&)-5, HEIGHT(TabControl&)-29)
'EXTERNAL("user32","SetParent",TabCtl&[&LOOP],TabControl&)
SHOWWINDOW(TabCtl&[&LOOP],0)
WEND
SHOWWINDOW(TabCtl&[1],1)
DisableXPTheme(TabControl&)
'*-------------------------------------------------------------------------------------------------*
'Artikellistentab - Groupbox 2:
WHILELOOP 1, 5
'*-------------------------------------------------------------------------------------------------*
GROUPBOX&[2,&LOOP] = CREATE("GROUPBOX" ,TabCtl&[&LOOP] ,"Artikelsuche" ,015,010,(WIDTH(TabCtl&[&LOOP]) -030),075)
TEXT&[2,&LOOP,1] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Suchbegriff:" ,015,018,180,020)
TEXT&[2,&LOOP,2] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Nennmaß:" ,205,018,090,020)
TEXT&[2,&LOOP,3] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Länge:" ,305,018,090,020)
TEXT&[2,&LOOP,4] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Norm:" ,405,018,120,020)
TEXT&[2,&LOOP,5] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Werkstoff:" ,535,018,120,020)
TEXT&[2,&LOOP,6] = CREATE("TEXT" ,GROUPBOX&[2,&LOOP],"Kategorie:" ,665,018,120,020)
EDIT&[2,&LOOP,1] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,015,040,180,100)
EDIT&[2,&LOOP,2] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,205,040,090,100)
EDIT&[2,&LOOP,3] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,305,040,090,100)
EDIT&[2,&LOOP,4] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,405,040,120,100)
EDIT&[2,&LOOP,5] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,535,040,120,100)
EDIT&[2,&LOOP,6] = CREATE("CHOICEBOX",GROUPBOX&[2,&LOOP],"" ,665,040,120,100)
WEND
'*-------------------------------------------------------------------------------------------------*
BUTTON&[2,0,2] = CREATE("BUTTON",TabControl&,"Artikel finden..." ,875,060,100,030)
BUTTON&[2,0,3] = CREATE("BUTTON",TabControl&,"Reset" ,1075,060,050,030)
CREATE("TOOLTIP", DLG&, Button&[2,0,2], "Klicken Sie hier, um Artikel zu finden.")
CREATE("TOOLTIP", DLG&, Button&[2,0,3], "Klicken Sie hier, um die Suchkriterien zu löschen.")
'*-------------------------------------------------------------------------------------------------*
'*-------------------------------------------------------------------------------------------------*
SETWINDOWPOS DLG& = (%MAXX-dx%)/2,(%MAXY-dy%)/2 - dx%,dy%; 0
SETWINDOWPOS StatusLine& = 0,0-0,0;0
SHOWWINDOW(DLG&, 1)
'*-------------------------------------------------------------------------------------------------*
SETFOCUS(DLG&)
Dialogende% = 0
'*-------------------------------------------------------------------------------------------------*
WHILENOT Dialogende%
'-----------------------------------------------------------------------------------------------'
' Reiter im TabControl0& gewechselt
WHILELOOP 2
SHOWWINDOW(TabCtl0&[&LOOP], GETACTIVETAB(TabControl0&) = (&LOOP-1))
WEND
'-----------------------------------------------------------------------------------------------'
' Reiter im TabControl& gewechselt
WHILELOOP ItemFiles%
SHOWWINDOW(TabCtl&[&LOOP], GETACTIVETAB(TabControl&) = (&LOOP-1))
WEND
'*-------------------------------------------------------------------------------------------------*
WAITINPUT
'*-------------------------------------------------------------------------------------------------*
'*-------------------------------------------------------------------------------------------------*
IF (%KEY = 2)'Beenden
Dialogende% = 2
'*-------------------------------------------------------------------------------------------------*
ELSEIF CLICKED(BUTTON&[2,0,3])'Reset
MESSAGEBOX(PRGName$, "Reset", 0)
'*-------------------------------------------------------------------------------------------------*
ELSEIF CLICKED(BUTTON&[0,1])'Stückliste wählen
aux$ = LOADFILE$("Bitte Stückliste wählen:", SearchPath$ + "*.xls")
IF aux$ <> ""
SETTEXT Edit&[0,0], aux$
SearchPath$ = SUBSTR$(aux$, 1, SUBSTR$(aux$, -1, "\\"))
WRITEINI IniFile$, "OPTIONS", "SearchPath" = SearchPath$
ENDIF
'*-------------------------------------------------------------------------------------------------*
ENDIF
'*-------------------------------------------------------------------------------------------------*
ENDWHILE
'*-------------------------------------------------------------------------------------------------*
DISPOSE LVItemText#
DISPOSE SW#
'*-------------------------------------------------------------------------------------------------*
DESTROYWINDOW(DLG&)
'*-------------------------------------------------------------------------------------------------*
ENDPROC
'*-------------------------------------------------------------------------------------------------*
'***************************************************************************************************
' Hauptprogramm *
'***************************************************************************************************
$IFDEF Interpreter
WINDOWSTYLE (1 | 2 | 8 | 16 | 512)
WINDOW 0,0-%MAXX,%MAXY
CLS GETSYSCOLOR(15)
$ELSE
WINDOWSTYLE (1 | 2 | 8 | 16 | 512)
WINDOW 0,0-%MAXX,%MAXY
SHOWWINDOW(%HWND,0)
> $ENDIF
'+-------------------------------------------------------------------------------------------------+
Dialog
FIN
|
| | | Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 25.02.2011 ▲ |
| |
| | | Teste la fois si es funktioniert si Du den Button sur solch Dialog mets et den Dialog sur Dein Contrôle: KompilierenMarqueSéparationcls
var h&=control("DIALOG","",ws_tabStop | ws_child | ws_visible | ws_clipSiblings | ws_clipChildren,0,0,96,24,%hWnd,0,%hInstance,0)
var b&=create("button",h&,"Test",0,0,width(h&),height(h&))
while 1
waitinput
case clicked(b&) : end
/a>
|
| | | | |
| | Thomas Freier |
Hab déjà diverse Lösungen ici im Forum probiert. Muss je qui Buttons réellement sur %HWND poser? ensuite peux je vous pas là positionieren, wohin vous maintenant sommes...
non et oui, mais comment qui anderen Elemente sur den entsprechenden TabCtl&[&LOOP] KompilierenMarqueSéparation et pas KompilierenMarqueSéparationBUTTON&[2,0,2] = CREATE("BUTTON",TabControl&,"Artikel finden..." ,875,060,100,030) > et so comment je es vois sur: KompilierenMarqueSéparationBUTTON&[2,0,2] = CREATE("BUTTON",TabCtl&[1],"Artikel finden..." ,875,060,100,030)
BUTTON&[2,0,3] = CREATE("BUTTON",TabCtl&[1],"Reset" ,1075,060,050,030)e> |
| | | | |
| | Stephan Sonneborn | allô Thomas,
merci pour den Tip. je werde wohl pas tambour herumkommen, sur chaque Tab qui beiden Buttons trop poser.
cela voulais je eigentlich vermeiden, là qui ensuite oui aussi alle einzeln abgefragt volonté doit. et je sais im Voraus pas, wieviele Tabs je erstellen muss. qui Choiceboxen volonté pas dedans des Ereignishandlers abgefragt, mais seulement sur ihren aktuellen le contenu beim chercher eines Artikels abgefragt. cet Choiceboxen devoir aussi sur chaque Tab separat erstellt volonté, weil ensuite aussi chaque Tab trop chacun Zeit différent Suchkriterien behalten peux.
je muss mir ensuite plan avec einer Boucle im Ereignishandler aider: KompilierenMarqueSéparation |
| | | Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 26.02.2011 ▲ |
| |
| | Thomas Freier | bof, tu peux aussi seulement une Button prendre et ensuite den aktuellen Tab abfragen à entsprechende Aktion effectuer trop laisser. qui Button sur: KompilierenMarqueSéparation'*-------------------------------------------------------------------------------------------------*
CREATE("GROUPBOX" , TabCtl0&[2],"", 1040,92,162,118)
BUTTON&[2,0,2] = CREATE("BUTTON",TabCtl0&[2],"Artikel finden..." ,1045,100,100,020)
BUTTON&[2,0,3] = CREATE("BUTTON",TabCtl0&[2],"Reset" ,1145,100,050,020)
CREATE("TOOLTIP", DLG&, Button&[2,0,2], "Klicken Sie hier, um Artikel zu finden.")
CREATE("TOOLTIP", DLG&, Button&[2,0,3], "Klicken Sie hier, um die Suchkriterien zu löschen.")
'*-------------------------------------------------------------------------------------------------*<
et irgendwie dem 2. Tabcontrol optique zuordenen. Habe sur qui Schnelle une "GROUPBOX" pris. si là un "Control" wäre (STATIC avec Border?), dass comment un Tabreiter aussieht, käme es wohl besser. |
| | | | |
| | | [offtopic]@Stephan: cela Code-journée hatte pas funktioniert weil Du es avec [\code statt [/code geschlossen hattest ^ ^[/offtopic] |
| | | | |
| | Stephan Sonneborn | allô Thomas,
si je qui beiden Buttons au-dessus de des Tabcontrols anordnen serait, könnten vous peut-être. ensuite überlagert, si relativ viele Tabs angelegt volonté müssten (z.Z. sommes es 15). Aussi vous êtes ensuite quelque chose aus dem Kontext Artikelsuche heraus. mais Dein erstes Posting hat mir weitergeholfen. je hab wohl den forêt avant lauter Bäumen pas gesehn |
| | | Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 27.02.2011 ▲ |
| |
|
répondreOptions du sujet | 3.722 Views |
Themeninformationencet Thema hat 3 participant: |