$P+ SetErrorLevel 0 '********************** HINWEISE ******************************** ' CODE ERZEUGT MIT ROKO'S OBJECT CREATOR 2.9 ' DATUM 19.03.2003 um 19:29 Uhr ' VERWENDETE PROFANVERSION IST 7.0 ODER HÖHER Def GetSysColor(1) !"USER32","GetSysColor" SETTRUECOLOR 1 DECLARE ENDE% DECLARE EDIT1% DECLARE EDIT2% DECLARE EDIT3% DECLARE EDIT4% DECLARE TEXT1% DECLARE TEXT2% DECLARE BUTTON1% DECLARE LISTE1% DECLARE TEXT3%,i% declare string$,getit$,st% declare gstring$[100] 'je nach Bedarf - hier mal 100 mögliche Rückgabevariablen ;)))) WINDOWSTYLE 63 WINDOWTITLE "Returnwerte aus einer Proc" WINDOW 222,109-371,334 CLS GETSYSCOLOR(15) USEFONT "MS Sans Serif",13,0,0,0,0 SETDIALOGFONT 1 PROC GET_BACKPARA PARAMETERS e1$,e2$,e3$,e4$,anz% Declare rechnen%,Back1$,back2$,return$ let rechnen%=add(val(e1$),val(e2$)) let BACK1$=str$(rechnen%) 'rechnen% wird in Back1$ zurück übergeben let string$=e3$;e4$ let Back2$=String$ 'string$ wird in Back2$ zurück übergeben ' und hier werden die Trenner zur späteren Rückwandlung eingefügt: let RETURN$=e1$;"~";e2$;"~";BACK1$;"~";e3$;"~";e4$;"~";BACK2$;"~";"BlaBlaBla" 'Trenner ist am besten ein ungwöhnliches Zeichen! RETURN RETURN$ ENDPROC EDIT1% = CREATE("EDIT",%HWND,"",0010,0032,0036,0020) EDIT2% = CREATE("EDIT",%HWND,"",0067,0032,0036,0020) EDIT3% = CREATE("EDIT",%HWND,"",0011,0080,0130,0018) EDIT4% = CREATE("EDIT",%HWND,"",0153,0080,0130,0018) TEXT1% = CREATE("TEXT",%HWND,"Hier einfach mal 2 zu addierende Zahlen eingeben",0010,0010,0269,0016) TEXT2% = CREATE("TEXT",%HWND,"... und hier einfach zwei Strings die an die Proc übergeben werden",0010,0060,0334,0014) BUTTON1% = CREATE("BUTTON",%HWND,"An Proc übergeben und zurückliefern",0012,0111,0326,0029) LISTE1% = CREATE("LISTBOX",%HWND,"",0011,0173,0328,0106) TEXT3% = CREATE("TEXT",%HWND,"Übergabe aus Proc:",0013,0155,0163,0014) setfocus(Edit1%) WHILENOT ENDE% WAITINPUT If @EQU(%KEY,2) LET ENDE%= 1 ELSEIF GETFOCUS(BUTTON1%) 'BUTTON GetMessage 'Damit nicht 2 mal Buttonklick ausgewertet wird! 'DIES IST NUN DIE AUSWERTUNG (MEHR AUS 1 X RETURN) GET_BACKPARA GetText$(Edit1%),GetText$(Edit2%),GetText$(Edit3%),GetText$(Edit4%) GETIT$=@$(0) 'wie üblich nur einen Rückgabewert (werden wir aber überlisten hihihihi ;))) ) 'Ab Profan 7.0 mit Clear Gstring[] zur Not leeren 'Hier per Array's aus 1nem Return beliebig viele Rückgabewerte splitten. Gstring$[1]=@SubStr$(GETIT$,1,"~") 'Ist hier Eingabe 1 Gstring$[2]=@SubStr$(GETIT$,2,"~") 'Ist hier Eingabe 2 Gstring$[3]=@SubStr$(GETIT$,3,"~") 'Ist hier Summe Eingabe 1 und Eingabe 2 Gstring$[4]=@SubStr$(GETIT$,4,"~") 'Ist hier Eingabe 3 Gstring$[5]=@SubStr$(GETIT$,5,"~") 'Ist hier Eingabe 4 Gstring$[6]=@SubStr$(GETIT$,6,"~") 'Ist zusammengefügte Eingabe 3 und Eingabe 4 Gstring$[7]=@SubStr$(GETIT$,7,"~") 'Ist hier der Quatsch von mir oben in RETURN SetFocus(%hwnd) 'Beispiel Weiterverarbeitung: CLEARLIST AddString(Liste1%,"****** ALLES AUS 1x RETURN **********") AddString(Liste1%,ADD$("EINGABE 1: ",Gstring$[1])) AddString(Liste1%,ADD$("EINGABE 2: ",Gstring$[2])) AddString(Liste1%,ADD$("SUMME 1+2: ",Gstring$[3])) AddString(Liste1%,ADD$("EINGABE 3: ",Gstring$[4])) AddString(Liste1%,ADD$("EINGABE 4: ",Gstring$[5])) AddString(Liste1%,ADD$("ZUSAMMEN : ",Gstring$[6])) AddString(Liste1%,ADD$("UNSINN;) : ",Gstring$[7])) ENDIF WEND