| |
|
|
Uwe ''Pascal'' Niemeier | Hi gens!
encore un aktuelles Snippet: un Dialog zur Farbauswahl. KompilierenMarqueSéparationwindow 400,400
$H Windows.ph
usermessages 16
var Ini$="X:Test.ini"************************* Pfad bitte anpassen!
proc ChooseColor2---------------------------------------ChooseColor2
parameters rgb#
declare a#:dim a#,36--CHOOSECOLOR
var Color&=long(rgb#,64)
long a#,0=36,%hwnd,0,Color&,rgb#,11
Color&=if(external("comdlg32","ChooseColorA",a#),long(a#,12),-1)
case Color&>=0:long rgb#,64=Color&
dispose a#
return Color&
endproc-------------------------------------------------------------
declare b#:dim b#,64+4--Array für 16 benutzerdefinierte Farben + gewählte Farbe
var Result&=~GetPrivateProfileStruct("Config","Color",b#,68,addr(Ini$))
ifnot Result&----------Vorgaben, falls Ini noch nicht vorhanden
long b#,0=$FFDDDD,$DDFFDD,$DDDDFF,$FFFFDD,$FFDDFF,$DDFFFF--Definierte Farben
long b#,64=$F0F0F0--Aktuelle Farbe
endif
cls long(b#,64)--zuletzt gewählte Farbe, gelesen aus Ini
while 1
waitinput
case %umessage=16:break
Result&=ChooseColor2(b#)
case Result&>=0:cls Result&
endwhile
~WritePrivateProfileStruct("Config","Color",b#,68,addr(Ini$))
Im opposition zum profanen ChooseColor wird ici une Bereichsvariable transfert, dans qui comme LongInts 16 Farben pour qui "Benutzerdefinierte Farben"-Felder + qui vorgewählte la couleur abgelegt sommes. chez Bestätigen wird cet Array aktualisiert; qui gewählte la couleur wird zusätzlich direct retour. chez finissons wird cela Array avec allen Farben per API dans un Ini geschrieben, avec cela es beim prochain Start wieder ausgelesen volonté kann; alle Farben stehen ensuite wieder zur Disposition
PS: si on a# et b# trop Beginn des Programmes global "zur allgemeinen Verwendung" deklariert/dimensioniert, wird cela Ganze et avec ca einfacher
Heureux Fest euch allen! Pascal |
|
|
| |
|
|
|
Frank Abbing | Hi,
je erhalte malheureusement seulement un leeres la fenêtre. |
|
|
| |
|
|
|
Frank Abbing | Ah, Extraklick nötig... ensuite gehts. |
|
|
| |
|
|