Autor | Thema: Button selber belegen lassen | | Datum:29.09.02 16:03 
(krause@gmx.de) | |
ich möchte gerne wissen ob das geht,einen bottun in meinem programm selber vom benutzer belegen lassen ?? (seine lieblingsprogramm in meinem programm aufrufen kann) wenn ja wie mach ich sowas oder gibt es da schon beispiele??
|
| | Datum:29.09.02 16:06 
(krause@gmx.de) | |
achso, ich benutze Profan 5.0
|
| | Datum:29.09.02 16:13 
| |
wenn du meinst, den namen des buttons vom benutzer festlegen zu lassen, würde ich die namen zuerst in die registry schreiben oder in einen stinknormale txt datei und bei start immer abfragen, bei ändernung einfach entpsrechned abändern........
|
| | Datum:29.09.02 17:04 
(webmaster@rokosoft.de) | |
Hi, ja so wie Florian geschrieben hat - aber in eine Ini und nicht in die Registry ;)
Hier mal ein schnelles Beispiel:
'********************** HINWEISE ********************************
' CODE ERZEUGT MIT ROKO'S OBJECT CREATOR V 2.5
' DATUM 29.09.2002 um 16:33 Uhr
PROC SCHREIBE
'HIER NUN DAS ZUWEISEN DER BUTTONTEXTE
'GILT NUR ALS BEISPIEL
let button1$=@readini$("BUTTON.INI","BUTTON","NR1")
let button2$=@readini$("BUTTON.INI","BUTTON","NR2")
let button3$=@readini$("BUTTON.INI","BUTTON","NR3")
case @neq$(button1$,""):settext button1%,button1$
case @neq$(button2$,""):settext button2%,button2$
case @neq$(button3$,""):settext button3%,button3$
ENDPROC
PROC EINGABE
LET DLG&=CREATEDIALOG(%HWND,"Neue Buttontexte",100,115,487,183)
LET DENDE%=0
LET TEXT1% =@CREATETEXT(DLG&,"BUTTON 1",0031,0020,0070,0020)
LET TEXT2% =@CREATETEXT(DLG&,"BUTTON 2",0031,0052,0070,0020)
LET TEXT3% =@CREATETEXT(DLG&,"BUTTON 3",0031,0084,0070,0020)
LET EDIT1% =@CREATEEDIT(DLG&,"",0128,0017,0318,0018)
LET EDIT2% =@CREATEEDIT(DLG&,"",0128,0049,0316,0017)
LET EDIT3% =@CREATEEDIT(DLG&,"",0129,0082,0316,0019)
LET OK% =@CREATEBUTTON(DLG&,"OK",0375,0113,0069,0020)
WHILENOT DENDE%
WAITINPUT
If @EQU(%KEY,2)
LET DENDE%= 1
ELSEIF @GETFOCUS(OK%) 'BUTTON
WRITEINI "BUTTON.INI","BUTTON","NR1"=@gettext$(EDIT1%)
WRITEINI "BUTTON.INI","BUTTON","NR2"=@gettext$(EDIT2%)
WRITEINI "BUTTON.INI","BUTTON","NR3"=@gettext$(EDIT3%)
@DESTROYWINDOW(DLG&)
Let DENDE%=1
SCHREIBE
ENDIF
WEND
ENDPROC
SETTRUECOLOR 1
DECLARE ENDE%,zeile$
DECLARE BUTTON1%,Button1$
DECLARE BUTTON2%,Button2$
DECLARE BUTTON3%,Button3$
DECLARE BUTTON4%
DECLARE BUTTON5%
DECLARE DLG&,DENDE%
DECLARE TEXT1%
DECLARE TEXT2%
DECLARE TEXT3%
DECLARE EDIT1%
DECLARE EDIT2%
DECLARE EDIT3%
DECLARE OK%
WINDOWSTYLE 527
WINDOW 22,20-640,199
WINDOWTITLE "Buttons beschriften"
CLS @RGB(212,208,200)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
' Hier kann ggf. Ihr Menü hin
LET BUTTON1% =CREATE("BUTTON",%HWND,"Leer",0010,0012,0617,0029)
LET BUTTON2% =CREATE("BUTTON",%HWND,"Leer",0010,0047,0615,0025)
LET BUTTON3% =CREATE("BUTTON",%HWND,"Leer",0010,0084,0615,0026)
LET BUTTON4% =CREATE("BUTTON",%HWND,"Ende",360,0113,0125,0029)
LET BUTTON5% =CREATE("BUTTON",%HWND,"Buttontext",0500,0113,0125,0029)
SCHREIBE
WHILENOT ENDE%
WAITINPUT
If @EQU(%KEY,2)
LET ENDE%= 1
ELSEIF @GETFOCUS(BUTTON5%)
EINGABE
ELSEIF @GETFOCUS(BUTTON4%) 'BUTTON
LET ENDE%=1
ENDIF
WEND
Rolf
|
| | Datum:29.09.02 19:56 
(krause@gmx.de) | |
mm ja so meinete ich das aber da bleibt noch das problemm wie jetzt der link zu seinem programm sich einfügt,so das es seine *.exe datei mit meinem programm starten kann
wie mach ich das?? Profan 5.0
|
| | Datum:29.09.02 20:37 
(webmaster@rokosoft.de) | |
Hi,
In meinem Beispiel kann man nur den Text für die Buttons angeben.
Wie wäre es, daneben auch eine Exe für jeden Buttontext anzugeben?
Die jeweilige Exe schreibt man dann auch in die Ini.
Beispiel:
WRITEINI "BUTTON.INI","BUTTON","NR1"=@gettext$(EDIT1%)
WRITEINI "BUTTON.INI","BUTTON","EXE1"=@gettext$(EXE1%)
'Hier würde EXE1% ein Editfeld sein (halt wie Edit1%)
Nun brauchst Du nur noch in Deinem Programm die Buttons abzufragen:
if @getfocus(Button1%)
let exe1$=@readini$("BUTTON.INI","BUTTON","EXE1")
WINEXEC(exe1$,3)
elseif @getfocus(Button2%)
'........
endif
Bedeutet im Klartext:
Jedem Buttontext muss auch eine Exe zugeordnet werden - also auch in diese Inidatei.
Wenn nun in dem jeweiligen Abschnitt was drinsteht - also ein Exe incl. Pfad, so wird diese Exe ausgeführt wenn man auf den Button klickt - wenn nix drinsteht passiert nichts.
Hoffe ich hab mich verständlich ausgedrückt.
Rolf
|
| | Datum:29.09.02 21:18 
(webmaster@rokosoft.de) | |
Ok, hier nochmal eine verbesserte und erweiterte Version.
'********************** HINWEISE ********************************
' CODE ERZEUGT MIT ROKO'S OBJECT CREATOR V 2.5
' DATUM 29.09.2002 um 16:33 Uhr
PROC SCHREIBE
'HIER NUN DAS ZUWEISEN DER BUTTONTEXTE
'GILT NUR ALS BEISPIEL
let button1$=@readini$("BUTTON.INI","BUTTON","NR1")
let button2$=@readini$("BUTTON.INI","BUTTON","NR2")
let button3$=@readini$("BUTTON.INI","BUTTON","NR3")
case @neq$(button1$,""):settext button1%,button1$
case @neq$(button2$,""):settext button2%,button2$
case @neq$(button3$,""):settext button3%,button3$
ENDPROC
PROC EINGABE
LET DLG&=CREATEDIALOG(%HWND,"Neue Buttontexte",100,115,487,183)
LET DENDE%=0
@CREATETEXT(DLG&,"TEXT 1",0031,0020,0070,0020)
@CREATETEXT(DLG&,"TEXT 2",0031,0052,0070,0020)
@CREATETEXT(DLG&,"TEXT 3",0031,0084,0070,0020)
@CREATETEXT(DLG&,"EXE 1",0350,0020,0070,0020)
@CREATETEXT(DLG&,"EXE 2",0350,0052,0070,0020)
@CREATETEXT(DLG&,"EXE 3",0350,0084,0070,0020)
LET EDIT1% =@CREATEEDIT(DLG&,"",088,0017,0216,0018)
LET EDIT2% =@CREATEEDIT(DLG&,"",088,0049,0216,0017)
LET EDIT3% =@CREATEEDIT(DLG&,"",088,0082,0216,0019)
let exe1%=@CREATEBUTTON(DLG&,"...",0385,015,0040,0020)
let exe2%=@CREATEBUTTON(DLG&,"...",0385,050,0040,0020)
let exe3%=@CREATEBUTTON(DLG&,"...",0385,080,0040,0020)
LET OK% =@CREATEBUTTON(DLG&,"OK",0375,0113,0069,0020)
WHILENOT DENDE%
WAITINPUT
If @EQU(%KEY,2)
LET DENDE%= 1
Elseif @getfocus(exe1%)
let datei$=@LOADFILE$("ÖFFNE:","*.EXE")
if @neq$(datei$,"")
WRITEINI "BUTTON.INI","BUTTON","EXE1"=datei$
endif
Elseif @getfocus(exe2%)
let datei$=@LOADFILE$("ÖFFNE:","*.EXE")
if @neq$(datei$,"")
WRITEINI "BUTTON.INI","BUTTON","EXE2"=datei$
endif
Elseif @getfocus(exe3%)
let datei$=@LOADFILE$("ÖFFNE:","*.EXE")
if @neq$(datei$,"")
WRITEINI "BUTTON.INI","BUTTON","EXE3"=datei$
endif
ELSEIF @GETFOCUS(OK%) 'BUTTON
case @neq$(@gettext$(edit1%),""):WRITEINI "BUTTON.INI","BUTTON","NR1"=@gettext$(EDIT1%)
case @neq$(@gettext$(edit2%),""):WRITEINI "BUTTON.INI","BUTTON","NR2"=@gettext$(EDIT2%)
case @neq$(@gettext$(edit3%),""):WRITEINI "BUTTON.INI","BUTTON","NR3"=@gettext$(EDIT3%)
@DESTROYWINDOW(DLG&)
Let DENDE%=1
SCHREIBE
ENDIF
WEND
ENDPROC
SETTRUECOLOR 1
DECLARE ENDE%,zeile$
DECLARE BUTTON1%,Button1$
DECLARE BUTTON2%,Button2$
DECLARE BUTTON3%,Button3$
DECLARE BUTTON4%,exe1%,exe2%,exe3%
DECLARE BUTTON5%,datei$
DECLARE DLG&,DENDE%,run$
DECLARE TEXT1%
DECLARE TEXT2%
DECLARE TEXT3%
DECLARE EDIT1%
DECLARE EDIT2%
DECLARE EDIT3%
DECLARE OK%
WINDOWSTYLE 527
WINDOW 22,20-640,199
WINDOWTITLE "Buttons beschriften"
CLS @RGB(212,208,200)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
' Hier kann ggf. Ihr Menü hin
LET BUTTON1% =CREATE("BUTTON",%HWND,"Leer",0010,0012,0617,0029)
LET BUTTON2% =CREATE("BUTTON",%HWND,"Leer",0010,0047,0615,0025)
LET BUTTON3% =CREATE("BUTTON",%HWND,"Leer",0010,0084,0615,0026)
LET BUTTON4% =CREATE("BUTTON",%HWND,"Ende",360,0113,0125,0029)
LET BUTTON5% =CREATE("BUTTON",%HWND,"Buttontext",0500,0113,0125,0029)
SCHREIBE
WHILENOT ENDE%
WAITINPUT
If @EQU(%KEY,2)
LET ENDE%= 1
ELSEIF @getfocus(Button1%)
run$=@readini$("BUTTON.INI","BUTTON","EXE1")
case @neq$(run$,""):Winexec(run$,1)
ELSEIF @getfocus(Button2%)
run$=@readini$("BUTTON.INI","BUTTON","EXE2")
case @neq$(run$,""):Winexec(run$,1)
ELSEIF @getfocus(Button3%)
run$=@readini$("BUTTON.INI","BUTTON","EXE3")
case @neq$(run$,""):Winexec(run$,1)
ELSEIF @GETFOCUS(BUTTON5%)
EINGABE
ELSEIF @GETFOCUS(BUTTON4%) 'BUTTON
LET ENDE%=1
ENDIF
WEND
Hoffe nun ist alles klar ;)
Rolf
|
| | Datum: 29.09.02 21:51 
(krause@gmx.de) | |
bedanke mich bei allen für ihre hilfe !!! besonders Rolf Koch
ihr seid echt SUPER !!! DANKE
|
|
|