Deutsch
Quelltexte/ Codesnippets

Mehrere Prozedur Return Werte Zurückgeb

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Prozedur: mehrere Return-Werte aus einer Prozedur zurückgeben
 $P+
SetErrorLevel 0
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,%HWNDbergabe 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 Arrays 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

ENDWHILE

 
16.07.2007  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.196 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie