IDs in einem globalen Array speichern.
Beiträge von Oscar
-
-
Ich bin mir nicht sicher, ob ich Dich richtig verstanden habe (bei Deinen Texten verstehe ich oftmals gar nichts).
[autoit]
Aber aus Deinem Script entnehme ich, dass Du den Download mit einer Variablen gestalten willst. Dann aber nicht GuiCtrlRead benutzen, sondern einfach die Variable und den String mit "&" zusammenpacken.
Außerdem solltest Du schon auf das Ende des Downloads warten (letzter Parameter = 0) und Du musst die Funktion vor dem erstellen des Icons aufrufen.
[/autoit][autoit][/autoit][autoit]
$url ="http://www.boltwared.com"_start()
[/autoit][autoit][/autoit][autoit]
$icon = GUICtrlCreateIcon(@ScriptDir & "\temp\favicon.ico", 0, 415, 12, 16, 16)Func _start()
[/autoit]
InetGet($url & "/favicon.ico", 'temp\favicon.ico', 1, 0)
EndFunc -
Das läßt sich, meiner Meinung nach, nicht im MessageLoop-Modus lösen.
Benutze den OnEventMode und weise allen Buttons ein und dieselbe Funktion zu. Innerhalb der Funktion kannst Du dann mit @GUI_CtrlId den angeklickten Button ermitteln. -
Mit INetGet downloaden und dann von der Datei aus anzeigen lassen.
-
Nein, WinSetOnTop setzt das Fenster solange in den Vordergrund bis Du das wieder rückgängig machst.
$WS_EX_TOPMOST ist lediglich dazu da, dass man das Fenster gleich beim erstellen immer in den Vordergrund packen kann. -
Du musst das Kontextmenü für das gesamte Treeview erstellen.
Beim Aufruf einer Funktion kannst Du dann den markierten Treeview-Eintrag einlesen. -
Der Fehler liegt darin, dass Du nicht allen $Button-Variablen Werte zuweist, sondern (in dem Beispiel) nur $Button2 und $Button3. Alle anderen $Button-Variablen besitzen einen Leerstring (Vorgabe) und somit trifft bei der Switch-Anweisung gleich das erste Case zu (GUIGetMsg liefert einen Leerstring, weil bisher kein Ereignis eingetreten ist). Das Return sorgt dann gleich für eine Beendigung der Funktion.
Das ist übrigens noch ein Fehler in Deinem Script. Alle Anweisungen nach Return werden nicht mehr ausgeführt, weil man mit Return bereits die Funktion verläßt.Edit: Mist, schon wieder zu langsam.

-
Nee, ist doch ok.
Du hast ja recht. Er hat was anderes geschrieben, als er es dann im Script programmiert hat. Jetzt hat er halt beide Lösungen.
-
Beispiel im OnEventMode:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ListViewConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>Opt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate('test', 640, 480, -1, -1, Default, $WS_EX_ACCEPTFILES) ; <- $WS_EX_ACCEPTFILES
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
GUISetOnEvent($GUI_EVENT_DROPPED, '_DragEvent') ; <- Funktion, die aufgerufen wird$hListview = GUICtrlCreateListView('Filename', 10, 10, 620, 400)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; <- Status für das GUI-Element setzen
GUICtrlSendMsg($hListview, $LVM_SETCOLUMNWIDTH, 0, 600)$hStatus1 = GUICtrlCreateLabel(' 0 Files', -2, 462, 124, 18, Default, $WS_EX_CLIENTEDGE)
[/autoit] [autoit][/autoit] [autoit]
$hStatus2 = GUICtrlCreateLabel('', 120, 462, 544, 18, Default, $WS_EX_CLIENTEDGE)
Global $iFiles = 0
GUISetState()
WinSetOnTop($hGui, '', 1)While True
[/autoit] [autoit][/autoit] [autoit]
Sleep(10)
WEndFunc _End()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _ListviewEvent()
[/autoit] [autoit][/autoit] [autoit]
Local $iSelect = ControlListView($hGui, '', $hListview, 'GetSelected', 0)
GUICtrlSetData($hStatus2, ' ' & ControlListView($hGui, '', $hListview, 'GetText', $iSelect, 0))
EndFuncFunc _DragEvent()
[/autoit]
GUICtrlCreateListViewItem(@GUI_DRAGFILE, $hListview)
GUICtrlSetOnEvent(-1, '_ListviewEvent')
$iFiles += 1
GUICtrlSetData($hStatus1, StringFormat(' %3i File(s)', $iFiles))
EndFunc -
Schnuffel, ich denke, er wollte das so, weil das in seinem Script so vorgegeben war.

