Mehrere Designs?

  • Guten Abend

    Nach all der Spammerei mal wieder ne richtige Frage :rolleyes:

    In ein Programm sollen mehrere Designs, die in den Einstellungen später auswählbar sein werden, möglich gemacht werden.
    Dazu habe ich mehrere Fragen:
    Ist es am Besten wenn die ganzen Farben in eine .ini ausgelagert werden?
    Wird das Script nicht extrem langsamer durch mehrere Designs?
    Ist es am Besten, man löst es mit "GuiCtrlSetColor"?

    Ich hoffe auf zahlreiche Antworten :)
    MfG
    Lukiono

    2 Mal editiert, zuletzt von lukiono (4. Juli 2010 um 12:46)

  • Wieso speicher die doch in deinem Programm direkt. Warte hier mal ein Beispiel (ich finde das ist eigentlich nicht schlecht oben rechts im Programm ein Updown zu machen um den Design zu wechseln!)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <UpdownConstants.au3>
    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Updown-Design", 225, 77, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Input1 = GUICtrlCreateInput("1", 1, 1, -1, -1, $ES_NUMBER)
    GUICtrlSetLimit(-1, 4, 1)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUICtrlCreateUpdown(-1, $UDS_HORZ)
    GUICtrlSetLimit(-1, 4, 1)
    GUICtrlSetOnEvent(-1, "_Change")
    GUISetBkColor(0x800000)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Change()
    $Read = GUICtrlRead($Input1)
    Switch $Read
    Case "1"
    GUISetBkColor(0x800000)
    Case "2"
    GUISetBkColor(0x008000)
    Case "3"
    GUISetBkColor(0x000080)
    Case "4"
    GUISetBkColor(0x808000)
    EndSwitch
    EndFunc ;==>_Change

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    GUIDelete()
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • Sry für DP aber:
    Welches Programm brauche ich da genau:
    Skin Builder?
    Skin Crafter?

    Und kostet es etwas?

  • Sry für DP aber:
    Welches Programm brauche ich da genau:
    Skin Builder?
    Skin Crafter?

    Und kostet es etwas?


    SkinCrafter. Die große Version ist kostenpflichtig, die Light Version nicht.

    SkinBuilder hatte ich bisher noch nicht an. Aber ich denke mal, dass das Programm einen Skin erstellt, der mit der SkinCrafterDll.dll eingebunden werden kann.

    Ich hab hier auch eine "Vollversion" gefunden, die mir mal irgendwer geschickt hat.. Werd die aber nicht posten - wir sind ja kein Warez-Forum.

  • Code
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.5.4 (beta)
    Author: myName

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------
    $hSkinDLL = DllOpen(@ScriptDir & "bin\des\SkinCrafterDll.dll")
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=C:\Users\lukiono\Desktop\skinner\icp 2.0\Form1.kxf
    $icp_form = GUICreate("Image Conversion Program ", 625, 457, 192, 124)
    _ApplySkin($hSkinDLL, $icp_form,@ScriptDir&"\bin\des\Zondar.skf")
    $allgemein = GUICtrlCreateMenu("Allgemein")
    $einstellungen = GUICtrlCreateMenu("Einstellungen", $allgemein)
    $designs = GUICtrlCreateMenuItem("Designs", $einstellungen)
    $sonstiges = GUICtrlCreateMenuItem("Sonstiges", $einstellungen)
    $update = GUICtrlCreateMenuItem("Updates suchen", $allgemein)
    $info = GUICtrlCreateMenu("Info", $allgemein)
    $uberprogramm = GUICtrlCreateMenuItem("Über das Programm", $info)
    $contact = GUICtrlCreateMenuItem("Kontakt", $info)
    $beenden = GUICtrlCreateMenuItem("Beenden", $allgemein)
    $endformate = GUICtrlCreateList("", 504, 56, 73, 214)
    $bilder = GUICtrlCreateList("", 288, 56, 185, 214)
    $Label1 = GUICtrlCreateLabel("Bilder", 360, 24, 39, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial Narrow")
    $Label2 = GUICtrlCreateLabel("Endformat", 504, 24, 64, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial Narrow")
    $vorschau = GUICtrlCreatePic("", 16, 32, 249, 241, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $status = GUICtrlCreateProgress(56, 288, 489, 25)
    $bilderladen = GUICtrlCreateButton("Bilder hinzufügen", 16, 392, 129, 33, $WS_GROUP)
    $umwandeln = GUICtrlCreateButton("Umwandeln starten", 168, 392, 129, 33, $WS_GROUP)
    $Button1 = GUICtrlCreateButton("Bilder hinzufügen", 320, 392, 129, 33, $WS_GROUP)
    $ziel = GUICtrlCreateButton("Zielort auswählen", 472, 392, 129, 33, $WS_GROUP)
    $zielort = GUICtrlCreateInput("", 56, 336, 497, 21)
    GUISetState()
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    _SkinCrafter_Shutdown($hSkinDLL) ; Muss gemacht werden, sonst kann es zum crash kommen!
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _SkinCrafter_Shutdown($hDLL)
    DllCall($hDLL, "int:cdecl", "DeInitDecoration")
    DllClose($hDLL)
    EndFunc ;==>_SkinCrafter_Shutdown

    [/autoit] [autoit][/autoit] [autoit]

    Func _ApplySkin($hDLL, $hWnd, $sSkin)
    Local Static $bFirst = True
    If $bFirst Then
    DllCall($hDLL, "int:cdecl", "DefineLanguage", "int", 0)
    DllCall($hDLL, "int:cdecl", "InitLicenKeys", "wstr", "SEuBo", "wstr", "AutoIt.de", "wstr", "SEuBo@autoit.de", "wstr", "NoNeedForAKey!")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If Not $bFirst Then DllCall($hDLL, "int:cdecl", "RemoveSkin")
    DllCall($hDLL, "int:cdecl", "InitDecoration", "int", 1)
    DllCall($hDLL, "int:cdecl", "LoadSkinFromFile", "wstr", $sSkin)
    DllCall($hDLL, "int:cdecl", "DecorateAs", "int", $hWnd, "int", 25)
    DllCall($hDLL, "int:cdecl", "ApplySkin")
    DllCall($hDLL, "int:cdecl", "UpdateWindow", "int", $hWnd)
    $bFirst = False
    EndFunc ;==>_ApplySkin

    [/autoit]

    Das Design wird irgendwie nicht geladen. Weiss da jemand Abhilfe?
    Namen der dll und des Designs stimmen alle. Auch die Pfade. Ich weiss nicht mehr weiter :(