//
// ACHTUNG FUNCODE
//
{$cq}
$P*
$L
DECLARE ?_HDL&[50,3]
PROC ?_VER
RETURN "0.1.0"
ENDPROC
PROC ?_EDGE
PARAMETERS HDL&
SHOWWINDOW (HDL&,0)
EXTERNAL("USER32","SetWindowLongA",HDL&,-20,OR(EXTERNAL("USER32","GetWindowLongA",HDL&,-20),$20080))
SHOWWINDOW (HDL&,1)
ENDPROC
PROC ?_OPEN
PARAMETERS S$
DECLARE DLG&,LB&,T$,I&,RUB$[20],RUBN&[20],GB&,B1&,B2&,B3&,B4&,FNT&,OK%,DLGW&,TIT&
DECLARE ACTRUB$,TMPS$,CHANGED%,THISPLANE$,OLDPLANE$,FIRSTRUN%
PROC PAINTRUB
PARAMETERS SS$
DECLARE RN&,CX%,TYP$,INI$,DSC$,ELM%,CY%,OS$
OS$=SS$
RN&=0
I&=1
WHILE I& <= 20
IF (RUB$[I&]=SS$)
RN&=I&
ENDIF
INC I&
WEND
I&=20
IF RN&
SS$="NIL"
CX%=1
CY%=50
ELM%=0
WHILE LEN(SS$)
INC CX%
SS$=TRIM$(SUBSTR$(S$,CX%,"|"))
IF VAL(TRIM$(SUBSTR$(SS$,1,";")))=RN&
TYP$=TRIM$(UPPER$(SUBSTR$(SS$,2,";")))
INI$=TRIM$(SUBSTR$(SS$,3,";"))
DSC$=TRIM$(SUBSTR$(SS$,4,";"))
INC ELM%
IF TYP$="CHECKBOX"
?_HDL&[ELM%,3]=1
?_HDL&[ELM%,2]=(CONTROL("STATIC","",$50001000,(154),(CY%+1),(DLGW&-181),(23),(GB&),0,%HINSTANCE))
?_HDL&[ELM%,1]=CREATECHECKBOX(?_HDL&[ELM%,2],"",5,1,DLGW&-171,19)
CY%=CY%+30
SETFONT ?_HDL&[ELM%,1],FNT&
SETTEXT ?_HDL&[ELM%,1],DSC$
ELSEIF TYP$="RADIOBOX"
?_HDL&[ELM%,3]=2
?_HDL&[ELM%,2]=(CONTROL("STATIC","",$50001000,(154),(CY%+1),(DLGW&-181),(23),(GB&),0,%HINSTANCE))
?_HDL&[ELM%,1]=CREATERADIOBUTTON(?_HDL&[ELM%,2],"",5,1,DLGW&-171,19)
CY%=CY%+30
SETFONT ?_HDL&[ELM%,1],FNT&
SETTEXT ?_HDL&[ELM%,1],DSC$
ELSEIF TYP$="LOADFILE"
?_HDL&[ELM%,3]=3
?_HDL&[ELM%,1]=(CREATE("EDIT",(GB&),"",(154),(CY%+1),(DLGW&-211),(17)))
?_HDL&[ELM%,2]=(CREATE("BUTTON",(GB&),"...",(154+DLGW&-211),(CY%),(30),(19)))
CY%=CY%+25
SETFONT ?_HDL&[ELM%,1],FNT&
SETFONT ?_HDL&[ELM%,2],FNT&
ELSE
?_HDL&[ELM%,1]=0
?_HDL&[ELM%,2]=0
?_HDL&[ELM%,3]=0
ENDIF
ENDIF
WEND
SHOWWINDOW (TIT&,0)
SETTEXT TIT&,OS$
SHOWWINDOW (TIT&,1)
ENDIF
ENDPROC
PROC REMOVERUB
DECLARE I&
I&=1
WHILE I& <= 50
IF (?_HDL&[I&,3]>0) AND (?_HDL&[I&,3]<4)
DESTROYWINDOW (?_HDL&[I&,1])
DESTROYWINDOW (?_HDL&[I&,2])
?_HDL&[I&,3]=0
ELSE
?_HDL&[I&,1]=0
?_HDL&[I&,2]=0
?_HDL&[I&,3]=0
ENDIF
INC I&
WEND
I&=50
ENDPROC
FNT&=CREATEFONT("MS Sans Serif",10,0,0,0,0)
WINDOWSTYLE ( 16 | 512 )
DLG&=(CREATE("WINDOW",(%HWND),"Setup",((%MAXX2)-260),((%MAXY2)-200),(520),(400)))
?_EDGE DLG&
GB&=(CREATE("TABCTRL",(DLG&),"",(2-3),(0-3),(WIDTH(DLG&)-2+6),(HEIGHT(DLG&)+6)))
SENDMESSAGE (GB&,4873,0,0)
LB&=(CREATE("LISTBOX",(GB&),"",(0),(2),(130),(HEIGHT(GB&)-4)))
SENDMESSAGE(LB&,416,0,25)
?_EDGE LB&
T$=TRIM$(SUBSTR$(S$,1,"|"))
I&=1
WHILE I& <= 20
RUB$[I&]=SUBSTR$(SUBSTR$(T$,I&,","),2,"=")
RUBN&[I&]=VAL(SUBSTR$(SUBSTR$(T$,I&,","),1,"="))
IF LEN(RUB$[I&])
ADDSTRING(LB&,RUB$[I&])
ENDIF
INC I&
WEND
I&=20
DLGW&=WIDTH(GB&)
B1&=(CREATE("BUTTON",(DLG&),"&OK",(DLGW&-340-36),(HEIGHT(GB&)-40),(84),(22)))
B2&=(CREATE("BUTTON",(DLG&),"&Abbrechen",(DLGW&-260-24),(HEIGHT(GB&)-40),(84),(22)))
B3&=(CREATE("BUTTON",(DLG&),"&Übernehmen",(DLGW&-180-12),(HEIGHT(GB&)-40),(84),(22)))
B4&=(CREATE("BUTTON",(DLG&),"&Hilfe",(DLGW&-100),(HEIGHT(GB&)-40),(84),(22)))
SETFONT B1&,FNT&
SETFONT B2&,FNT&
SETFONT B3&,FNT&
SETFONT B4&,FNT&
ENABLEWINDOW B3&,0
OK%=0
TIT&=(CREATE("GROUPBOX",(GB&),"Bestätigungen",(144),(15),(DLGW&-160),(19)))
SELECTSTRING(LB&,-1,GETSTRING$(LB&,0))
ACTRUB$=GETSTRING$(LB&,0)
PAINTRUB ACTRUB$
CHANGED%=0
THISPLANE$=""
OLDPLANE$=""
FIRSTRUN%=1
WHILE (OK%=0)
?_SUBCLASS ACTRUB$
IF THISPLANE$<>OLDPLANE$
IFNOT CHANGED%
ENABLEWINDOW B3&,1
CHANGED%=1
ENDIF
ELSE
IF CHANGED%
ENABLEWINDOW B3&,0
CHANGED%=0
ENDIF
ENDIF
GETMESSAGE
IF GETFOCUS(LB&)
SETFOCUS(GB&)
IF GETSTRING$(LB&,GETCURSEL(LB&))<>ACTRUB$
REMOVERUB ACTRUB$
ACTRUB$=GETSTRING$(LB&,GETCURSEL(LB&))
PAINTRUB ACTRUB$
ENDIF
ENDIF
THISPLANE$=""
I&=1
WHILE I& <= 50
IF ?_HDL&[I&,3]>0
IF ?_HDL&[I&,3]=1
THISPLANE$=THISPLANE$+STR$(GETCHECK(?_HDL&[I&,1]))
ELSEIF ?_HDL&[I&,3]=2
THISPLANE$=THISPLANE$+STR$(GETCHECK(?_HDL&[I&,1]))
ELSEIF ?_HDL&[I&,3]=3
THISPLANE$=THISPLANE$+""+GETTEXT$(?_HDL&[I&,1])+""
IF %GETFOCUS=?_HDL&[I&,2]
TMPS$=LOADFILE$("Programmwahl:","Programme|*.exe")
IF LEN(TMPS$)
SETTEXT ?_HDL&[I&,1],TMPS$
ENDIF
SENDMESSAGE(?_HDL&[I&,1],$00B1,0,255)
SETFOCUS (?_HDL&[I&,1])
ENDIF
ENDIF
ENDIF
INC I&
WEND
I&=50
IF FIRSTRUN%
FIRSTRUN%=0
OLDPLANE$=THISPLANE$
ENDIF
IF CLICKED(B1&)
OK%=1
ELSEIF CLICKED(B2&)
OK%=2
ELSEIF CLICKED(B3&)
IF CHANGED%
ENABLEWINDOW B3&,0
OLDPLANE$=THISPLANE$
CHANGED%=0
ENDIF
ENDIF
WEND
DESTROYWINDOW (TIT&)
DESTROYWINDOW (B1&)
DESTROYWINDOW (B2&)
DESTROYWINDOW (B3&)
DESTROYWINDOW (B4&)
DESTROYWINDOW (GB&)
DESTROYWINDOW (LB&)
DESTROYWINDOW (DLG&)
DELETEOBJECT FNT&
SETTIMER 1
WAITINPUT
KILLTIMER
SETMENUITEM 0
ENDPROC
Salve.