Vielleicht hast du ja an deinen Farboptionen rumgespielt
Wäre mal interessant, was du da verstellt hast, denn BGR-Mode ist es nicht - dann müßte es blau sein. ![]()
Beiträge von BugFix
-
-
Setze am Skriptbeginn
[autoit]opt("wintitlematchmode",2)
[/autoit]Direkt vor dem problematischen Fenster:
[autoit]opt("wintitlematchmode",4) ; Opt wechseln
[/autoit]
WinwaitActive("[REGEXPTITLE:(?i)*- Draft*]")
opt("wintitlematchmode",2) ; Opt zurück wechseln -
1. Geht nicht, gibts nicht.
2. Wo ist dein Code, an dem wir das nachvollziehen können?Diese Befehle arbeiten 100% mit Progress - aber ich vermute mal (mangels Code), dass du gar kein Progresscontrol erstellst, sondern ProgressOn verwendest. Da kannst du allerdings nichts einfärben.
-
Die Hilfe hilft:
ZitatGUICtrlSetColor ( controlID, textcolor)
...Progress controls can currently be colored.
Checkbox, Radio or Progress controls cannot be painted if the "Windows XP style" is used.GUICtrlSetBkColor ( controlID, backgroundcolor )
...Progress and Slider controls can currently be colored.
Progress controls cannot be painted if the "Windows XP style" is used. -
Ich hab gerade mal probiert. Umbenennen geht doch.
[autoit]
Einfach mitGUICtrlSetData($tab1, 'Tab_1')
[/autoit] -
Versuch mal:
[autoit]#Include <WinAPI.au3>
[/autoit]
_WinAPI_InvalidateRect($hWnd) -
Na dann steck die Werte doch in ein Array:
[autoit]$date = _GetDate(2009, 5, 13)
[/autoit][autoit][/autoit][autoit]
ConsoleWrite('Datum: ' & $date[0] & @CRLF & 'Wochentag: ' & $date[1] & @CRLF)#include-once
[/autoit]
#include <Date.au3>
Func _GetDate($Year,$Mon,$Day)
Local $aRet[2] = [$Day & "." & $Mon & "." & $Year]
Switch _DateToDayOfWeekISO(@YEAR, @MON, @MDAY)
Case 0
$aRet[1] = "Montag"
Case 1
$aRet[1] = "Dienstag"
Case 2
$aRet[1] = "Mittwoch"
Case 3
$aRet[1] = "Donnerstag"
Case 4
$aRet[1] = "Freitag"
Case 5
$aRet[1] = "Samstag"
Case 6
$aRet[1] = "Sonntag"
EndSwitch
Return $aRet
EndFunc -
Für diese Funktion kannst du keinen Fortschritt anzeigen.
[autoit]
Intern wird im Wesentlichen das Array mit einem einzigen Befehl erstellt:$aArray = StringSplit(StringStripCR($aFile), @LF) ; bzw. @CR
[/autoit] -
Notepad ist ein Programm, mit FileOpen verschaffst du dir nur eine Referenz auf die Datei. Also ist doch deine Bedingung erfüllt.
-
Ähhh...
[autoit]FileReadLine()
[/autoit]Meinst du das? - Muß aber vorher geöffnet werden mit FileOpen.
-
Finde ich ja krass, 2-mal das selbe zu fragen.

@oliverh: Ich hatte den betreffenden Thread nicht gelesen und hatte trotzdem exakt dieselbe Lösungsvariante. Entweder sind wir 100% seelenverwandt oder es ist einfach die optimale Lösung.

