Beiträge von BugFix
-
-
Ich antworte trotzdem mal

Das Umschalten zwischen 2 Fenstern kannst du am einfachsten so realisieren:Spoiler anzeigen
Code
Alles anzeigen#include <GuiConstants.au3> $gui1 = GUICreate("GUI 1", 400,200, -1, -1) $Button1 = GUICtrlCreateButton("GUI 2", 90, 100, 80, 25) $gui2 = GUICreate("GUI 2", 200,100,-1,-1) $Button2 = GUICtrlCreateButton("GUI 1", 90, 50, 80, 25) GuiSetState(@SW_SHOW, $gui1) While 1 $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $Button1 GUISetState(@SW_HIDE, $gui1) GuiSetState(@SW_SHOW, $gui2) Case $msg = $Button2 GUISetState(@SW_HIDE, $gui2) GuiSetState(@SW_SHOW, $gui1) EndSelect WEnd Exit ; oder wenn die erste GUI sichtbar bleiben soll (Hintergrund): While 1 $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $Button1 GuiSetState(@SW_SHOW, $gui2) Case $msg = $Button2 GUISetState(@SW_HIDE, $gui2) GuiSetState(@SW_RESTORE, $gui1) EndSelect WEnd -
Ein Gedanke kommt mir grad.
Schreib den gewünschten Text in ein Icon. Einmal ohne gestrichelter Umrandung und einmal mit. Bei Klick auf den Text (Icon) aktivierst du dann das andere Icon. -
Hallo spider,
um das bei einem Label zu machen hab ich grad keine Idee - aber vielleicht umgehst du das ganze, indem du statt klickbares Label ein Pushbotton setzt. Falls dir das optisch gefällt. Da hast du dann den Effekt, dass der geschaltete Zustand sichtbar ist.
-
Zitat
Die Darstellung könnte auch vom XP-Style abhängen
Ja, ich verwende ausschließlich das klassische Design. Der einzige Unterschied zwischen beiden PC - einer hat XP -Home und der andere (bei dem die Balloon-Tips gezeigt werden) hat XP -Prof.
-
Hallo,
habe das ganze mal auf 'nem anderen Rechner getestet. Zumindest die Darstellung des Ballon-Tip ist damit möglich. Was allerdings auch hier nicht funktioniert, ist die automatische Beendung des Tips. Aber damit kann ich leben, setze ich halt ToolTip("").
Warum auf einem PC der Balloon-Tip dargestellt wird und auf dem andren nicht kann ich nicht nachvollziehen. Die Voraussetzung (IE5 oder höher) ist gegeben.ZitatIch nehme mal an, dass es so lange dauert soll, aber du könntest das ganze natürlich auch schneller berechnen lassen.
Ja, soll etwas dauern, hab extra verzögert für den visuellen Effekt.
-
Ist mein Lottogenerator

