1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • Alles Gute peethebee

    • BugFix
    • 4. Dezember 2007 um 20:15

    Da bin ich heut extra gefahren wie ein Teufel, um noch rechtzeitig vor Mitternacht wieder zu Hause zu sein und dir gratulieren zu können.

    Also Pee: Alles Gute, Viel Erfolg (und Spaß) beim Studium und alles, was sonst noch wünschenswert ist. :thumbup:

  • schreibschutz bei ordner

    • BugFix
    • 2. Dezember 2007 um 21:03

    Wie man sieht, hat dein Bruder allen Grund so zu handeln. :D

  • HEX-Code Farbtabelle

    • BugFix
    • 2. Dezember 2007 um 15:16

    Ja, das idiotische ist, dass die Funktionsnamen nur einen Unterstrich dazu bekommen haben. Es also keine völlig neuen Funktionen sind.
    Statt: _GUICtrlListViewGetItemText JETZT _GUICtrlListView_GetItemText
    Und statt _GUICtrlListViewDeleteAllItems($ListView1) JETZT
    _GUICtrlListView_DeleteAllItems("Farbe|Name|HEX-Code|R/G/B") - Hier darf NICHT mehr die ID verwendet werden sondern es muß das Control mit Titel angesprochen werden (omfg).

  • Mehere GUIs in einer datei

    • BugFix
    • 2. Dezember 2007 um 15:01

    Folgende Fehler:
    - du deklarierst "OnEvent-Mode", arbeitest aber in Event UND GUIGetMsg -Mode
    - Variablennamen sind mehrfach vergeben
    - Events sind nicht korrekt zugeordnet

    Bring da erst mal Ordnung rein.

  • Ärger mit AutoIt v3.2.10.0

    • BugFix
    • 2. Dezember 2007 um 12:21

    Also seit der neuesten Version von AutoIt ärgere ich mich hier nur noch.
    Ich war echt am Überlegen, ob ich mir nicht wieder die vorige Version aufspiele, aber dann kann man ja keine Skripte mehr tauschen :(
    Die Änderungen gerade im Listview-Bereich sind katastrophal. Kein Befehl wurde erhalten, d.h. alle vorhandenen Skripte müssen umgearbeitet werden *würg*.
    Außerdem funktioniert z.B. der Befehl: _GUICtrlListView_DeleteAllItems($ListView1) mit neuer Syntax. Wenn man diesen ausführt, poppt eine Meldung auf, man soll doch gefälligst zum Löschen von Items GUICtrlDelete verwenden oder aber NICHT die ID des Controls, sondern den Titel verwenden. Wer denkt sich denn so etwas aus. Bei 99% der Funktionen wird das Control per ID angesprochen ABER hierbei darf es nicht sein???
    So langsam vergeht einem der Spaß. Mal sehen, was für Stinkbomben noch hinterlegt sind in dieser Version - werde mal Stück für Stück meine Skripte testen. Ich befürchte Schlimmes...
    Ich wollte mir nur mal Luft machen, weil mich das echt auf die Palme bringt. X(

  • neue Zeile und Festbestandteil in einem Edit

    • BugFix
    • 2. Dezember 2007 um 11:30

    Ich hab dir hier mal eine Variante erstellt, die vielleicht noch nicht 100% aber recht gut läuft.
    Du benötigst dazu die "DLLCallBack.au3" aus der au3_callback_v6.5

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIEdit.au3>
    #include '...\au3_callback_v6.5\DllCallBack.au3' ; dein Pfad zur DLLCallBack
    Opt("GUIOnEventMode", 1)
    Global Const $WH_KEYBOARD_LL = 13
    Global $hHook, $pStub_KeyProc
    Global $pStub_KeyProc = _DllCallBack ("_KeyProc","int;ptr;ptr")
    Global $hmod = DllCall("kernel32.dll","hwnd","GetModuleHandle","ptr",0)
    Global $hHook = DllCall("user32.dll","hwnd","SetWindowsHookEx","int", _
    $WH_KEYBOARD_LL,"ptr",$pStub_KeyProc,"hwnd",$hmod[0],"dword",0)
    Global $buffer = ""

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Fest = '<Festtext>'
    Dim $minLen = StringLen($Fest)

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Form1", 633, 310, 193, 115)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    $Edit1 = GUICtrlCreateEdit("", 24, 16, 585, 265, BitOR($WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
    GUICtrlSetData(-1, $Fest)
    GUISetState(@SW_SHOW)
    _GUICtrlEdit_SetSel($Edit1, -1, -1) ; Cursor hinter Festtext

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Form1Close()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func EvaluateKey($keycode)
    Select
    Case $keycode = 13 ; Enter
    If _checkCurrentRow() Then _
    _GUICtrlEdit_AppendText($Edit1, @CRLF & $Fest)
    Case $keycode = 8 Or $keycode = 46 ; Backspace oder Delete
    _checkCurrentRow()
    EndSelect
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _checkCurrentRow()
    $indx = _GUICtrlEdit_LineFromChar($Edit1)
    $currLen = _GUICtrlEdit_LineLength($Edit1, $indx)
    $pos1stInLine = _GUICtrlEdit_LineIndex($Edit1, $indx)
    $pos = _GUICtrlEdit_GetSel($Edit1)
    $lenInLine = $pos[0]-$pos1stInLine
    If $currLen <= $minLen Or $lenInLine <= $minLen Then
    _GUICtrlEdit_Undo($Edit1)
    Return False
    EndIf
    Return True
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _KeyProc($nCode, $wParam, $lParam)
    Local $ret,$KEYHOOKSTRUCT
    If $nCode < 0 Then
    $ret = DllCall("user32.dll","long","CallNextHookEx","hwnd",$hHook[0], _
    "int",$nCode,"ptr",$wParam,"ptr",$lParam)
    Return $ret[0]
    EndIf
    If $wparam = 256 Then
    $KEYHOOKSTRUCT = DllStructCreate("dword;dword;dword;dword;ptr",$lParam)
    EvaluateKey(DllStructGetData($KEYHOOKSTRUCT,1))
    EndIf
    $ret = DllCall("user32.dll","long","CallNextHookEx","hwnd",$hHook[0], _
    "int",$nCode,"ptr",$wParam,"ptr",$lParam)
    Return $ret[0]
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func OnAutoItExit()
    DllCall("user32.dll","int","UnhookWindowsHookEx","hwnd",$hHook[0])
    EndFunc

    [/autoit]


    Ich hatte anfangs mit _IsPressed() probiert, aber damit läßt sich das Problem nicht lösen, schon allein weil du mit dieser Funktion nicht die 'Delete'-Taste abfangen kannst.

    Edit: Hab noch eine Verbesserung eingefügt, ich glaube nun sind wir bei 100% :rolleyes:

  • Erste Hilfe

    • BugFix
    • 2. Dezember 2007 um 10:35

    Fintan:

    Gibt es, habe ich geschrieben und in Skripte gepostet: Standard-Editor notepad ersetzen

    Verwende die GUI-Variante, da siehst du immer, welcher Editor gerade als Standardeditor aktiviert ist. Verwenden kannst du das für die meisten Editoren. Kompiliere das Skript und verwende ein Icon deiner Wahl.

  • array sortieren

    • BugFix
    • 1. Dezember 2007 um 22:58

    Du kannst es doch gleich in einer Abfrage regeln:

    Spoiler anzeigen
    [autoit]

    ReDim $arSortable[$ar[0]][3]
    For $i = 1 To UBound($ar) -1
    $var = StringSplit($ar[$i], ' ')
    If IsArray($var) And $var[0] = 3 Then ; hier gleich auf korrekte Anzahl prüfen
    $arSortable[$i-1][0] = $var[1] ; Geb.Dat.
    $arSortable[$i-1][1] = $var[2] ; Vorname
    $arSortable[$i-1][2] = $var[3] ; Name
    EndIf
    Next

    [/autoit]


    Falls einige Einträge dadurch rausfallen hast du im 2D-Array ein paar leere Einträge, die kannst du aber auch noch entfernen. Funktion siehe in meiner Signatur.

  • neue Zeile und Festbestandteil in einem Edit

    • BugFix
    • 1. Dezember 2007 um 15:18

    Das geht in etwa so:
    - wenn Enter gedrückt Zeilenumbruch einfügen und Festtext in die neue Zeile schreiben
    - in einer Schleife ständig die Länge der aktuellen Zeile überwachen
    - wird durch Rückwärtslöschen oder Markieren und anschließendem Löschen die Mindestlänge für den Festtext unterschritten, aktiviere Undo
    Ist aber ziemlich aufwändig.

  • neue Zeile und Festbestandteil in einem Edit

    • BugFix
    • 1. Dezember 2007 um 13:24

    Mach es doch (ist auch nicht so umständlich) mit Kombination Inputfeld und Editbox (wie z.B. bei einem Messengerprogramm).
    Und beim Einlesen des Inputfeldes fügst du den Festbestandteil an und zeigst dann alles in der Editbox.

  • Radiobuttentext wird nach GUICtrlSetFont nicht mehr richtig angezeigt

    • BugFix
    • 1. Dezember 2007 um 09:39

    Warum so kompliziert?
    Für ein Update erweiterst du einfach die INI um die entsprechenden Einträge/Sektionen. Du mußt ja davon ausgehen, dass in der INI inzwischen nutzerspezifische Änderungen gespeichert sind (sonst hättest du ja die Werte nicht in einer INI, sondern als Variablen/Konstanten im Programm).
    Also füge beim Ausführen des Updates nur neue Werte hinzu, damit die alten Einstellungen nicht verloren gehen.
    Du kannst ja um sicher zu gehen, beides hinterlegen.

    Spoiler anzeigen
    [autoit]

    If Not FileExists($INIPath) Then
    FileInstall('..\Quell-Pfad INI', $INIPath)
    Else
    IniWriteSection($INIPath, 'sectionNEW', 'data') ; neue Sektion
    IniWrite($INIPath, 'section', 'key', 'value') ; geänderte oder neue Werte in vorhandener Sektion
    EndIf

    [/autoit]
  • Radiobuttentext wird nach GUICtrlSetFont nicht mehr richtig angezeigt

    • BugFix
    • 30. November 2007 um 23:45

    Ja, den Pfad mußt Du mit: DirCreate ( "path" ) vorher anlegen.
    Und wenn an der INI nichts geändert werden soll, dann schreib sie doch bei Skriptstart.

    [autoit]

    If Not FileExists(....INI) Then
    INIWrite(...) ; oder INIWriteSection(...)
    EndIf

    [/autoit]
  • FileMOve

    • BugFix
    • 30. November 2007 um 23:35

    Verwende statt ConsoleWrite MsgBox(), dann hast du keine Probleme.

  • Radiobuttentext wird nach GUICtrlSetFont nicht mehr richtig angezeigt

    • BugFix
    • 30. November 2007 um 23:28

    Warum erst installieren und dann nur bei Bedarf verschieben?
    Besser ist doch: nur installieren, wenn nicht da:

    [autoit]

    $KDP = @AppDataCommonDir & "\XT\KD"
    If not FileExists($KDP&"\KOI.ini") Then _
    FileInstall("C:\Dokumente und Einstellungen\Fabian\Desktop\AutoItDateien\Hilfsdateien\KOI.ini", $KDP & "\KOI.ini")

    [/autoit]
  • FileMOve

    • BugFix
    • 30. November 2007 um 23:17
    [autoit]

    If FileMove(....) = 1 Then ConsoleWrite('Ferddisch')

    [/autoit]
  • FileMOve

    • BugFix
    • 30. November 2007 um 22:34

    Ich denke Auswerten des Returnwertes sollte das Einfachste sein. ;)

    Zitat

    Success: Returns 1.

  • Radiobuttentext wird nach GUICtrlSetFont nicht mehr richtig angezeigt

    • BugFix
    • 30. November 2007 um 22:14

    Versuch doch einfach mal die Radiobutton komplett zu definieren, nicht nur Top und Left, sondern auch Breite und Höhe.

  • array sortieren

    • BugFix
    • 30. November 2007 um 21:57

    So wird ein Schuh draus:

    Spoiler anzeigen
    [autoit]

    #include <file.au3>
    #include <array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $file = 'test.txt'
    Dim $ar, $arSortable[1][3], $var

    [/autoit] [autoit][/autoit] [autoit]

    _FileReadToArray($file, $ar)
    If @error Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($ar, 'unsortiert - 1D Array')
    ReDim $arSortable[$ar[0]][3]
    For $i = 1 To UBound($ar) -1
    $var = StringSplit($ar[$i], ' ')
    If IsArray($var) Then
    $arSortable[$i-1][0] = $var[1] ; Geb.Dat.
    $arSortable[$i-1][1] = $var[2] ; Vorname
    $arSortable[$i-1][2] = $var[3] ; Name
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($arSortable, 'vor der Sortierung')
    _ArraySort($arSortable, Default,0,0,3,1)
    _ArrayDisplay($arSortable, 'sortiert nach Vorname')
    _ArraySort($arSortable, Default,0,0,3,2)
    _ArrayDisplay($arSortable, 'sortiert nach Name')

    [/autoit]
  • StringRegExp-Übungen

    • BugFix
    • 29. November 2007 um 18:07

    Also die Erklärung zu '+' mußt du im Vergleich zu '*' betrachten.
    '+' bedeutet: Element MUSS mindest einmal, kann beliebig oft vorkommen
    '*' bedeutet: Element kann beliebig oft vorkommen, also auch kein-mal.

    Und hiermit "[^0-9]+" schließt du alle Ziffern aus dem Match aus :whistling:
    Wenn Du alle Ziffern/Zahlen möchtest: "[0-9]+" oder kürzer: "\d+"

  • Welchen Musikstil bevorzugt ihr?

    • BugFix
    • 28. November 2007 um 22:40

    :rofl: - Das war definitiv ein Beitrag von dem ich nicht ein einziges Wort verstanden habe. ;(:S :wacko:

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™