Deutsch
Quelltexte/ Codesnippets

Farbpalette Farbwahldialog

 

Michael
Wodrich
Ich habe den Farbwahldialog um die Anzeige der zurückgegebenen Farbpalette erweitert.
Ist mir lange Zeit nicht aufgefallen, daß bis zu 16 Farben am Stück geliefert werden...
Der Farbauswahldialog (in der Profan-Hilfe beschrieben)
um die Anzeige der Farbpalette erweitert.
 $P*
 $I C:PROFANLIBBILDBUTTON.INC (Für Bildbuttons/Iconbuttons)
 $I C:PROFANLIBSKCONTROL.INC (Für SKCONTROL.DLL)
 $H C:ProfanIncludeStructs.ph
Def @ChooseColor(1) !"COMDLG32.DLL", "ChooseColorA"
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
DEF GETWINDOW(2) !"USER32","GetWindow"
Set("ErrorLevel",0)
Set("TrueColor",1)
Set("Decimals",0)

Proc HexStr

    Parameters d&
    Declare h$
    h$ = Hex$(d&)
    Return "$" + MkStr$("0",6-Len(h$)) + h$

EndProc

PROC ShowPalette

    Parameters ausgewaehlt&
    DECLARE DLG&, DIALOGENDE%
    DECLARE SKCONTROL&,STRING#,SKIMAGE#,SKIMAGE2#,SKIMAGE3#,FONT&
    DECLARE GW_CHILD&
    LET GW_CHILD& = 5
    LET SKCONTROL& = USEDLL("C:PROFANLIBSKCONTROL.DLL")
    SKCTRL_INITDLL()
    DIM STRING#,500
    DIM SKIMAGE#,500
    DIM SKIMAGE2#,500
    DIM SKIMAGE3#,500
    LET FONT& = @CREATE("FONT","MS SANS SERIF",13,0,0,0,0)
    DECLARE GROUPBOX1&, GROUPBOX2&, addi&, IconDatei$, ICONBUTTON1&
    DECLARE T1a&[8], T1b&[8], T2a&[7], T2b&[7],SKC&[16]
    addi& = 190
    DLG& = CREATE("DIALOG",%HWND,"Folgende Farben wurden gewählt",22,20,383,424)
    USEFONT "MS Sans Serif",13,0,0,0,0
    SETDIALOGFONT 1
    GROUPBOX1& = @CREATE("GROUPBOX",DLG&,"",0000,0000,0186,0330)

    WhileLoop 0, 7

        T1a&[&loop] = @CREATE("TEXT",DLG&,"Farbe "+Str$(&loop)+":",11,11+(&loop*40),50,20)

    EndWhile

    WhileLoop 0, 7

        string string#,0 = Str$(&loop)
        LET SKC&[&loop] = SKCTRL_CREATECOLORBUTTON(DLG&,string#,RGB(255,255,0),RGB(0,0,255),71,11+(&loop*40),29,30,%hInstance)
        SETFONT SKC&[&loop],FONT& : SKCTRL_SETCOLOR(SKC&[&loop],1,0) : SKCTRL_SETCOLOR(SKC&[&loop],2,UDC&[&loop])

    EndWhile

    WhileLoop 0, 7

        T1b&[&loop] = @CREATE("TEXT",DLG&,HexStr(UDC&[&loop]),111,21+(&loop*40),60,20)

    EndWhile

    GROUPBOX2& = @CREATE("GROUPBOX",DLG&,"",0000+addi&,0000,0186,0330)

    WhileLoop 0, 7

        T2a&[&loop] = @CREATE("TEXT",DLG&,"Farbe "+Str$(&loop+8)+":",11+addi&,11+(&loop*40),50,20)

    EndWhile

    WhileLoop 0, 7

        string string#,0 = Str$(&loop+8)
        LET SKC&[&loop+8] = SKCTRL_CREATECOLORBUTTON(DLG&,string#,RGB(255,255,0),RGB(0,0,255),71+addi&,11+(&loop*40),29,30,%hInstance)
        SETFONT SKC&[&loop+8],FONT& : SKCTRL_SETCOLOR(SKC&[&loop+8],1,0) : SKCTRL_SETCOLOR(SKC&[&loop+8],2,UDC&[&loop+8])

    EndWhile

    WhileLoop 0, 7

        T2b&[&loop] = @CREATE("TEXT",DLG&,HexStr(UDC&[&loop+8]),111+addi&,21+(&loop*40),60,20)

    EndWhile

    ausgewaehlt&
    T1a&[8] = @CREATE("TEXT",DLG&,"letzte Auswahl:",11,340,80,15)
    string string#,0 = ":-)"
    LET SKC&[16] = SKCTRL_CREATECOLORBUTTON(DLG&,string#,RGB(255,255,0),RGB(0,0,255),90,349,29,30,%hInstance)
    SETFONT SKC&[16],FONT& : SKCTRL_SETCOLOR(SKC&[16],1,0) : SKCTRL_SETCOLOR(SKC&[16],2,ausgewaehlt&)
    T1b&[8] = @CREATE("TEXT",DLG&,HexStr(ausgewaehlt&),11,360,60,20)
    IconDatei$ = @FileSearch$("mspaint.exe", @GetEnv$("PATH"))
    ICONBUTTON "0",IconDatei$,DLG&,0170,0349,0040,0040
    LET ICONBUTTON1& = @&(0)
    SETFOCUS(DLG&)
    REPAINT
    LET DIALOGENDE% = 0

    WHILENOT DIALOGENDE%

        WAITINPUT

        If @EQU(%KEY,2) Or GETFOCUS(ICONBUTTON1&)

            LET DIALOGENDE%= 1

        ENDIF

    ENDWHILE

    @DESTROYWINDOW(DLG&)
    DISPOSE STRING#
    DISPOSE SKIMAGE#
    DISPOSE SKIMAGE2#
    DISPOSE SKIMAGE3#
    SKCTRL_DEINITDLL()
    FREEDLL SKCONTROL&
    DELETEOBJECT FONT&

ENDPROC

Set("AutoPaint",2)
Fenster wird für UseFont benötigt
WindowTitle "Farbpalette"
WindowStyle 112
Window 0,0 - 0,0
-StructuresDefinition------------------------------------------------
Declare CHOOSECOLOR#
Struct TCHOOSECOLOR = ~CHOOSECOLOR
Dim CHOOSECOLOR#, TCHOOSECOLOR
-ConstantsDefinition-------------------------------------------------
Def &CC_ANYCOLOR $100
Def &CC_ENABLEHOOK $10
Def &CC_ENABLETEMPLATE $20
Def &CC_ENABLETEMPLATEHANDLE $40
Def &CC_FULLOPEN $2
Def &CC_PREVENTFULLOPEN $4
Def &CC_RGBINIT $1
Def &CC_SHOWHELP $8
Def &CC_SOLIDCOLOR $80
-VariablesDefinition-------------------------------------------------
Declare UDC&[15]
Declare Res$
-Main----------------------------------------------------------------
-Define UserColors-------------------------------------------------
UDC&[0] = @RGB(255, 127, 255)
UDC&[1] = @RGB(255, 127, 127)
UDC&[2] = @RGB(127, 127, 127)
-------------------------------------------------------------------

With CHOOSECOLOR#

    .lStructSize& = @SizeOf(CHOOSECOLOR#)
    .hwndOwner& = 0
    .hInstance& = 0
    .rgbResult& = @RGB(0, 255, 0)
    .lpCustColors& = @Addr(UDC&[0])
    .Flags& = &CC_FULLOPEN | &CC_ANYCOLOR | &CC_RGBINIT

EndWith

If @ChooseColor(CHOOSECOLOR#)

    Res$ = @Str$(CHOOSECOLOR#.rgbResult&) + "
    "
    Res$ = Res$ + "Rotanteil: " +
    @Str$(@GetRValue(CHOOSECOLOR#.rgbResult&)) + "
    "
    Res$ = Res$ + "Grünanteil: " +
    @Str$(@GetGValue(CHOOSECOLOR#.rgbResult&)) + "
    "
    Res$ = Res$ + "Blauanteil: " +
    @Str$(@GetBValue(CHOOSECOLOR#.rgbResult&))
    @MessageBox(Res$, "Gewählte Farbe", 64)
    ShowPalette CHOOSECOLOR#.rgbResult&

EndIf

Dispose CHOOSECOLOR#
-End-------------------------------------------------------------------
End

Schöne Grüße
Michael Wodrich

13 kB
Kurzbeschreibung: abgeknipst
Hochgeladen:16.06.2006
Ladeanzahl242
Herunterladen
 
Programmieren, das spannendste Detektivspiel der Welt.
16.06.2006  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.480 Betrachtungen

Unbenanntvor 0 min.
Jens-Arne Reumschüssel20.01.2024
RudiB.15.04.2022
Boroberto21.04.2016
Georg21.11.2015
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

Michael Wodrich (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