-
Meinst Du so:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <String.au3>
#include <array.au3>Dim $array[18][24]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$zahlencode = FileRead('zahlen.txt'); Zahlen von oben mit "Enter"
$zahlencode_ol = StringReplace($zahlencode, @CRLF, "") ; Enter entfernen
$zahlencode_so = StringSplit($zahlencode_ol, "", 2) ; <-- ",2" damit $zahlencode_so[0] die erste Zahl ist und nicht die Anzahl der ElementeFor $i = 0 To 17
[/autoit] [autoit][/autoit] [autoit]
For $k = 0 To 23
If $zahlencode_so[($i * 24) + $k] = 9 Then
$array[$i][$k] = 9
EndIf
Next
Next_ArrayDisplay($array)
[/autoit] -
Dazu musst Du Dein Script genau analysieren. Zu welchem Zeitpunkt wieviel Prozent von dem Script abgearbeitet ist und an der Stelle fügst Du dann...
[autoit]GuiCtrlSetData($Progress, x) ; x steht für einen Prozentwert
[/autoit]
...in das Script ein. -
Meinst Du mit "lade balken" eine Progressbar?
Dann so:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>$Form1 = GUICreate("TransGui", 270, 120)
[/autoit] [autoit][/autoit] [autoit]
$Slider1 = GUICtrlCreateSlider(10, 10, 250, 45, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
GUICtrlSetLimit(-1, 100, 0)
$Progress = GUICtrlCreateProgress(10, 60, 250, 25)
GUISetState(@SW_SHOW)While 1
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Slider1
$Read = GUICtrlRead($Slider1) ; Ließt den aktuellen wert des Sliders aus.
GUICtrlSetData($Progress, $Read)
EndSwitch
WEndEdit: Irgendwas stimmt hier mit dem Thread nicht. Der ganze Aufbau ist "zerstört".
@FunH@cker: kannst Du mal die Spoiler aus Deiner Sig entfernen. Ich habe den Verdacht, dass das damit zusammenhängt. -
Und hier mal ein Beispiel (im OnEvent-Modus):
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
Opt('GUIOnEventMode', 1)
GUICreate('test', 500, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
Global $ahCheck[7]
For $i = 0 To 6
$ahCheck[$i] = GUICtrlCreateCheckbox($i + 1, 20 + $i * 70, 20, 60, 25)
GUICtrlSetOnEvent(-1, '_Checkbox')
Next
GUISetState()While True
[/autoit] [autoit][/autoit] [autoit]
Sleep(10)
WEndFunc _End()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _Checkbox()
[/autoit]
If BitAND(GUICtrlRead($ahCheck[0]), $GUI_CHECKED) Then
For $i = 1 To 6
GUICtrlSetState($ahCheck[$i], $GUI_DISABLE)
Next
Else
For $i = 1 To 6
GUICtrlSetState($ahCheck[$i], $GUI_ENABLE)
Next
EndIf
EndFuncEdit: Ohjee, bin ich heute wieder langsam...

-
Naja, das ist doch dann kein Problem:
[autoit]
[/autoit]
#include <Array.au3>
$hFile = FileOpen('test.html', 128)
$sFile = FileRead($hFile)
FileClose($hFile)
$array = StringSplit($sFile, @CRLF, 1)
_ArrayDisplay($array) -
Ich meinte zwar eigentlich als Datei (zum testen), aber egal, habe ich mit meinen Editor umgewandelt.
Du musst die Datei mit FileOpen öffnen und als Parameter "128" angeben (siehe Hilfe).
[autoit]
[/autoit]
$hFile = FileOpen('test.html', 128)
$sFile = FileRead($hFile)
FileClose($hFile)
MsgBox(0,0,$sFile) -
Kannst Du mal so eine HTML-Datei posten?
-
autoBert: Ein paar kleine Änderungen würde ich auch noch vorschlagen:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>$Form1 = GUICreate("TransGui", 270, 65)
[/autoit] [autoit][/autoit] [autoit]
$Slider1 = GUICtrlCreateSlider(10, 10, 250, 45, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
GUICtrlSetLimit(-1, 255, 80) ; Limit verändert, damit man die Chance hat den Slider "anzufassen"
GUISetState(@SW_SHOW)
WinSetTrans($Form1, "", 80) ; Anfangswert setzenWhile 1
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Slider1
$Read = GUICtrlRead($Slider1) ; Ließt den aktuellen wert des Sliders aus.
WinSetTrans($Form1, "", $Read) ; Setzt die Transparenz eines Fensters
EndSwitch
WEnd
- Anfangswert einfach vor der Schleife setzen.
- Abfrage des Sliders in eine Case-Anweisung
- $TBS_TOOLTIPS damit man den eingestellten Wert sehen kann
- WinSetTrans funktioniert auch mit dem Handle des Fensters -
Illegaler LogIn-Thread! Forenregeln lesen!
[Thread closed]
-
Das Pattern:
.* = beliebiges Zeichen, beliebig oft
\\ = Backslash wird gefunden
die Klammern um diese beiden ist wichtig für die Back-Referenz beim Replace
das Gute an dem Pattern ist, dass StringReg so "gefrässig" ist und sich mit .* alles schnappt, bis zum letzten Backslash (ist hier so gewollt).
dem .* außerhalb der Klammern bleibt dann nur noch der Dateiname inkl. EndungDas "$1" im Replace ist ein "Platzhalter" für den ersten Klammerausdruck im Pattern.
Der komplette String wird also durch den Ausdruck in den Klammern ersetzt.