| |
|
|
Uwe ''Pascal'' Niemeier | Hi Personas!
Noch una aktuelles Snippet: Ein Diálogo a Farbauswahl. KompilierenMarcaSeparaciónwindow 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 Gegensatz para profanen ChooseColor se hier una Bereichsvariable transferencia, en el como LongInts 16 Farben para el "Benutzerdefinierte Farben"-Felder + el vorgewählte Farbe abgelegt son. En Bestätigen se dieses Array aktualisiert; el gewählte Farbe se zusätzlich direkt zurückgegeben. En Beenden se el Array con allen Farben por API en un Ini geschrieben, así lo beim nächsten Start otra vez ausgelesen voluntad kann; todos Farben posición entonces otra vez disponible
PS: Wenn uno a# y b# a Beginn des Programmes global "zur allgemeinen Verwendung" deklariert/dimensioniert, se el Ganze todavía algo einfacher
Felices Fiestas euch allen! Pascal |
|
|
| |
|
|
|
Frank Abbing | Hi,
Yo erhalte desafortunadamente sólo una leeres Ventana. |
|
|
| |
|
|
|
Frank Abbing | Ah, Extraklick nötig... entonces gehts. |
|
|
| |
|
|