- GUI mit Editfeld erstellen
- Textdatei in Editfeld einlesen
- Text bearbeiten
- Editfeld auslesen und in Textdatei zurückschreiben
Beiträge von BugFix
-
-
Ein bischen minimieren geht immer
:Ich hab mal noch, statt der MsgBox 'ne zweite GUI mit veränderlicher Anzeige eingebaut. Das demonstriert es besser.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIconstants.au3>
#include <Array.au3>
#include <File.au3>
Global $Start = False
Opt("GUIOnEventMode", 1)
$gui1 = GUICreate("Watchdog Check",500,500)
GUICtrlCreateButton("Start",10,400,70,50)
GUICtrlSetOnEvent(-1, '_Start_Stop')
GUICtrlCreateButton("Stop",110,400,70,50)
GUICtrlSetOnEvent(-1, "_Start_Stop")
GUICtrlCreateButton("Exit",210,400,70,50)
GUICtrlSetOnEvent(-1, "_Exit")$gui2 = GUICreate('Sekunden', 200, 50, 300, 300)
[/autoit]
$label = GUICtrlCreateLabel('', 20,20,160, 17, $SS_CENTER)
GUISetState(@SW_SHOW, $gui1)
Func _Start_Stop()
$Start = Not $Start
EndFunc
Func _Exit()
Exit
EndFunc
While 1
If $Start Then
$begin = TimerInit()
GUISetState(@SW_SHOW, $gui2)
While $Start
If TimerDiff($begin) > 1000 Then
GUICtrlSetData($label, @SEC)
$begin = TimerInit()
EndIf
WEnd
GUISetState(@SW_HIDE, $gui2)
EndIf
Sleep(10)
WEnd -
Hi, mal noch als Tipp:
[autoit]If GUICtrlRead($input1) = "" Then
[/autoit]
Else
FileWrite($save, GUICtrlRead($iinput1) & " " & GUICtrlRead($input1) & " " & GUICtrlRead($iiinput1) & " €" & @CRLF)
EndIfDu prüfst eine Bedingung und verwendest dann nur den ELSE-Zweig. Also liegt der Sinn in der Prüfung ob diese Bedingung NICHT erfüllt ist.
[autoit]
Das geht aber einfacher mit NOT
:If Not GUICtrlRead($input1) = "" Then _ ; oder auch mit: If GUICtrlRead($input1) <> ""
[/autoit]
FileWrite($save, GUICtrlRead($iinput1) & " " & GUICtrlRead($input1) & " " & GUICtrlRead($iiinput1) & " €" & @CRLF) -
Zitat
Original von Warlenny
Hallllo
Ja supi! Vielen dank!Aber kann man es irgentwie hinbekommen das der mauszeiger von anfang an nicht heruas kann ?
Edit: Hab's nochmal geändert. In der bisherigen Version konnte _MouseTrap() durch Verschieben der GUI ausgehebelt werden.

