Deutsch
Experimente

WindowStyle-Checker (Experimental)

 

p.specht

Bei manchen Programmen begegnet man Fenster-Stilen, die einem im ersten Moment exotisch vorkommen. Bekommt man die Steuerungsnummer des gewählten Stiles heraus, dann ist die Frage, welche Steuerelemente dabei überhaupt angesprochen werden (und wie). Umgekehrt ist es eine ziemliche Rechnerei, sich einen eigenen Fensterstil zu basteln. Obwohl das nachstehende Machwerk noch grobe Macken hat - die Eingabe "t" (= Fenstertest im gewählten Stil) will noch nicht so recht klappen - , so hat es doch einige recht nützliche Funktionen.
WindowTitle upper$("    Windowstyle auswerten \\ ermitteln (V 11.2a)")
'(S) Spaghettiware A.D.2017-01 by P.Specht, Wien/Ösiland. Keine Gewähr, für nichts!
CLS : font 2 : usepen 0,2,255:rectangle 257,344-370,374
declare i&, WS$, fs&, tmp$, mb&, mausabfr&, bit&, the_cows_come_home&
fs&=%windowstyle
WS$="   0,Keine Größenänderung\\kein Systemmenü,   1,Vergrößerungspfeil (in Verbindung mit 8),"+\
"   2,Verkleinerungspfeil zu Icon (in Verbindung mit 8),   4,Größe änderbar,"+\
"   8,Autom. Systemmenü,  16,kein Autom. Menü,  32,Bildschirmhintergrund,  64,keine Titelleiste,"+\
" 128,kein Abbruch m.Strg+Esc\\Alt+F4 + kein Wechsel\\Alt+Tab,"+\
" 256,kein Abbruch doch Wechsel mit Alt+Tab\MenuItem,"+\
" 512,Hauptfenster reagiert wie Dialogfenster,1024,Tool-Window: Klein\\nicht in Taskleiste,;"+\
"Kombinationen werden durch Addition der einzelnen Werte erreicht.;"+\
"Damit der Befehl Wirkung zeigt, muss er VOR dem ersten Öffnen des Programmfensters erfolgen!;"+\
"Bildschirmhintergrund klappt nicht wenn Erstfenster mit CLS geöffnet wird.;"+\
"Ideal für Bildschirmschoner ist Stil 240.;"+\
"Der Stil 512 ist dann zu verwenden, wenn ein Programm auf dem Hauptfenster Dialogelemente anlegt.;"+\
"Die Stile 256 und 128 sind nicht mit dem neuen Stil 512 zusammen zu verwenden.;"+\
"Dialogfenster-Stil 512 lässt Dialogelemente auf dem Hauptfenster gem. Standard reagieren, ...;"+\
"ad 512: - mit TAB kann zwischen den Dialogelementen umgeschaltet werden, ...;"+\
"ad 512: - Buttons reagieren nur beim Loslassen des Knopfes, ...;"+\
"ad 512: - Hauptfenster reagiert nicht selbst auf Schließen, sondern es wird %Key=2 gesetzt."

REPEAT

    AppendMenuBar 100,substr$(ws$,mb&+2,";")
    locate 3,1

    whileloop 24:i&=&Loop:print "  ";

        case (i& mod 2) and testbit(fs&,&Loop\2-1):color 15,1
        print " ";substr$(ws$,i&,",");

        if i& mod 2: print "    ";:color 0,15

            else:print:print

        endif

        endwhile:print
        huh:
        Print "   ====   Stil: ";right$("    "+str$(fs&),4);
        print "     Abfrage:              Bsp.: 123, %10, $1F, ";
        color 0,14:print "m > Maus":color 0,15

        ifnot mausabfr&

            locate %csrlin-1,35:input tmp$:case tmp$>"":fs&=val(tmp$)

            if lower$(left$(trim$(tmp$),1))="t"

                TESTWINDOW()

            endif

            if lower$(left$(trim$(tmp$),1))="m":mausabfr&=1

                usepen 0,2,$FFFFFF:usebrush 0,0:rectangle 257,344-370,374
                usepen 0,2,255:rectangle 2,23 - 100,333
                : goto "skip":endif

                if (fs&>=2048) or (fs&<-1):locate %csrlin-1,1:beep:goto "huh":endif

                    case fs&=-1:end

                endif

                skip:
                print "\n   ";right$("    "+str$(fs&),4);"   =   ";
                :Whileloop 10,0,-1:print testbit(fs&,&Loop);"  ";:endwhile:print

                if mausabfr&

                    waitinput

                    if (%mousekey=1) AND mouse(0,24-100,333)

                        bit&=int((%mousey-23)/26):case bit&=0:fs&=0
                        'locate 1,1:print bit&-1;"     ";

                        if testbit(fs&,bit&-1)=0

                            fs&=fs& | (2^(bit&-1))

                        else

                            fs&=(fs&) & (2^31-1-2^(bit&-1))

                        endif

                    else

                        mausabfr&=0:sound 100,30
                        cls:usepen 0,2,255:rectangle 257,344-370,374

                    endif

                endif

                RemoveMenu 100:inc mb&:case mb&>9:mb&=0

            UNTIL the_cows_come_home&

            Proc TestWindow

                var Thdl&=@Create("Window",%HWnd,"SO SIEHT DAS LEIDER NOCH NICHT AUS!",100,100,300,200)
                SetStyle Thdl&,1,GetStyle(Thdl&) | FS&
                waitinput 2000

                if destroywindow(Thdl&)<>1:cls:print "\n\n\n      SORRY, DA LIEF JETZT WAS SCHIEF!"

                    sound 2000,200:waitinput:end:endif

                EndProc

                PROGEND
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
24.05.2021  
 




Michael
W.
Ich weiß nicht, was da nicht stimmen sollte.

Vor UNTIL fehlt ein Doppelpunkt.

Sonst sieht das gut aus.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
07.06.2021  
 




p.specht

Danke für den Hinweis, Michael - oben korrigiert.
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
07.06.2021  
 



Zum Experiment


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.372 Betrachtungen

Unbenanntvor 0 min.
Axel Berse12.09.2023
E.T.25.06.2023
ecki13.12.2022
Ernst21.07.2021
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

p.specht (2x)
Michael W. (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