Spoiler anzeigen
Code
Alles anzeigen#include <GUIConstants.au3> #Include<Array.au3> Global $gezogen[6] ; == GUI generated with Koda == $Lotto = GUICreate("Lotto 6 aus 49", 399, 398, 192, 125) GUICtrlCreateLabel("Ziehung", 120, 29, 43, 17) $iZiehung = GUICtrlCreateInput("", 192, 24, 32, 24, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0x000080) $Group1 = GUICtrlCreateGroup("", 40, 72, 185, 281) $iZahl1 = GUICtrlCreateInput("", 152, 104, 32, 21, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlSetColor(-1, 0x000080) GUICtrlCreateLabel("1. Zahl", 80, 106, 37, 17) GUICtrlCreateLabel("2. Zahl", 80, 138, 37, 17) $iZahl2 = GUICtrlCreateInput("", 152, 136, 32, 21, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlSetColor(-1, 0x000080) GUICtrlCreateLabel("3. Zahl", 80, 170, 37, 17) $iZahl3 = GUICtrlCreateInput("", 152, 168, 32, 21, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlSetColor(-1, 0x000080) GUICtrlCreateLabel("4. Zahl", 80, 202, 37, 17) $iZahl4 = GUICtrlCreateInput("", 152, 200, 32, 21, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlSetColor(-1, 0x000080) GUICtrlCreateLabel("5. Zahl", 80, 234, 37, 17) $iZahl5 = GUICtrlCreateInput("", 152, 232, 32, 21, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlSetColor(-1, 0x000080) GUICtrlCreateLabel("6. Zahl", 80, 266, 37, 17) $iZahl6 = GUICtrlCreateInput("", 152, 264, 32, 21, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlSetColor(-1, 0x000080) $Input5 = GUICtrlCreateInput("", 408, 328, 32, 21, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlCreateLabel("Zusatzzahl", 80, 314, 55, 17) $iZahlZusatz = GUICtrlCreateInput("", 152, 312, 32, 21, BitOR($ES_RIGHT,$ES_READONLY)) GUICtrlSetColor(-1, 0x800080) GUICtrlCreateGroup("", -99, -99, 1, 1) $bStart = GUICtrlCreateButton("Start", 272, 24, 75, 25, 0) $bClear = GUICtrlCreateButton("Löschen", 272, 64, 75, 25, 0) $bEnd = GUICtrlCreateButton("Ende", 272, 120, 75, 25, 0) GUISetState(@SW_SHOW) While 1 $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Or $msg = $bEnd ExitLoop Case $msg = $bClear _Clear() Case $msg = $bStart _Ziehung() EndSelect WEnd Exit Func _Clear() GUICtrlSetData($iZahl1,"") GUICtrlSetData($iZahl2,"") GUICtrlSetData($iZahl3,"") GUICtrlSetData($iZahl4,"") GUICtrlSetData($iZahl5,"") GUICtrlSetData($iZahl6,"") GUICtrlSetData($iZahlZusatz,"") GUICtrlSetData($iZiehung,"") For $i = 0 To 5 $gezogen[$i] = 0 Next EndFunc Func _Ziehung() ; Ziehung aller Zahlen For $i = 1 to 7 While 1 $again = 0 $zufall = Random(1,49,1) $pos = _ArraySearch($gezogen, $zufall) If $pos <> -1 Then $again = 1 If $again = 0 Then If $i < 7 Then $gezogen[$i-1] = $zufall Else $ZusatzZahl = $zufall EndIf ExitLoop EndIf WEnd Next ; Darstellung in GUI For $i = 1 to 7 For $j = 1 To 49 GUICtrlSetData($iZiehung, $j) Sleep(10) Next If $i < 7 Then GUICtrlSetData($iZiehung, $gezogen[$i-1]) Else GUICtrlSetData($iZiehung, $ZusatzZahl) EndIf Sleep(800) Select Case $i = 1 GUICtrlSetData($iZahl1,$gezogen[$i-1]) Case $i = 2 GUICtrlSetData($iZahl2,$gezogen[$i-1]) Case $i = 3 GUICtrlSetData($iZahl3,$gezogen[$i-1]) Case $i = 4 GUICtrlSetData($iZahl4,$gezogen[$i-1]) Case $i = 5 GUICtrlSetData($iZahl5,$gezogen[$i-1]) Case $i = 6 GUICtrlSetData($iZahl6,$gezogen[$i-1]) Case $i = 7 GUICtrlSetData($iZahlZusatz,$ZusatzZahl) EndSelect Next ; Sortierung ToolTip("Nun die gezogenen Zahlen" & @LF & "in geordneter Reihenfolge",422,340,"Ergebnis der Ziehung",1) Sleep(3000) ToolTip("") _ArraySort($gezogen) GUICtrlSetData($iZahl1,$gezogen[0]) GUICtrlSetData($iZahl2,$gezogen[1]) GUICtrlSetData($iZahl3,$gezogen[2]) GUICtrlSetData($iZahl4,$gezogen[3]) GUICtrlSetData($iZahl5,$gezogen[4]) GUICtrlSetData($iZahl6,$gezogen[5]) EndFuncKonnte ich nicht vor 18 Uhr zeigen, sonst hättet ihr noch die 6 Mio. ohne mich abgeräumt :schild4:
-
Hallo,
Ich habe im Code folgendes:
Im Programmablauf wird der Tip auch angezeigt - aber er verschwindet nicht wieder. Lasse ich nur diese 2 Codezeilen alleine laufen funktioniert es.
Ich hab mir erst mal so geholfen:Dann verschwindet der Tip wieder, aber das ist ja nicht der Sinn der Funktion.
Nun habe ich mal mit ToolTip( ) alle Einstellungen durchprobiert. Dabei ist mir aufgefallen, dass die Option: "1 = Display as Balloon Tip" (bzw. "3" in Addition mit "Center the tip") dazu führt, dass der ToolTip gar nicht angezeigt wird. Hat jemand damit Erfahrungen? -
Was ist an einem #include unübersichtlich?
Wenn dir damit die Datei zu groß wird, kopier dir doch nur die Funktion raus, die du brauchst.
Brauchst du die Funktion nur einmal im code, kannst du dir das schenken. Aber bei mehrfachem Aufruf ist es schon sinnvoll. -
Ich fand immer am Besten zum Üben das Umsetzen mathematischer Aufgaben.
Selbst wenn diese math. Funktionen schon in AutoIt enthalten sind, kann man sie zu Testzwecken auch mal selber neu erfinden.
Sehr schön zum Anfang finde ich z.B.: "n!" oder "Quersumme von n"
Wenn du es dann etwas härter magst: Primzahlen bis "n"
Als schöne Übung für eine GUI: Lotto 6 aus 49Viel Spaß!
-
Hi basler,
ich hab dir mal ne Lösung gebastelt. Brauchst dazu die Beta. Ist getestet und funzt
Spoiler anzeigen
[autoit]#Include <File.au3>
[/autoit]
#Include <Array.au3>
$source_path = "C:\BENUTZER\"
$target_path = "C:\CHECK\" ; Speicherzielordner
$searchstring = "crash" ; z.B. "crash20060905.txt"
$n = 0 ; Anzahl der kopierten Dateien
$FolderList=_FileListToArray($source_path, "*",2) ; Flag 2 = nur Ordner
If (Not IsArray($FolderList)) and (@Error=1) Then
MsgBox (0,"","Keine Ordner gefunden.")
Exit
EndIf
For $i = 1 To $FolderList[0]
$FileList = _FileListToArray($source_path & $FolderList[$i])
If IsArray($FileList) Then
For $j = 1 To $FileList[0]
If $FileList[$j] = "Data" Then ; dein gesuchter Unterordner - falls vorhanden
$DataFileList = _FileListToArray($source_path & $FolderList[$i] & "Data")
If IsArray($DataFileList) Then
For $k = 1 to $DataFileList[0]
If StringInStr($DataFileList[$k], $searchstring) <> 0 Then ; in Dateiname ist $searchstring enthalten
FileCopy($source_path & $FolderList[$i] & "\" & $FileList[$j] & "\" & $DataFileList[$k], _
$target_path & $FolderList[$i] & "\" & $DataFileList[$k],
; Flag 8 = Ordner erstellen, falls nicht vorhanden
$n = $n 1
EndIf
Next
EndIf
EndIf
Next
EndIf
Next
If $n > 0 Then
MsgBox(0,"", "Es wurde(n) " & $n & "Datei(en) kopiert.")
Else
MsgBox(0,"", "Es wurden keine Dateien kopiert.")
EndIfEDIT - wichtig
Hier klappt was mit der Darstellung nicht. Meine Backslashes sind alle gelöscht! auch mit editieren werden sie wieder gelöscht!
Also bei $source_path und $target_path gehören vor und hinter den Ordnernamen Backslash.
In der Codezeile: " $DataFileList = _FileListToArray($source_path & $FolderList[$i] & "Data") " ist vor dem Ordnernamen "Data" ein Backslash zu setzen.
In der Codezeile: "FileCopy...." sind jeweils zwischen den: & "" & auch Backslash einzufügen.EDIT 2
Nach viel Bastelei sollte die Darstellung jetzt stimmen. (6 Edits - persönl. Rekord
)
Sicherheitshalber lösche ich das vorige Edit aber nicht.Nachsatz: Mit Version 3.2.0.1 brauchst du nicht die Beta hierfür.
bernd670 : Backslashes wieder reingeschrieben
letztes (?) ! Edit - #9 :LOL:
Da durch die Darstellung jetzt einiges von der Funktionalität verloren gegangen ist, hänge ich die Datei mal an. -
Also rein vom Ablauf her würde ich es so machen:
- LogFile einlesen
- jetzt Zeile für Zeile bis Dateiende
wenn Datum noch nicht 10 Tage alt -> Zeileninhalt kopieren - an Array übergeben
- LogFile schließen und löschen
- LogFile neu erstellen
- Zeilenweise Arrayeinträge einfügen
- LogFile schließen -
-
-
Da muß ich echt passen, hab grad seit 15 min versucht die Syntax zu verstehen - erfolglos.

Aber dafür haben wir ja zum Glück unsren Pee
-
Also ich verstehe eins nicht, warum willst du unbedingt die Funktion StringRegExp() verwenden?
ich she auch nicht zwingend den Ansatz dafür. Bei Auswahl der Zahl aus der WEB-Adresse weiß ich nicht ob es überhaupt damit geht.Meine Lösung, funktioniert:
Code$text = "Gästebuch (123)" $pos1 = StringInStr($text, "(") $pos2 = StringInStr($text, ")") $zahl = StringMid($text, $pos1+1, $pos2 - $pos1-1) MsgBox(0, "Zahl selektiert", $zahl)und
-
Äh, wenn du dich hier auf 'nen anderen Thread beziehst, sag mal welchen.
So versteh ich das ganze nicht. -
-
Schau mal hier rein: http://autoit.aufwaerts.de/thread.php?threadid=384
Dort habe ich eine GUI mit den wesentlichen GUICtrlList-Funktionen hinterlegt.Habe das Beispiel von oben mal so geändert, dass die Ausgabe in einer MsgBox erfolgt:
Spoiler anzeigen
C
Alles anzeigen#include <GUIConstants.au3> #include <GuiList.au3> Opt ('MustDeclareVars', 1) Dim $msg, $ret, $INHALT = "" Dim $listbox, $button, $label, $i GUICreate("ListBox Selected Items Text Demo", 400, 250, -1, -1) $listbox = GUICtrlCreateList("", 125, 40, 180, 120, BitOR($LBS_SORT, $WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY, $LBS_MULTIPLESEL)) GUICtrlSetData($listbox, "test1|more testing|even more testing|demo|") $button = GUICtrlCreateButton("Get Selected", 150, 160, 120, 40) GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $button $ret = _GUICtrlListGetSelItemsText ($listbox) If (Not IsArray($ret)) Then MsgBox(16, "Error", "Unknown error from _GUICtrlListGetSelItemsText") Else For $i = 1 To $ret[0] If $INHALT = "" Then $INHALT = $ret[$i] Else $INHALT = $INHALT & @LF & $ret[$i] EndIf Next MsgBox(0, "Gesamte Liste", $INHALT) EndIf EndSelect WEnd -