Jetzt wird alle 500 ms _MouseTrap neu gesetzt.Kann man:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit]
#include <Misc.au3>
Global $pos_A
#Region ### START Koda GUI section ### Form=
$gui = GUICreate("Dialog", 316, 231, 347, 263, BitOR($WS_MINIMIZEBOX,$WS_CAPTION,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
GUISetIcon("D:\003.ico")
$GroupBox1 = GUICtrlCreateGroup("Festplatte Formatieren?", 8, 1, 297, 193)
GUICtrlSetFont(-1, 20, 400, 0, "comic")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("&OK", 65, 203, 75, 25, 0)
GUICtrlSetTip(-1, "Danke!")
GUICtrlSetCursor ($Button1, 3)
$Button2 = GUICtrlCreateButton("&Cancel", 162, 203, 75, 25, 0)
;~ GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$begin = TimerInit()
While WinExists($gui)
If TimerDiff($begin) > 500 Then
$pos_A = WinGetPos($gui)
_MouseTrap($pos_A[0], $pos_A[1], $pos_A[0] + $pos_A[2], $pos_A[1] + $pos_A[3])
$begin = TimerInit()
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button2
MsgBox(0, '', "Button2 gedrückt")
Exit
Case $Button1
MsgBox(0, '', "Button1 gedrückt")
EndSwitch
WEnd -
Schau mal in der Hilfe unter Makros. Da hast du alles zum Thema Zeit.
Zeitgesteuerte Schleifen kannst du erstellen, Zeit als Eintritts- oder Austrittsbedingung der Schleife, Aktionen zu bestimmten Zeiten - alles möglich.LOL - nach Mitternacht 4 Antworten auf einen Streich

-
Edit 12.02.08: Angepaßt an Ver. 3.2.10.0 und erweitert
Mit der neuen Funktion: _GUICtrlListView_FindInText() werden jetzt auch SubItems durchsucht, aber ausschließlich Case insensitiv. Auch eine Teilsuche ist nicht möglich. Aus diesem Grund habe ich meine Funktion entsprechend erweitert.
• Suche in allen Subitems
• Suche Case sensitiv (Standard) oder nicht
• Teilsuche möglich (Standard False), dabei wird Case sensitiv auf False gesetzt, selbst wenn True übergeben
• Rückgabe als Array: Array[0] = ItemIndex, Array[1] = SubItemIndexBeispiel
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiListView.au3>
Opt("GUIOnEventMode", 1)$Form1 = GUICreate("Form1", 633, 454, 193, 115)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$b = GUICtrlCreateButton('Suche', 10, 10, 80, 20)
GUICtrlSetOnEvent(-1, '_search')
$in = GUICtrlCreateInput('Wert 4-2', 100, 10, 80, 20)
$ListView1 = GUICtrlCreateListView("Spalte1|Spalte2|Spalte3", 80, 56, 457, 337)
GUICtrlSendMsg(-1, 0x101E, 0, 100)
GUICtrlSendMsg(-1, 0x101E, 1, 100)
GUICtrlSendMsg(-1, 0x101E, 2, 100)
For $i = 1 To 10
_GUICtrlListView_AddItem($ListView1, "Wert " & $i & '-1')
For $k = 2 To 3
_GUICtrlListView_AddSubItem($ListView1, $i-1, "Wert " & $i & '-' & $k, $k-1)
Next
Next
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc Form1Close()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc
Func _search()
$ret = _LV_Search($ListView1, GUICtrlRead($in), False, True)
If IsArray($ret) Then
_GUICtrlListView_SetItemSelected($ListView1, $ret[0])
_GUICtrlListView_SetSelectedColumn($ListView1, $ret[1])
MsgBox(0, 'Suche: ' & GUICtrlRead($in), 'Zeile: ' & $ret[0]+1 & @LF & 'Spalte: ' & $ret[1]+1 )
Else
MsgBox(0, '', 'Keine Übereinstimmung')
EndIf
EndFuncFunc _LV_Search($LV, $What2Find, $CaseSens=True, $Partial=False)
[/autoit]
$count = _GUICtrlListView_GetItemCount($LV)
Local $aOut[2] = [-1,0]
If $count < 1 Then
SetError(1)
Return -1
EndIf
If $Partial Then $CaseSens = False
$countSub = _GUICtrlListView_GetColumnCount($LV)
For $i = 0 To $count-1
For $k = 0 To $countSub-1
If $CaseSens Then
If _GUICtrlListView_GetItemText($LV, $i, $k) == $What2Find Then
$aOut[0] = $i
$aOut[1] = $k
Return $aOut
EndIf
Else
If Not $Partial Then
If _GUICtrlListView_GetItemText($LV, $i, $k) = $What2Find Then
$aOut[0] = $i
$aOut[1] = $k
Return $aOut
EndIf
Else
If StringInStr(_GUICtrlListView_GetItemText($LV, $i, $k), $What2Find, 1) Then
$aOut[0] = $i
$aOut[1] = $k
Return $aOut
EndIf
EndIf
EndIf
Next
Next
SetError(2)
Return -1
EndFunc ;==>_LV_Search -
Hier für Drag'nDrop:
EDIT: Auto-Ausfüllen bei Eintrag Kontoname hinzugefügt.
EDIT2: Auto-Ausfüllen bei Eintrag Nummer hinzugefügt. Jetzt mußt du nur noch komplettieren.
EDIT3: Wohl hoffentlich das letzte Edit
- Fehlerbehandlung eingefügt, falls Nummer/Name nicht gefundenSpoiler anzeigen
[autoit]$input1 = GUICtrlCreateInput("", 195, 35, 155, 15)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState(-1, $GUI_DROPACCEPTED )
GUICtrlSetOnEvent(-1, 'NameChg1')
;..
$input11 = GUICtrlCreateInput("", 360, 35, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg1')
;..
;..
Func NameChg1() ; ###### für jedes $Input eine Funktion #########
If StringInStr(GUICtrlRead($input1), '|') Then
$str = StringSplit(GUICtrlRead($input1), '|')
GUICtrlSetData($input1, $str[1])
GUICtrlSetData($input11, $str[2])
Else
$index = _LV_Search($list, GUICtrlRead($input1))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontoname nicht vorhanden!')
Return
EndIf
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input11, $number)
EndIf
EndFuncFunc NumberChg1()
[/autoit] [autoit][/autoit] [autoit]
$index = _LV_Search($list, GUICtrlRead($input11))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input1, $name)
EndFunc; Die Funktion _GUICtrlListViewFindItem() ist zwar schön kompliziert, findet aber nix in SubItems.
[/autoit] [autoit][/autoit] [autoit]
; Also habe ich hier noch eine neue Suchfunktion geschrieben.Func _LV_Search($LV, $What2Find)
[/autoit]
$count = _GUICtrlListViewGetItemCount($LV)
If $count < 1 Then Return -1 ; Return -1 ; leere Liste
$countSub = _GUICtrlListViewGetSubItemsCount($LV)
For $i = 0 To $count-1
For $k = 0 To $countSub-1
If _GUICtrlListViewGetItemText($LV, $i, $k) = $What2Find Then Return $i
Next
Next
Return -2 ; Return -2 ; nicht gefunden
EndFuncWenn der Wert in Input1 (.. 8 ) gezogen wurde, muß ENTER gedrückt werden damit das Ereignis eintritt.
[autoit]
Deshalb kannst du deinen Speicher-Button NICHT als $BS_DEFPUSHBUTTON definieren.GUICtrlCreateButton("speicher Buchungssatz", 280, 245);, -1, -1, $BS_DEFPUSHBUTTON)
[/autoit] -
Na, schon weiter gekommen?