-
bugfix kann ich diese GUICtrlCreateSlider nicht im tabfenster einbauen
Schau mein 2. Bsp. hier an.
-
AutoBert, da ist noch ein Komma zuviel:
[autoit]$var = RegRead("\\" & GUICtrlRead($cnameinput) & "\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\winlogon", "Defaultusername")
[/autoit] -
kann eigentlich die Funktion StringinStr mit Platzhaltern umgehen ?
Nein, für eine variable Überprüfung mußt du StringRegExp einsetzen (oder umständlich mit ODER-Verknüpfungen arbeiten). -
Ist es nicht traurig, da kommt jemand neu zu uns ohne die Forenregeln zu lesen und hat nur Interesse an Bots.
Schlechter Anfang.[Topic Closed]
-
Schau dir mal die Funktionen in der <GuiTreeView.au3> an. Das sollte deine Fragen klären.
-
So,
[autoit]
ich habe nun mal Windows-Msg verwendet. Das läuft etwas flüssiger.#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]
#include <StructureConstants.au3>
#include <WindowsConstants.au3>
Global $aButton[12][2] ; zweite Dim. für y-Wert$gui = GUICreate('Test', 600, 400)
[/autoit][autoit][/autoit][autoit]
$tab = GUICtrlCreateTab(10, 10, 580, 380)
$tab0 = GUICtrlCreateTabItem("tab0")
$y = 45
For $i = 0 To 11
$aButton[$i][0] = GUICtrlCreateButton('B ' & $i+1, 20, $y, 60, 20)
$aButton[$i][1] = $y
$y += 40
Next
$slider = GUICtrlCreateSlider(560, 40, 20, 340, BitOR(0x0001,0x0002))
GUICtrlSetLimit(-1, 120, 0)
; verfügbarer Bereich auf Tab: 340
; Bereich für alle Button wäre: 12x Button-Höhe + 11x Zwischenraum = 240+220 = 460
; Differenz ist Sliderbereich: 120
$tab1 = GUICtrlCreateTabItem("tab1")
GUICtrlCreateTabItem("")GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')
[/autoit][autoit][/autoit][autoit]GUISetState()
[/autoit][autoit][/autoit][autoit]
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
EndSwitch
WEndFunc _moveButton()
[/autoit][autoit][/autoit][autoit]
Local $moveDiff = GUICtrlRead($slider), $posCtrl, $y
GUICtrlSetState($gui, @SW_LOCK)
For $i = 0 To UBound($aButton) -1
$posCtrl = ControlGetPos($gui, '', $aButton[$i][0])
$y = $aButton[$i][1] - GUICtrlRead($slider)
ControlMove($gui, '', $aButton[$i][0], $posCtrl[0], $y)
If ($y < 45) Or ($y > 365) Then
GUICtrlSetState($aButton[$i][0], $GUI_HIDE)
Else
GUICtrlSetState($aButton[$i][0], $GUI_SHOW)
EndIf
Next
GUICtrlSetState($gui, @SW_UNLOCK)
EndFuncFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit]
Local $hWndFrom, $iCode, $tNMHDR, $hWndSlider
$hWndSlider = $slider
If Not IsHWnd($hWndSlider) Then $hWndSlider = GUICtrlGetHandle($slider)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iCode = DllStructGetData($tNMHDR, "Code")
If $hWndFrom = $hWndSlider And ($iCode = -12 Or $iCode = -16) Then _moveButton()
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY -
allerdings musst du beachten, dass nicht jeder anfänger gleich mit 2D Arrays
arbeiten will, geschweigedenn diese versteht.
Nun ja, das sehe ich nicht unbedingt als Widerspruch. Zumal ich eigentlich bemüht bin, die wichtigen Passagen in den Bsp.-Skripts zu kommentieren. Und zudem besteht doch die Hoffnung, dass der User die präsentierte Lösung nachgestaltet um für sich dauerhaften Nutzen zu ziehen.
Andererseits existiert mein Array-Tutorial. Wer es liest und noch Probleme hat, kann sich bei mir melden - darauf weise ich ausdrücklich im Tut hin. Aus den Fragen wollte ich dann eine FAQ erstellen um noch bessere Hilfe geben zu könne. Das Tut ist seit ca. 1,5 Jahren online. Bisher gestellte Fragen: 0!
Schlußfolgerung: Jeder der es liest, versteht es.
-
Ich glaube, ich weiß was du willst.
[autoit]
Auf einem Tab mehr Elemente untereinander anzeigen als draufpassen. Das geht schon. Dazu mußt du dann ALLE Controls auf dem Tab verschieben. Die "Nicht gültigen" dann immer ausblenden. Hab mal eine grobe Musterlösung erstellt. Geht eleganter mit Msg-Codes, kannst du dann ja anpassen.#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]
Global $aButton[12][2] ; zweite Dim. für y-Wert$gui = GUICreate('Test', 600, 400)
[/autoit][autoit][/autoit][autoit]
$slider = GUICtrlCreateSlider(540, 20, 20, 380, BitOR(0x0001,0x0002))
GUICtrlSetLimit(-1, 120, 0)
; verfügbarer Bereich auf Tab: 340
; Bereich für alle Button wäre: 12x Button-Höhe + 11x Zwischenraum = 240+220 = 460
; Differenz ist Sliderbereich: 120
$tab = GUICtrlCreateTab(10, 10, 500, 380)
$tab0 = GUICtrlCreateTabItem("tab0")
$y = 45
For $i = 0 To 11
$aButton[$i][0] = GUICtrlCreateButton('B ' & $i+1, 20, $y, 60, 20)
$aButton[$i][1] = $y
$y += 40
Next
$tab1 = GUICtrlCreateTabItem("tab1")
GUICtrlCreateTabItem("")GUISetState()
[/autoit][autoit][/autoit][autoit]
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $slider
_moveButton()
EndSwitch
WEndFunc _moveButton()
[/autoit]
Local $posCtrl, $y
For $i = 0 To UBound($aButton) -1
$posCtrl = ControlGetPos($gui, '', $aButton[$i][0])
$y = $aButton[$i][1] - GUICtrlRead($slider)
ControlMove($gui, '', $aButton[$i][0], $posCtrl[0], $y)
If ($y < 45) Or ($y > 360) Then
GUICtrlSetState($aButton[$i][0], $GUI_HIDE)
Else
GUICtrlSetState($aButton[$i][0], $GUI_SHOW)
EndIf
Next
EndFunc -
ich möchte ein scrollbalken in ein tabfenster einbauen mit so ein grösse wie unten
Wo, bitteschön, willst du denn scrollen? Dein Tab wird in voller Größe abgebildet, da is nix zum Scrollen.
Du könntest z.B. ein Edit einbauen - in dem kannst du dann scrollen.