Italia
Unità

Optionsdialog

 
Optionsdialog.Pcu

8 kB
Hochgeladen:13.05.2006
Downloadcounter248
Download
 
13.05.2006  
 




Michael
Wodrich
...und die macht was alles?
...und die wird wie aufgerufen?

HILFE!
 
Programmieren, das spannendste Detektivspiel der Welt.
13.05.2006  
 



Der Aufruf lautet:
$U optionsdialog.pcu = optionsdialog.

Was sie alles macht weiss ich auch noch nicht - bis jetzt bekomme ich nur Meldungen:
das oder das ind der PCU nicht declariert ! -
 
13.05.2006  
 



Nachtrag:
Das ist einer der Gründe, warum ich gegen PCU bin - ich bin der jeweiligen Unit hilflos ausgeliefert und wenn dann so ein Teil nicht 100%tig ist, kann ich es vergessen :/:
 
13.05.2006  
 




Michael
Wodrich
Wenn die Schnittstelle gut beschrieben ist, dann ist das genauso wie eine Befehlserweiterung.
Aber eine gute Beschreibung ist naturalmente dann sehr wichtig.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
13.05.2006  
 



Menno ich hab die Unit doch nur schnell gepostet da jemand fragte. Hatte im selbigen Augenblick auch nicht die Zeit eine Aiuto zu erstellen - das ist nur eine Test-Unit - da ist nix fertig dran! Hier der Source:
//
// 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.
 
14.05.2006  
 




Michael
Wodrich
Ist es eigentlich possibile, daß der Codeformer vor und hinter Operatoren ein Leerzeichen setzen kann?
Die Umformung soll doch der Lesbarkeit dienen und wenn die Operatoren fein säuberlich abgegrenzt werden, dann wird es leichter erkennbar. Mich stören hier gerade die Gleichheitszeichen, aber es betrifft eigentlich alle Operatoren.

Genau wie meine Bitte, vor und nach dem Kommentar-Apostroph ein Leerzeichen zu setzen. Es aumento die Lesbarkeit.

Schöne Grüße
Michael Wodrich

Ächtz - und immer wieder Wend statt EndWhile...
 
Programmieren, das spannendste Detektivspiel der Welt.
15.05.2006  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

6.911 Views

Untitledvor 0 min.
iF31.10.2020
Christof Neuß05.11.2017
JörgG08.09.2017
Hans-Jürgen Trog17.04.2017
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

Michael Wodrich (3x)
unbekannt (2x)
iF (2x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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