31. Prozess Balken
So nun wieder etwas für fortgeschrittene wir erstellen ein Prozess balken auch genannt Progressbar. Erstmal erstellen wir dafür eine Prozessbar indem wir:
Zitat
Gui, Add, Progress, x50 y50 w300 h20 cBlue vProgressbarname
Im Gui im Script einfügen. Mit den Koordinaten halt rumspielen oder den GuiCreator benutzen. Nun haben wir eine Progressbar doch die funktioniert nicht ohne eine Funktion die von vProgressbarname ausgespielt wird. Die Farbe der Progressbar ist Balu (cBlue = color Blue) es gibt fast alle Farben wie white, pink, yellow, black, grey könnt nehmen was ihr wollt ich nehme einfach mal Blau. So Nun können wir meinetwegen 2Buttons erstellen einmal + und einmal - mit der wir der Progressbar den Strich verlängern und verkürzen können.
Zitat
Gui, Add, Button, x50 y75 w150 h20 gProzessPlus, +
Gui, Add, Button, x200 y75 w150 h20 gProzessMinus, -
So nun haben wir zwei Buttons die aber ohne die Funktion auch nichts bringen diese fügen wir nun hinzu:
Zitat
ProzessPlus:
GuiControl,, Progressbarname , +10
return
ProzessMinus:
GuiControl,, Progressbarname , -10
return
Alles anzeigen
So nun ist es eigentlich feritg man kann auf Plus drücken und die Bar steigt um 10% oder auf Minus und sie sinkt um 10% nun machen wir aber einfach mal eine Progressbar die Automatisch steigt mit einem Hindernis wo sie wieder auf 1% gesetzt wird und Nachrichtenboxen.
Zitat
Gui, Add, Progress, w300 h20 cBlue vHierdername
sleep 500
GuiControl,, Hierdername, +10
sleep 500
GuiControl,, Hierdername, +10
sleep 500
GuiControl,, Hierdername, +10
sleep500
GuiControl,, Hierdername, +10
sleep 1000
msgbox,0,Fehler 404,Es ist ein Fehler aufgetreten
GuiControl,, Hierdername, 1
sleep 500
GuiControl,, Hierdername, +9
sleep 500
GuiControl,, Hierdername, +10
sleep 500
GuiControl,, Hierdername, +20
sleep 500
GuiControl,, Hierdername, +10
sleep 500
GuiControl,, Hierdername, +10
sleep 500
GuiControl,, Hierdername, +10
sleep 500
GuiControl,, Hierdername, +10
sleep 500
GuiControl,, Hierdername, +10
sleep 500
GuiControl,, Hierdername, +10
sleep 500
msgbox,0,Fertig, Prozess abgeschlossen...
return
Alles anzeigen
32. Datums/Uhrzeit
Nun erstellen wir eine Datums anzeige dafür ist wie bei fast allem Gui, Show vorrausgesetzt im Script oben wie es bei nem anderen Punkt steht. Nun denkt ihr sicher das es viel ist aber nein es ist ganz leicht nur eine Zeile:
Zitat
Gui, Add, DateTime, x400 y200 w100 h30 ,
Das wars eigentlich schon aber ihr sollt natürlich mehr wissen als nur ein Datum hinzuzufügen. Man kann es auch anders hinufügen per %A_DD%.%A_MM%.%A_YYYY% Dies bedeutet DD = Tag, MM= Monat und YYYY= Jahr die Punkte halt als Trennzeichen sonst wären alle Zahlen zusammen. Nun intigrieren wir das in verschiedene Boxen:
Zitat
Gui, Add, Edit, x657 y10 w78 h18 v1 ReadOnly, %A_DD%.%A_MM%.%A_YYYY%
Gui, Add, Edit, x657 y10 w78 h18 v1, %A_DD%.%A_MM%.%A_YYYY%
Gui, Add, Text, x657 y10 w78 h18, %A_DD%.%A_MM%.%A_YYYY%
Gui, Add, Listbox, x657 y10 w78 h18, %A_DD%.%A_MM%.%A_YYYY%
Man kann es auch in den Fenster Titel intigrieren dafür schreiben wir einfach bei
Zitat
Gui, Show, x30 y40 h610 w960, Testfenstertitel
Hinten dran mit Datum: %A_DD%.%A_MM%.%A_YYYY% rein das würde so aussehen:
Zitat
Gui, Show, x30 y40 h610 w960, Testfenstertitel mit Datum: %A_DD%.%A_MM%.%A_YYYY%
31. Stoppuhr erstellen (Ingame/Desktop)
Nach einer langen Updatepause hier ein neuer Tutorial Abschnitt. Jeder weiß sicher was eine Stoppuhr ist, doch soetwas für SA:MP benutzen oder für den Desktop als Anwendung? Autohotkey ermöglicht dies! Als erstes bestimmen wir den Tastenkürzel also welche Taste gedrückt werden soll um die Zeit zu stoppen, hier im Beispiel nehme ich mal die Taste 1 (Zehnertastatur nicht Numpad)...
Damit man auch benachrichtigt wird (Ingame):
SendInput tStoppuhr gestartet{!}{enter}
Falls ihr eine Desktop Stoppuhr macht:
MsgBox, 4144, Stoppuhr, Zeit gestartet!, 3
Nun brauchen wir eine Variable das bedeutet eine Zahl die man nicht sieht die bei 0 startet was am Ende die Zeit darstellen soll.
Doch diese Zahl geht nicht automatisch hoch nun gibt es zwei Möglichkeiten einmal einen Timer wiederholend mit Interval von einer Sekunde oder einfach einen Loop, ich tendiere zum Loop ist einfach und Praktischer.
Jetzt haben wir den Loop der muss aber noch bewirken, dass die Variable (Virtuele Zahl) hochgezählt wird jede Sekunde um +1, das bewirken wir fast genau so wie in Pawn mit Variablenname++ oder Variablenname=2 doch wir wollen die Variable nicht höher setzen einmal sondern jedesmal also folgendes:
Das Script kann sich leider keine Variablen merken wie Pawn,C++ etc. deswegen müssen wir die bisherige Zeit in eine Datei schreiben da sich die jede Sekunde vermehrt mehrmals sogar:
IniWrite,%Zeit% ,Daten.ini ,Einstellungen,Sek
%Zeit% ist nun die Neue Zeit die gespeichert wird in der Datei "Daten.ini" in dem Ordner/Verzeichnis wo die .ahk Datei gespeichert ist. Es wurde als Sek (Sekunde) gespeichert das heißt %Zeit% heißt nun erstmal Sek (Sekunde). Doch man muss die Stopuhr auch Stoppen können dafür einfach ein Tastenkürzel auswählen und mit dem KeyWait Prinzip konfriguieren sieht dann so aus:
Nun kann man die Taste 2 drücken und dann wird ein ErrorLevel versendet doch dieser muss auch aufgerufen werden am besten direkt dannach ohne irgendwelche Verzögerungen!
So nun kommt alles was passieren soll wenn man die Stopuhr stoppt, erstmal müssen wir die Zeit wieder auslesen aus der Datei "Daten.ini" dies machen wir fast genau so wie wir es reingeschrieben haben nur wir benutzen IniRead.
IniRead,Zeit,Daten.ini,Einstellungen,Sek
Doch man will nicht die gestoppte Zeit in Sekunden alleine haben, man kann es erweitern beliebig auf Stunden, Tage, Monate, Jahre soweit man es brauch doch Minuten reicht meiner ansicht meistens. Dafür ist eine kleine Rechnung die ich gerne erkläre aber nicht wirklich notwendig zu verstehen ist.
Min=%Zeit%
Min/=60
Min1=%Min%
Min1*=60
Sek=%Zeit%
Sek-=%Min%
Das wars auch schon fast, nun fehlt noch die Meldung das man den Keybinder gestoppt hat wieder in zwei Varianten einmal die für Ingame (SA:MP) und die für den Desktop, dabei müssen Minuten und Sekunden aus der Rechnung genommen werden dies ist ganz einfach mit dem %Prinzip%.
SendInput, t Stopuhr gestoppt{!} (%Min%Min - %SSek%Sek){enter}
Und wieder auch für den Desktop verwender:
MsgBox, 4144, Stoppuhr, Zeit gestoppt, 10
Das wars auch schon, doch man will ja nicht das die Stopuhr obwohl sie schon gestoppt ist durch den Loop an Resourcen verbraucht auch wenn es nur minimal ist. Desshalb beendet man den Loop noch vorher, und schließt die Klammern } ...