Progresse in Farbe und keine Balken

  • Hallo. Ich habe eine Gui mit einer Listbox. In der werden beim Start automatisch verschiedene PID's mit mehrInfos vom selben Prozess vorgelegt. So, beim Start werden die automtisch schon geladen, das heißt, sie stehen alle in der Liste drin. In der Liste selbst it dann noch nichts markiert. Aber ich habe auch einen Update Button eingefügt, der wieder die PID's von den Prozesen ausliest (falls es noch mehr Prozesse gibt) . Aber nach dem Druck auf den Update-Knopf wird immer ein Item in der Listbox markiert. Das ist lästig denn es soll nicht sien. Also wie kann ich das anders machen? Gibt es eine Funktion die die Markierung aufhebt?

    Danke im vorraus.

    Edit: Wenn der Update-Button betätigt wird, wird jetzt zuerst die Liste geleert. Jetzt habe ich das Problem nicht mehr... Aber ich komme bestimmt noch mit etwas nach :D

    So, dann das nächste.
    1. Wie gebe ich Progressen eine Farbe, sprich, diesem Balken, der sich füllt und entfüllt, eine z.B. rote Farbe. Mit GuiCtrlSetColor und BkColor geht es nicht.
    2. Wie mache ich es, dass ein Progress ein durchgehender Strich ist. In Windows ist es standart in Balken aufgeteilt.

    Danke

    Einmal editiert, zuletzt von NoName (10. Juni 2008 um 20:00)

  • Hi,

    keine Ahnung ob es dir hilft, aber ich mache es mit meinen Staturbars so:

    1.
    GUICtrlSetColor($ProgressBar1,32250); setzt die Farbe für den ersten "Laufbalken"
    Hierbei ist $ProgressBar1 mein erster Laufbalken

    2.
    _GUICtrlStatusBar_SetMinHeight ($StatusBar1, 20); Setzt die Höhe der Statusbar

    Damit könntest vielleicht einen "dünnen" Strich machen

    Schau mal in der Hilfe unter:
    GUICtrlCreateProgress
    Da steht was über die Eigenschaften drin

    Gruß

  • Durchgängige ProgressBar:

    Zitat

    $PBS_SMOOTH 0x01 Displays progress status in a smooth scrolling bar instead of the default segmented bar.


    Für farbe musst du den XP-Style abstellen, sonst wird der Style als Farbe verwendet.

    Sonst gibt es noch: https://autoit.de/index.php?page…39697#post39697
    und https://autoit.de/index.php?page=Thread&threadID=6181
    als letzte Möglichkeit gibt es noch die Variante, mit GDIPlus alles selber zu zeichnen ( irgendwo im engl. Forum. ) Die Lösung dort muss man aber noch praxistauglich machen.

  • Ok, danke, das von iwu74 hat mir nicht weitergeholfen. Hatte irgendwie keinen Effekt bei mir^^
    Genauso wenig das Einfügen als Style von smooth, was ich auch schon vorher probiert hatte. Aber danke für die Links progandy, werde mich morgen mal dran machen, muss noch lernen :D

  • also ich steige bei keinem der Beispiele durch wie könnte ich das auf folgenden progresset anwenden ?

    Spoiler anzeigen
    [autoit]

    ProgressOn("Found KalOnline Updates", "KalOnline Update in Progress", "Update",-1,-1,18)
    $filename0 = FileOpen("UpdInf.txt",0)
    $filename3 = FileOpen("UpdInf2.txt",0)
    ProgressSet(0,"0%")
    Local $der
    $der = FileReadLine("file.txt", 1)
    for $i = 1 to $der
    $1 = FileReadLine($filename0,$i)
    $2 = FileReadLine($filename3,$i)
    Inetget($Ip&$1,@ScriptDir &$2)
    $prozent = $i/$der*100
    $prozent = StringSplit($prozent, ".")
    If IsArray($prozent) Then ProgressSet($prozent[1],$2,$prozent[1]&" %")
    Next
    Sleep(200)
    ProgressOff()

    [/autoit]
  • Ach, so !
    Du willst ein ProgressOn verändern. Da musst du selber eine GUI machen oder folgendes testen:

    Spoiler anzeigen
    [autoit]

    #include <Winapi.au3>
    #include <Constants.au3>
    $title = "ProgressWindow"
    $text = "Progress text"
    ProgressOn($title,$text)
    $ctrl = ControlGetHandle($title,$text,"msctls_progress321")
    $oldLong = _WinAPI_GetWindowLong($ctrl,$GWL_STYLE)
    _WinAPI_SetWindowLong($ctrl,$GWL_STYLE,BitOR($oldLong,0x01)) ;$PBS_SMOOTH = 0x01

    [/autoit]


    Vllt. funktionierts. Kanns nicht testen, da es bei mir NUR smooth gibt ;)