Deutsch
Stammtisch & Café

ChooseColor.

 


Beschreibung:

ChooseColor zeigt eine Farbauswahldialog an und liefert die ausgewählte Farbe zurück.




Deklaration:

Def ChooseColor(1) !COMDLG32,ChooseColorA




Parameter:

1.Parameter: Struktur oder 32 Byte Bereichsvariable =>
Byte 0-3 = Länge des Bereiches in Bytes als LongInt.
Byte 4-7 = Das Handle des Fensters, auf dem der Dialog erzeugt werden soll.
Byte 8-11 = Wenn als Flag $40 gesetzt wurde, steht hier das Handle des Speicherobjektes, das die neue Dialogmaske enthält. Wenn als Flag $20 gesetzt wurde, steht hier das Handle des Moduls mit der Dialogmaske mit dem Dialogtitel, der bei Byte 28 festgelegt wird.
Byte 12-15 = Als Input ein Farbwert, der standardmäßig ausgewählt wird. Kehrt die Funktion zurück, steht hier der Farbwert der gewählten Farbe.
Byte 16-19 = Zeiger auf eine 64 Byte große Bereichsvariable, die als LongIntwerte die Farbwerte der Farbauswahlboxen enthält.
Byte 20-23 = Flags zur Initialisierung des Dialoges =>
$100 = Anwender kann alle Farben wählen
$10 = Nachrichten an den Dialog können mit der Prozedur an Byte 28 abgefangen werden.
$20 = Neue Dialogbox Maske wird benutzt und befindet sich in Modul an Byte 8. Der Name steht an Byte 28.
$40 = Benutzte Maske für den Dialog mit dem Handle in Byte 8.
$2 = Vollauswahl aller Farben anzeigen.
$4 = Deaktiviert den Button zum Öffnen der Dialogbox-Erweiterung.
$1 = Vorgabe einer Standard-Farbe.
$8 = Hilfe-Button anzeigen.
$80 = Nur Grundfarben auswählbar.



Rückgabewert:

Wenn User OK geklickt hat, ungleich 0. Sonst 0.


Beispiele:

KompilierenMarkierenSeparieren
Def ChooseColor(1) !"COMDLG32","ChooseColorA"
Declare ChooseColor#,CustomColors#,Colors&[16],Button&,OK&

Proc ColorDialog

    Parameters color&,options&,inifile$,Result&,Name$
    Declare i%
    Dim ChooseColor#,36
    Dim CustomColors#,64
    SetTrueColor 1

    While lt(i%,16)

        Long CustomColors#,mul(i%,4)= Colors&[i%]
        Inc i%

    Wend

    Long ChooseColor#,0=36
    Long ChooseColor#,4=GetActiveWindow()
    Long ChooseColor#,8=0
    Long ChooseColor#,12=RGB(192,192,192)
    Long ChooseColor#,16=CustomColors#
    Long ChooseColor#,20=3 CC_RGBINIT(1) + CC_FULLOPEN(2)
    Long ChooseColor#,24=0
    Long ChooseColor#,28=0
    Let Name$="Fensterfarbe wählen!"
    Long ChooseColor#,32=0
    LET OK&=@ChooseColor(ChooseColor#)

    If OK&<>0

        Let i%=0

        While lt(i%,16)

            Let Colors&[i%]=long(CustomColors#,mul(i%,4))
            Inc i%

        Wend

    EndIf

    Let Result&=@LONG(ChooseColor#,12)
    Dispose ChooseColor#
    Dispose CustomColors#
    Return Result&

EndProc

Windowstyle 31
WindowTitle "Farbe auswählen"
Window 0,0-640,440
Settruecolor 1
Let Button&=@Createbutton(%HWND,"Farbe wählen",20,300,200,30)

While 0=0

    WaitInput

    IF @Getfocus(Button&)

        ColorDialog
        Case OK&<>0 : CLS @&(0)

    endif

Wend


[keywords:aa38da9c3b]
Farbe Dialog Farben auswählen bestimmen Farbauswahl Farbauswahldialog
[/keywords:aa38da9c3b]
 
07.03.2005  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.808 Betrachtungen

Unbenanntvor 0 min.
RudiB.04.11.2021

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