| |
|
|
|
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:
KompilierenMarkierenSeparierenDef 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] |
|
|
| |
|
|