Hier mal eine Lösung von mir:
Spoiler anzeigen
[autoit]#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]Dim $arParameter[1][2]
[/autoit] [autoit][/autoit] [autoit]
Dim $line = 'fileop datei.txt -S Suchstring -m BlaBla'
$parameter = StringRegExp($line, '((?<=\s-)\w\s\w+((?=\s-)|(?!.)))', 3)
For $i = 0 To UBound($parameter)-1
If $parameter[$i] <> '' Then
$param = StringSplit($parameter[$i], ' ')
If $arParameter[0][0] = '' Then
$arParameter[0][0] = $param[1]
$arParameter[0][1] = $param[2]
Else
ReDim $arParameter[UBound($arParameter)+1][2]
$arParameter[UBound($arParameter)-1][0] = $param[1]
$arParameter[UBound($arParameter)-1][1] = $param[2]
EndIf
EndIf
Next_ArrayDisplay($arParameter, 'Parameterliste')
[/autoit]
Erläuterung zum RegExp - Pattern:Code(?<=\s-) prüfe ob VOR dem Match (?<=) ein Leerzeichen gefolgt von einem - steht (\s-) \w jetzt muß ein Zeichen vom Typ 'Word Character' folgen \s darauf muß ein Leerzeichen folgen \w+ jetzt können beliebig viele Zeichen vom Typ 'Word Character' folgen ((?=\s-)|(?!.)) | bedeutet ODER, Bedingung links oder rechts der Pipe muß zutreffen (?=\s-) prüfe ob NACH dem Match (?=) ein Leerzeichen gefolgt von einem - steht (\s-) ODER (?!.) prüfe ob NACH dem Match (?) KEIN Zeichen folgt: (!) = Verneinung, (.) = beliebiges Zeichen -
Zwei Probleme:
[autoit]$parameter[$i][0]
[/autoit]==> dieses Array ist gar nicht deklariert, daher der Fehler
[autoit]
Aber auch wenn du es deklarierst:$string=StringSplit($line,"-")
[/autoit]
Dim $parameter[$string[0]][2]führt die Codezeile:
[autoit]$params=StringSplit($string[$i+2], " ")
[/autoit]zu einem neuen Fehler, da mit $i+2 der Bereich überschritten wird.
Tipp: Verwende zum selektieren StringRegExp().
-
Hab mal schnell 'nen Entwurf gemacht:
Spoiler anzeigen
[autoit]#include <guiconstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <guilistview.au3>
#include <file.au3>
Opt("GUIOnEventMode", 1)
Global $list
Global Const $WM_NOTIFY = 0x004E
Global Const $NM_FIRST = 0
Global Const $NM_LAST = (-99)
Global Const $NM_CLICK = ($NM_FIRST - 2)
Global Const $NM_DBLCLK = ($NM_FIRST - 3)
Global Const $NM_RCLICK = ($NM_FIRST - 5)
Global Const $NM_RDBLCLK = ($NM_FIRST - 6)
Dim $pathKonten = 'testkonten.txt', $pathUndo = $pathKonten & '.BAK'
Dim $arKonten, $arListe[1]
$maingui = GUICreate("Grundbuch 0.01", 500, 300)
GUISetOnEvent($GUI_Event_Close, 'CloseGUI')
$menu = GUICtrlCreateMenu("&Konto")
$add = GUICtrlCreateMenuItem("&einfügen", $menu)
GUICtrlSetOnEvent(-1, 'InsertAcc')
$edit = GUICtrlCreateMenuItem("&bearbeiten", $menu)
GUICtrlSetOnEvent(-1, 'EditAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$remove = GUICtrlCreateMenuItem("&löschen", $menu)
GUICtrlSetOnEvent(-1, 'DeleteAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$undo = GUICtrlCreateMenuItem("&undo", $menu)
GUICtrlSetOnEvent(-1, 'Undo')
GUICtrlCreateGroup("Konten-Liste", 5, 5, 160, 270)
$list = GUICtrlCreateListView("Konto|Nr.", 10, 20, 150, 250, -1, BitOR($LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
_GUICtrlListViewSetColumnWidth(-1, 0, 88)
_GUICtrlListViewSetColumnWidth(-1, 1, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Grundbuch", 170, 5, 325, 270)
GUICtrlCreateLabel("Konto", 180, 20)
GUICtrlCreateLabel("Nr.", 360, 20)
GUICtrlCreateLabel("Betrag", 430, 20)
$input1 = GUICtrlCreateInput("", 180, 35, 170, 15)
$input2 = GUICtrlCreateInput("", 180, 55, 170, 15)
$input3 = GUICtrlCreateInput("", 180, 75, 170, 15)
$input4 = GUICtrlCreateInput("", 180, 95, 170, 15)
GUICtrlCreateLabel("an...", 180, 115)
$input5 = GUICtrlCreateInput("", 180, 135, 170, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input6 = GUICtrlCreateInput("", 180, 155, 170, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input7 = GUICtrlCreateInput("", 180, 175, 170, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input8 = GUICtrlCreateInput("", 180, 195, 170, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input11 = GUICtrlCreateInput("", 360, 35, 60, 15)
$input12 = GUICtrlCreateInput("", 360, 55, 60, 15)
$input13 = GUICtrlCreateInput("", 360, 75, 60, 15)
$input14 = GUICtrlCreateInput("", 360, 95, 60, 15)
$input15 = GUICtrlCreateInput("", 360, 135, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg')
$input16 = GUICtrlCreateInput("", 360, 155, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg')
$input17 = GUICtrlCreateInput("", 360, 175, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg')
$input18 = GUICtrlCreateInput("", 360, 195, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg')
$input111 = GUICtrlCreateInput("", 430, 35, 60, 15)
$input112 = GUICtrlCreateInput("", 430, 55, 60, 15)
$input113 = GUICtrlCreateInput("", 430, 75, 60, 15)
$input114 = GUICtrlCreateInput("", 430, 95, 60, 15)
$input115 = GUICtrlCreateInput("", 430, 135, 60, 15)
$input116 = GUICtrlCreateInput("", 430, 155, 60, 15)
$input117 = GUICtrlCreateInput("", 430, 175, 60, 15)
$input118 = GUICtrlCreateInput("", 430, 195, 60, 15)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW, $maingui)
ReadAcc($pathKonten)
GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
While 1
Sleep(100)
Wend
Func CloseGUI()
Exit
EndFunc
Func ReadAcc($PATH) ; aus Datei in ListView schreiben
_FileReadToArray($PATH, $arKonten)
If (Not IsArray($arKonten)) Then
MsgBox(0, 'Fehler', 'Kontenliste konnte nicht gelesen werden!')
Return
EndIf
ReDim $arListe[UBound($arKonten)-1]
For $i = 1 To $arKonten[0]
$arListe[$i-1] = GUICtrlCreateListViewItem($arKonten[$i], $list)
Next
EndFunc
Func WriteAcc() ; aus ListView in Datei schreiben (nach jedem Edit, Add und Löschen)
$anz = _GUICtrlListViewGetItemCount($list)
ReDim $arKonten[$anz]
For $i = 0 To UBound($arKonten)-1
$arKonten[$i] = _GUICtrlListViewGetItemText($list, $i, 0) & '|' & _GUICtrlListViewGetItemText($list, $i, 1)
Next
If FileExists($pathKonten) Then FileMove($pathKonten, $pathKonten & '.BAK', 1)
_FileWriteFromArray($pathKonten, $arKonten)
EndFunc
Func InsertAcc() ; Konto hinzufügen
ReDim $arListe[UBound($arListe)+1]
$arListe[UBound($arListe)-1] = GUICtrlCreateListViewItem( InputBox('Kontoname', 'Bitte Namen des neuen Kontos eingeben:') & '|' & _
InputBox('Kontonummer', 'Bitte die Nummer des neuen Kontos eingeben:'), $list)
WriteAcc()
EndFunc
Func DeleteAcc() ; Konto löschen
$index = _GUICtrlListViewGetCurSel($list)
_GUICtrlListViewDeleteItem ($list, $index)
WriteAcc()
EndFunc
Func EditAcc() ; Konto bearbeiten
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
$name = InputBox('Kontoname', 'Hier können Sie den Kontennamen ändern:', $name)
$number = InputBox('Kontonummer', 'Hier können Sie die Kontonummer ändern:', $number)
_GUICtrlListViewSetItemText($list, $index, 0, $name)
_GUICtrlListViewSetItemText($list, $index, 1, $number)
WriteAcc()
EndFuncFunc Undo() ; letzte Aktion (Edit, New, Delete) rückgängig machen
[/autoit]
_GUICtrlListViewDeleteAllItems($list)
ReadAcc($pathUndo)
WriteAcc()
EndFunc
Func ListView_DoubleClick() ; Werte übertragen
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
For $i = $input1 To $input4
If GUICtrlRead($i) = '' Then
GUICtrlSetData($i, $name)
Switch $i
Case $input1
GUICtrlSetData($input11, $number)
Case $input2
GUICtrlSetData($input12, $number)
Case $input3
GUICtrlSetData($input13, $number)
Case $input4
GUICtrlSetData($input14, $number)
EndSwitch
ExitLoop
EndIf
Next
EndFunc
Func NameChg() ; einfach alle Namensfelder prüfen
; Kontoname hat sich geändert, Nummer zuordnen
EndFunc
Func NumberChg() ; einfach alle Nummerfelder prüfen
; Kontonummer hat sich geändert, Namen zuordnen
EndFunc
; WM_NOTIFY event handler
Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
;#forceref $hWndGUI, $MsgID, $wParam
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
Select
Case $wParam = $list
Select
Case $event = $NM_CLICK
;~ ListView_Click ()
Case $event = $NM_DBLCLK
ListView_DoubleClick ()
Case $event = $NM_RCLICK
;~ ListView_RightClick ()
Case $event = $NM_RDBLCLK
;~ ListView_RightDblClick ()
EndSelect
EndSelect
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>WM_Notify_EventsDen Rest schaffst du schon.

Ansonsten fragen.Edit: Ich war grad so schön in Gange.. da hab ich die ListView-Funktionen noch fertig gemacht.
Was dir jetzt noch bleibt, ist die Übergabe der Kontonamen/nummern und der Autocheck.
Viel Spaß dabei.Edit2: OK, Werte übertragen per Doppelklick ist auch erledigt.
Edit3: Hab noch ein Undo als Aktion eingebunden. Somit kann die jeweils letzte Listenaktion (Neu, Ändern, Löschen) rückgängig gemacht werden.
Hinweis:
In der jetzigen Form ist Voraussetzung, dass die Textdatei mit den Konten mindestens einen Eintrag enthält. -
Habe Bilanzen zwar niemals mit Enthusiasmus geschrieben, aber noch einige Erinnerungen daran.

Deinem Post entnehme ich, dass es sich um Buchungen für einen Mandanten handelt - also ein fester Kontenplan existiert.Zum Speichern reicht hier eine Textdatei vollkommen, da keinerlei Datenbankfunktionalität erforderlich ist.
...Textdatei:
Kontoname1|Kontonummer1
Kontoname2|Kontonummer2
Kontoname3|Kontonummer3
...
Kannst du mit _FileReadToArray einlesen und dann in deine Liste (ListView) eintragen.
Mit Drag&Drop hab ich bisher nicht gearbeitet, aber Doppelklick zum Übernehmen sollte kein Problem sein.
Die Prüfung auf zugehörige Nr/Kontoname ist an sich kein Problem. Um es automatisch zu tun, kannst du im OnEvent-Mode deinem Input-Feld ein Ereignis zuordnen ( z.B. "Input1Change"). Wird der Wert im Inputfeld verändert und du verläßt mit TAB oder ENTER das Feld, tritt das Ereignis ein.
Mit der Funktion "Input1Change" kannst du dann auf zugehörigen Namen/Nr prüfen und entsprechend eintragen.
Die Liste weiter füllen (oder auch löschen, ändern) kannst du super über Kontextmenü machen. -
Deine Zeile 40 solltest du etwas erweitern, sonst bleibt die Maus noch hängen
[autoit]
If GUICtrlRead($input) = $passwort Then
[/autoit]
_MouseTrap()
Exit
EndIfEDIT: Verrückter Tag heut
- 2mal im selben Thread zeitgleich mit Bernd gepostet -
Einfrieren an aktueller Position sollte so gehen (ungetestet):
[autoit]Func _MouseFreeze()
[/autoit]
$pos = MouseGetPos()
_MouseTrap($pos[0], $pos[1], $pos[0], $pos[1])
EndFuncachja, noch 'UnFreeze'
[autoit]_MouseTrap()
[/autoit]EDIT: Selbst am Sonntag Mittag ist irgendwer schneller...
-
Und wenn du mehrere Aktionen durchführst, sodass ein Flackern sichtbar wäre, kannst du folgendes tun:
[autoit]GUISetState(@SW_LOCK, $winhandle)
[/autoit]
; Aktionen
GUISetState(@SW_UNLOCK, $winhandle)
Dabei wird die GUI 'eingefroren', dann passieren die Änderungen und sind nach 'Freigabe' auf einen Schlag sichtbar. -
Zitat
Original von NonStop
und wie krieg ich beim logschreiben die zeiten weg
bzw kann das log öffnen ohne das in der ausgabe 2007-08-01 22:54:18 erscheint^^Mfg Non
Das ist ja der Sinn eines Logs, dass die Zeiten protokolliert werden.
Wenn du das nicht möchtest, kannst du dir eine eigene Logfunktion schreiben, ohne Angabe der Zeit.
Stichwort: FileWriteLine -
Mit diesen Methoden sparst du
a) Speicherplatz, da nicht der Inhalt eines gesamten Arrays zwischengeparkt werden muß
und
b) verringert sich die Zugriffszeit auf Elemente.Bei Arrays mit 10 oder auch 100 Elementen wird der Unterschied noch nicht gravierend sein. Aber bei großen Datenmengen sicher.
-
Zitat
P.S.: Hoffe mal BugFix liest das hier nicht - ich will nicht wissen was los ist wenn er sieht das ich öffentlich das Array diffamiere.... [Blockierte Grafik: http://forum.team-ingame.de/images/smilies/sofa.gif]
[Blockierte Grafik: http://home.arcor.de/bugfix/tux_hard.gif] Array-Diffamierung? Ich bin erschüttert. Aber mein Freund aus der Linux-Welt eilt schon zu Hilfe!

Aber mal ernsthaft, auch wenn ich Arrays liebe ( mehr als meine Frau ???, ..hmm.... überleg ...lieber-still-schweig
), so bin ich doch immer interessiert an Lösungen, die ein Programm effektiver machen können.
Also AspirinJunkie: Ich werde keinen Bann über dich legen.
Werde es auf jeden Fall ausprobieren. -
Diese Codezeile wird eingefügt, d.h., wenn der Code abläuft und diese Stelle passiert erscheint als Output in der Console:
@@ Debug( ZeilenNummer ) : MarkierteVariable = WertDerVariable
>Error code: FehlerCodeGeh also Schritt für Schritt vor (nicht alle Variablen auf einmal, da verlierst du den Überblick) und vergleiche den ausgegebenen Wert, mit dem, den du erwartest.
-
Den Punkt "SciTE Config Strg+1" solltest auch du haben.
Dort ist ein Register "Tools Selection", hier kannst du die gewünschten Tools markieren. -
Nanü ?
Das schaut so aus:
http://img-up.net/?up=debugMSV.PNG