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

  • Administration AutoIt-SQLite

    • BugFix
    • 16. Juni 2008 um 19:40

    Ja danke, aber hilft leider nicht wirklich. "sqlite_sequence" läßt sich per SQL-Statement nicht abfragen, die Inhalte von "sqlite_master" bieten nicht alle Infos, die ich möchte :(

  • PC Fernwartung

    • BugFix
    • 15. Juni 2008 um 20:56

    UltraVNC oder RealVNC sind eigentlich super für Fernwartung geeignet.

  • Bilder auf Gleichheit oder Ähnlichkeit überprüfen

    • BugFix
    • 15. Juni 2008 um 20:32

    Datei zum Lesen oder Schreiben öffnen, mode-Flags addieren.
    FileOpen($Datei, mode)
    mode: 16 = Force binary(byte) reading and writing mode with FileRead and FileWrite

  • Picture als Button animiert

    • BugFix
    • 15. Juni 2008 um 17:23

    Ja, gute Idee :thumbup:

  • Administration AutoIt-SQLite

    • BugFix
    • 15. Juni 2008 um 15:59

    Hi,
    wer mit SQLite schon gearbeitet hat, kennt sicher das Konfigurationstool "SqliteAdmin".
    Damit lassen sich SQLite-Datenbanken erstellen und verwalten, inkl. Index, Trigger, Views, und auch cleanen oder löschen.
    Jedoch besteht das Problem, dass mit diesem Admin-Programm erstellte DB sich nicht mit dem AutoIt-SQLite Plugin öffnen lassen.
    Deshalb möchte ich versuchen, ein adäquates Tool zu erstellen, welches auf das AutoIt-SQLite Plugin zurückgreift.

    In der Endfassung stelle ich mir folgendes vor:
    - für Datenbank-Laien einen Wizard, der durch Abfragen der notwendigen Parameter einer User-bezogene Datenbank mit den erforderlichen Indizes, Views und evtl. auch Triggern erstellt.
    - der versiertere Nutzer nimmt diese Einstellungen von Hand vor
    Funktionsumfang:
    - DB: Öffnen/Cleanen/Schließen
    - Tabelle: Erstellen/Bearbeiten/Löschen
    - Index: Erstellen/Bearbeiten/Löschen
    - Trigger: Erstellen/Bearbeiten/Löschen
    - View: Erstellen/Bearbeiten/Löschen

    Das Erstellen der jeweiligen Punkte stellt kein Problem dar.
    Aber:
    Ich benötige die Detail-Informationen zu Tabellen/Indizes/Trigger/Views.
    Abfragen lassen sich:
    - Tabellennamen, Feldnamen, Indexnamen +indexiertes Feld, Triggernamen
    Wie komme ich nun zu den Details?
    Also Feldtyp, Feldlänge, Index ASC oder DESC, Triggersequenzen, Views.

    Ich konnte in keiner Literatur Hinweise darauf finden. Falls also jemand weiß, wo ich diese Infos bekommen kann, wäre ich sehr dankbar. Damit steht und fällt das Projekt. (bzw. es wird nur ein DB-Creator ;) )

    Hier könnt ihr mal einen Blick in den aktuellen Status werfen. Mit AutoIt-SQLIte erstellte DB könnt ihr hier öffnen und bekommt eine Auflistung der Tabellen (Felder, Indizes) und Trigger (so vorhanden).

    Edit 13.01.2009:
    Hier mal die aktuelle Version, inzwischen schon etwas leistungsfähiger. Alle Daten werden im Listview dargestellt, der SQL-Code wird dargestellt (kann teilweise noch fehlerhaft sein, das Parsen ist etwas schwierig)
    Hab es jetzt mal als Datei angehängt.

    Spoiler anzeigen
    [autoit]

    #include <ListViewConstants.au3>
    #include<GuiEdit.au3>
    #Include <GuiComboBox.au3>
    ;~ #include<SQLite_1.au3>
    #include<Array.au3>
    #include<GuiImageList.au3>
    #include<GuiStatusBar.au3>
    #include<WinAPI.au3>
    #include<GUIConstantsEx.au3>
    #Include <GuiTreeView.au3>
    #include<TreeViewConstants.au3>
    #include<WindowsConstants.au3>
    #include <SQLite.au3> ;
    #include <SQLite.dll.au3>
    Opt("GUIOnEventMode", 1)
    Opt('MustDeclareVars',1)

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

    Global $INI = @ScriptDir & '\SQLite_Author.INI', $currFolder = @MyDocumentsDir, $splitPath, $split
    Global $maxFiles = 9, $currCountFiles = 0, $aRecentFiles[1], $aItemID[1][2] = [[-1,0]]
    Global $aTable[1], $aStruct[1][2] ; [i][0]=Tabelle, [i][1]=Feld
    If Not FileExists($INI) Then
    IniWrite($INI, 'settings', 'last_folder', @MyDocumentsDir)
    IniWrite($INI, 'recent_num', 'maximum', 9)
    IniWrite($INI, 'recent_num', 'aktuell', 0)
    Else
    $currFolder = IniRead($INI, 'settings', 'last_folder', @MyDocumentsDir)
    $maxFiles = IniRead($INI, 'recent_num', 'maximum', 9)
    $currCountFiles = IniRead($INI, 'recent_num', 'aktuell', 0)
    If $currCountFiles > 0 Then
    $aRecentFiles = IniReadSection($INI, 'recent_file')
    ReDim $aItemID[$aRecentFiles[0][0]][2]
    $aItemID[0][0] = 1
    EndIf
    EndIf
    Global $GUI_Main, $TreeView1, $aMenuItem[23], $Tab1, $TabSheet1, $TabSheet2, $cbTable, $Label1, $Group1, $Label2, $Label3
    Global $ContextMenu, $EditSQL
    Global $cbField, $inFilter, $bFilter, $b1st, $bPrev, $bNext, $bLast, $bNew, $bDel, $bEdit, $bSave, $bEscChg, $bUpdate, $ListView1
    Global $CM_ExpandSubs, $CM_CollapseSubs, $tvi_DB, $hStatus, $aParts[2] = [20, -1], $aSelParent[1] = [0], $aEmpty[1] = [0]
    Global $hSQL, $path, $MyDocsFolder = "::{450D8FBA-AD25-11D0-98A8-0800361B1103}"
    Global $aResult, $iRows, $iColumns, $hQuery, $hImage, $a_ID_Table[1], $LastTbl

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

    $GUI_Main = GUICreate("SQLite Author", 973, 514, -1, -1, Default, $WS_EX_TOPMOST)
    GUISetOnEvent($GUI_EVENT_CLOSE, "GUIMainClose")
    $TreeView1 = GUICtrlCreateTreeView(8, 8, 241, 455, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
    GUICtrlSetOnEvent(-1, "TreeView1Click")
    $ContextMenu = GUICtrlCreateContextMenu($TreeView1)
    $CM_ExpandSubs = GUICtrlCreateMenuItem('Zweig Ausklappen', $ContextMenu)
    GUICtrlSetOnEvent(-1, 'CM_ExpandSubs')
    $CM_CollapseSubs = GUICtrlCreateMenuItem('Zweig Einklappen', $ContextMenu)
    GUICtrlSetOnEvent(-1, 'CM_CollapseSubs')
    $aMenuItem[0] = GUICtrlCreateMenu("Datenbank")
    $aMenuItem[4] = GUICtrlCreateMenuItem("Neu", $aMenuItem[0])
    GUICtrlSetOnEvent(-1, "MenuItem_DB_New")
    $aMenuItem[5] = GUICtrlCreateMenuItem("Öffnen", $aMenuItem[0])
    GUICtrlSetOnEvent(-1, "MenuItem_DB_Open")
    $aMenuItem[6] = GUICtrlCreateMenuItem("Säubern", $aMenuItem[0])
    GUICtrlSetOnEvent(-1, "MenuItem_DB_Clean")
    $aMenuItem[7] = GUICtrlCreateMenuItem("Schließen", $aMenuItem[0])
    GUICtrlSetOnEvent(-1, "MenuItem_DB_Close")
    GUICtrlCreateMenuItem("", $aMenuItem[0])
    $aMenuItem[22] = GUICtrlCreateMenu("Zuletzt", $aMenuItem[0])
    GUICtrlCreateMenuItem("", $aMenuItem[0])
    $aMenuItem[8] = GUICtrlCreateMenuItem("Beenden", $aMenuItem[0])
    GUICtrlSetOnEvent(-1, "GUIMainClose")
    $aMenuItem[1] = GUICtrlCreateMenu("Tabelle")
    $aMenuItem[9] = GUICtrlCreateMenuItem("Neu", $aMenuItem[1])
    GUICtrlSetOnEvent(-1, "MenuItem_Table_New")
    $aMenuItem[10] = GUICtrlCreateMenuItem("Ändern", $aMenuItem[1])
    GUICtrlSetOnEvent(-1, "MenuItem_Table_Chg")
    $aMenuItem[11] = GUICtrlCreateMenuItem("Löschen", $aMenuItem[1])
    GUICtrlSetOnEvent(-1, "MenuItem_Table_Del")
    $aMenuItem[2] = GUICtrlCreateMenu("Extras")
    $aMenuItem[12] = GUICtrlCreateMenu("Index", $aMenuItem[2])
    $aMenuItem[13] = GUICtrlCreateMenuItem("Neu", $aMenuItem[12])
    GUICtrlSetOnEvent(-1, "MenuItem_Index_New")
    $aMenuItem[14] = GUICtrlCreateMenuItem("Ändern", $aMenuItem[12])
    GUICtrlSetOnEvent(-1, "MenuItem_Index_Chg")
    $aMenuItem[15] = GUICtrlCreateMenuItem("Löschen", $aMenuItem[12])
    GUICtrlSetOnEvent(-1, "MenuItem_Index_Del")
    $aMenuItem[16] = GUICtrlCreateMenu("Trigger", $aMenuItem[2])
    $aMenuItem[17] = GUICtrlCreateMenuItem("Neu", $aMenuItem[16])
    GUICtrlSetOnEvent(-1, "MenuItem_Trigger_New")
    $aMenuItem[18] = GUICtrlCreateMenuItem("Ändern", $aMenuItem[16])
    GUICtrlSetOnEvent(-1, "MenuItem_Trigger_Chg")
    $aMenuItem[19] = GUICtrlCreateMenuItem("Löschen", $aMenuItem[16])
    GUICtrlSetOnEvent(-1, "MenuItem_Trigger_Del")
    $aMenuItem[3] = GUICtrlCreateMenu("Ansicht")
    $aMenuItem[20] = GUICtrlCreateMenuItem("alles Ausklappen", $aMenuItem[3])
    GUICtrlSetOnEvent(-1, "MenuItem_Expand")
    $aMenuItem[21] = GUICtrlCreateMenuItem("alles Einklappen", $aMenuItem[3])
    GUICtrlSetOnEvent(-1, "MenuItem_Collapse")

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

    $Tab1 = GUICtrlCreateTab(264, 8, 698, 457)
    $TabSheet1 = GUICtrlCreateTabItem("Daten bearbeiten")
    $cbTable = GUICtrlCreateCombo("", 320, 47, 231, 25)
    GUICtrlSetOnEvent(-1, '_TableChg')
    $Label1 = GUICtrlCreateLabel("Tabelle", 274, 50, 39, 17)
    $Group1 = GUICtrlCreateGroup(" Filtern ", 617, 34, 335, 73)
    $Label2 = GUICtrlCreateLabel("Feld", 625, 51, 24, 17)
    $Label3 = GUICtrlCreateLabel("Ausdruck", 625, 79, 45, 17)
    $cbField = GUICtrlCreateCombo("", 675, 48, 220, 25)
    GUICtrlSetOnEvent(-1, '_FieldChg')
    $inFilter = GUICtrlCreateInput("", 675, 75, 220, 21)
    $bFilter = GUICtrlCreateButton("Filtern", 903, 63, 41, 20, 0)
    GUICtrlSetOnEvent(-1, "bFilterClick")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $b1st = GUICtrlCreateButton("<<", 274, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "b1stClick")
    GUICtrlSetTip(-1, 'Erster DS')
    $bPrev = GUICtrlCreateButton("<", 300, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bPrevClick")
    GUICtrlSetTip(-1, 'Voriger DS')
    $bNext = GUICtrlCreateButton(">", 326, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bNextClick")
    GUICtrlSetTip(-1, 'Nächster DS')
    $bLast = GUICtrlCreateButton(">>", 352, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bLastClick")
    GUICtrlSetTip(-1, 'Letzter DS')
    $bNew = GUICtrlCreateButton("+", 387, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bNewClick")
    GUICtrlSetTip(-1, 'Neuer DS')
    $bDel = GUICtrlCreateButton("-", 413, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bDelClick")
    GUICtrlSetTip(-1, 'DS Löschen')
    $bEdit = GUICtrlCreateButton("B", 448, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bEditClick")
    GUICtrlSetTip(-1, 'DS Bearbeiten')
    $bSave = GUICtrlCreateButton("S", 474, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bSaveClick")
    GUICtrlSetTip(-1, 'DS Speichern')
    $bEscChg = GUICtrlCreateButton("V", 500, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bEscChgClick")
    GUICtrlSetTip(-1, 'Änderungen Verwerfen')
    $bUpdate = GUICtrlCreateButton("A", 526, 82, 25, 25, 0)
    GUICtrlSetOnEvent(-1, "bUpdateClick")
    GUICtrlSetTip(-1, 'Aktualisieren')
    $ListView1 = GUICtrlCreateListView("", 272, 112, 680, 345, $LVS_REPORT, $LVS_EX_GRIDLINES)
    GUICtrlSetOnEvent(-1, "ListView1Click")
    GUICtrlCreateTabItem("")
    $TabSheet2 = GUICtrlCreateTabItem("SQL")
    $EditSQL = GUICtrlCreateEdit('', 272, 112, 680, 345)
    GUICtrlCreateTabItem("")
    $hStatus = _GUICtrlStatusBar_Create($GUI_Main, $aParts)
    _GUICtrlStatusBar_SetBkColor($hStatus, 0xE6E0B0) ; Color als BGR

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

    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 186) ; Datenbank
    _GUIImageList_AddIcon($hImage, "shell32.dll", 98) ; Tabelle allg.
    _GUIImageList_AddIcon($hImage, "shell32.dll", 96) ; TabellenNamen
    _GUIImageList_AddIcon($hImage, "shell32.dll", 36) ; FelderOrdner
    _GUIImageList_AddIcon($hImage, "shell32.dll", 24) ; Felder
    _GUIImageList_AddIcon($hImage, "shell32.dll", 104) ; IndexOrdner
    _GUIImageList_AddIcon($hImage, "shell32.dll", 44) ; Indizes
    _GUIImageList_AddIcon($hImage, "shell32.dll", 125) ; TriggerOrdner
    _GUIImageList_AddIcon($hImage, "shell32.dll", 65) ; Trigger
    _GUICtrlTreeView_SetNormalImageList($TreeView1, $hImage)

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

    _DisableItems('1,2,3,6,7')
    If $currCountFiles = 0 Then GUICtrlSetState($aMenuItem[22], $GUI_DISABLE)
    GUISetState(@SW_SHOW, $GUI_Main)

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

    _GUICtrlStatusBar_SetIcon ($hStatus, 0, 47, "shell32.dll")
    _GUICtrlStatusBar_SetText ($hStatus, ">> Keine Datenbank geöffnet <<", 1)

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

    _SQLite_Startup()
    If @error Then Exit MsgBox(262192, 'Fehler', 'SQLite.DLL konnte nicht initialisiert werden!')

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

    If $aItemID[0][0] <> -1 Then
    _Array2DDelete($aRecentFiles, 0)
    For $i = 0 To UBound($aRecentFiles) -1
    $split = _StringSplitOnce($aRecentFiles[$i][1], '\', -1)
    $aItemID[$i][0] = GUICtrlCreateMenuItem($split[1], $aMenuItem[22])
    GUICtrlSetOnEvent(-1, '_itemClick')
    $aItemID[$i][1] = $i
    Next
    EndIf

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

    While 1
    Sleep(100)
    WEnd

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

    Func GUIMainClose()
    IniWrite($INI, 'settings', 'last_folder', $currFolder)
    If $hSQL > 0 Then _SQLite_Close($hSQL)
    _SQLite_Shutdown()
    Exit
    EndFunc

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

    Func MenuItem_DB_New()
    GUISetState(@SW_HIDE, $GUI_Main)
    $path = FileSaveDialog( "Bitte einen Dateinamen festlegen.", $MyDocsFolder, "SQLite-DB (*.db)", 2)
    If @error Then Return MsgBox(262192, 'Achtung', 'Kein Dateiname festgelegt!')
    If $hSQL > 0 Then _SQLite_Close($hSQL) ; evtl. offene DB schließen
    GUICtrlSetData($EditSQL, '')
    _GUICtrlTreeView_DeleteAll($TreeView1)
    _GUICtrlStatusBar_SetIcon ($hStatus, 0, 47, "shell32.dll")
    _GUICtrlStatusBar_SetText ($hStatus, ">> Keine Datenbank geöffnet <<", 1)
    GUISetState(@SW_SHOW, $GUI_Main)
    If Not StringRight($path, 3) = '.db' Then $path &= '.db'
    If $currCountFiles < $maxFiles Then ReDim $aMenuItem[UBound($aMenuItem)+1]
    _RecentFiles($INI, $aRecentFiles, $path, $currCountFiles, $maxFiles, 0)
    ReDim $aItemID[UBound($aRecentFiles)][2]
    _ResetRecentFiles()
    $hSQL = _SQLite_Open($path)
    _EnableItems('3,6,7')
    EndFunc

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

    Func MenuItem_DB_Open()
    _OpenDB()
    EndFunc

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

    Func _OpenDB($path = -1)
    If $path = -1 Then
    GUISetState(@SW_HIDE, $GUI_Main)
    $path = FileOpenDialog('Bitte Datenbank auswählen', $currFolder, "SQLite-DB (*.db)", 3)
    If @error Then Return MsgBox(262192, 'Achtung', 'Keine Datenbank gewählt!')
    GUISetState(@SW_SHOW, $GUI_Main)
    EndIf
    If $hSQL > 0 Then
    _SQLite_Close($hSQL) ; evtl. offene DB schließen
    _clear()
    EndIf
    GUICtrlSetData($EditSQL, '')
    _GUICtrlTreeView_DeleteAll($TreeView1)
    _GUICtrlStatusBar_SetIcon ($hStatus, 0, 47, "shell32.dll")
    _GUICtrlStatusBar_SetText ($hStatus, ">> Keine Datenbank geöffnet <<", 1)
    $splitPath = _StringSplitOnce($path, '\', -1)
    If Not @error Then
    $currFolder = $splitPath[0]
    _GUICtrlTreeView_BeginUpdate($TreeView1)
    $tvi_DB = _GUICtrlTreeView_Add($TreeView1, 0, StringUpper(StringTrimRight($splitPath[1], 3)), 0, 0)
    _GUICtrlTreeView_SetBold($TreeView1, $tvi_DB)
    _GUICtrlTreeView_EndUpdate($TreeView1)
    EndIf
    $hSQL = _SQLite_Open($path)
    If @error Then
    Return MsgBox(262192, 'Achtung', 'Datenbank konnte nicht geöffnet werden!')
    _GUICtrlTreeView_DeleteAll($TreeView1)
    Else
    If $currCountFiles < $maxFiles Then ReDim $aMenuItem[UBound($aMenuItem)+1]
    _RecentFiles($INI, $aRecentFiles, $path, $currCountFiles, $maxFiles, 0)
    ReDim $aItemID[UBound($aRecentFiles)][2]
    _ResetRecentFiles()
    _LoadTreeView()
    _TableChg()
    _EnableItems('3,6,7')
    _GUICtrlStatusBar_SetIcon ($hStatus, 0, 13, "shell32.dll")
    _GUICtrlStatusBar_SetText ($hStatus, "Geöffnete Datenbank: " & $path, 1)
    EndIf
    EndFunc

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

    Func _itemClick()
    Local $index = _ArraySearch($aItemID, @GUI_CtrlId, 0, 0, 0, 0, 1, 0)
    _OpenDB($aRecentFiles[$index][1])
    EndFunc

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

    Func _ResetRecentFiles()
    For $i = 0 To UBound($aItemID) -1
    GUICtrlDelete($aItemID[$i][0])
    Next
    For $i = 0 To UBound($aRecentFiles) -1
    $split = _StringSplitOnce($aRecentFiles[$i][1], '\', -1)
    $aItemID[$i][0] = GUICtrlCreateMenuItem($split[1], $aMenuItem[22])
    GUICtrlSetOnEvent(-1, '_itemClick')
    $aItemID[$i][1] = $i
    Next
    EndFunc

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

    Func MenuItem_DB_Clean()
    ;~ 'VACUUM'
    EndFunc

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

    Func MenuItem_DB_Close()
    _clear()
    If $hSQL > 0 Then _SQLite_Close($hSQL)
    _GUICtrlStatusBar_SetIcon ($hStatus, 0, 47, "shell32.dll")
    _GUICtrlStatusBar_SetText ($hStatus, ">> Keine Datenbank geöffnet <<", 1)
    _DisableItems('1,2,3,6,7')
    EndFunc

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

    Func _clear()
    GUICtrlSetData($EditSQL, '')
    ReDim $aTable[1]
    $aTable[0] = ''
    ReDim $aStruct[1][2]
    $aStruct[0][0] = ''
    _GUICtrlTreeView_DeleteAll($TreeView1)
    _GUICtrlComboBox_ResetContent($cbTable)
    _GUICtrlComboBox_ResetContent($cbField)
    EndFunc

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

    Func MenuItem_Table_New()
    ; Einblenden GUI_Table
    MsgBox(262192, 'Table_New', 'noch nicht besetzt')
    EndFunc

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

    Func MenuItem_Table_Chg()
    ; Einblenden GUI_Table mit Tabellenauswahl
    MsgBox(262192, 'Table_Chg', 'noch nicht besetzt')
    EndFunc

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

    Func MenuItem_Table_Del()
    ; Einblenden GUI_Table mit Tabellenauswahl
    MsgBox(262192, 'Table_Del', 'noch nicht besetzt')
    EndFunc

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

    Func MenuItem_Index_New()
    ; Einblenden GUI_Index mit Tabellenauswahl, Feldliste, Indextypauswahl
    MsgBox(262192, 'Index_New', 'noch nicht besetzt')
    EndFunc

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

    Func MenuItem_Index_Chg()
    ; Einblenden GUI_Index mit Indexauswahl, Indextypauswahl
    MsgBox(262192, 'Index_Chg', 'noch nicht besetzt')
    EndFunc

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

    Func MenuItem_Index_Del()
    ; Einblenden GUI_Index mit Indexauswahl
    MsgBox(262192, 'Index_Del', 'noch nicht besetzt')
    EndFunc

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

    Func MenuItem_Trigger_New()
    ; Einblenden GUI_Trigger m. allen Optionen
    MsgBox(262192, 'Trigger_New', 'noch nicht besetzt')
    EndFunc

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

    Func MenuItem_Trigger_Chg()
    ; Einblenden GUI_Trigger mit Triggerauswahl, Editierfeld
    MsgBox(262192, 'Trigger_Chg', 'noch nicht besetzt')
    EndFunc

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

    Func MenuItem_Trigger_Del()
    ; Einblenden GUI_Trigger mit Triggerauswahl
    MsgBox(262192, 'Trigger_Del', 'noch nicht besetzt')
    EndFunc
    #cs
    CREATE TRIGGER [TBLNEWTEST_JAHRE_UPDATE_JAHRE]
    AFTER UPDATE OF [Jahre]
    ON [tblNewTest]
    FOR EACH ROW WHEN 50
    BEGIN

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

    UPDATE tblNewTest SET 'Jahre' = 100;

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

    END;

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

    * CREATE TRIGGER
    sql-statement ::= CREATE [TEMP | TEMPORARY] TRIGGER [IF NOT EXISTS] trigger-name [ BEFORE | AFTER ]
    database-event ON [database-name .] table-name
    trigger-action
    sql-statement ::= CREATE [TEMP | TEMPORARY] TRIGGER [IF NOT EXISTS] trigger-name INSTEAD OF
    database-event ON [database-name .] view-name
    trigger-action
    database-event ::= DELETE |
    INSERT |
    UPDATE |
    UPDATE OF column-list
    trigger-action ::= [ FOR EACH ROW ] [ WHEN expression ]
    BEGIN
    trigger-step ; [ trigger-step ; ]*
    END
    trigger-step ::= update-statement | insert-statement |
    delete-statement | select-statement
    The CREATE TRIGGER statement is used to add triggers to the database schema. Triggers are database operations (the
    trigger-action) that are automatically performed when a specified database event (the database-event) occurs.
    A trigger may be specified to fire whenever a DELETE, INSERT or UPDATE of a particular database table occurs, or
    whenever an UPDATE of one or more specified columns of a table are updated.
    At this time SQLite supports only FOR EACH ROW triggers, not FOR EACH STATEMENT triggers. Hence explicitly specifying
    FOR EACH ROW is optional. FOR EACH ROW implies that the SQL statements specified as trigger-steps may be executed
    (depending on the WHEN clause) for each database row being inserted, updated or deleted by the statement causing the
    trigger to fire.
    Both the WHEN clause and the trigger-steps may access elements of the row being inserted, deleted or updated using
    references of the form "NEW.column-name" and "OLD.column-name", where column-name is the name of a column from the
    table that the trigger is associated with. OLD and NEW references may only be used in triggers on trigger-events for
    which they are relevant, as follows:
    INSERT NEW references are valid
    UPDATE NEW and OLD references are valid
    DELETE OLD references are valid
    If a WHEN clause is supplied, the SQL statements specified as trigger-steps are only executed for rows for which the
    WHEN clause is true. If no WHEN clause is supplied, the SQL statements are executed for all rows.
    The specified trigger-time determines when the trigger-steps will be executed relative to the insertion, modification
    or removal of the associated row.
    An ON CONFLICT clause may be specified as part of an UPDATE or INSERT trigger-step. However if an ON CONFLICT clause
    is specified as part of the statement causing the trigger to fire, then this conflict handling policy is used instead.
    Triggers are automatically dropped when the table that they are associated with is dropped.
    Triggers may be created on views, as well as ordinary tables, by specifying INSTEAD OF in the CREATE TRIGGER statement.
    If one or more ON INSERT, ON DELETE or ON UPDATE triggers are defined on a view, then it is not an error to execute an
    INSERT, DELETE or UPDATE statement on the view, respectively. Thereafter, executing an INSERT, DELETE or UPDATE on the view causes the associated triggers to fire. The real tables underlying the view are not modified (except possibly explicitly, by a trigger program).
    Example:
    Assuming that customer records are stored in the "customers" table, and that order records are stored in the "orders"
    table, the following trigger ensures that all associated orders are redirected when a customer changes his or her
    address:
    CREATE TRIGGER update_customer_address UPDATE OF address ON customers
    BEGIN
    UPDATE orders SET address = new.address WHERE customer_name = old.name;
    END;
    With this trigger installed, executing the statement:
    UPDATE customers SET address = '1 Main St.' WHERE name = 'Jack Jones';
    causes the following to be automatically executed:
    UPDATE orders SET address = '1 Main St.' WHERE customer_name = 'Jack Jones';
    Note that currently, triggers may behave oddly when created on tables with INTEGER PRIMARY KEY fields. If a BEFORE
    trigger program modifies the INTEGER PRIMARY KEY field of a row that will be subsequently updated by the statement
    that causes the trigger to fire, then the update may not occur. The workaround is to declare the table with a
    PRIMARY KEY column instead of an INTEGER PRIMARY KEY column.
    A special SQL function RAISE() may be used within a trigger-program, with the following syntax
    raise-function ::= RAISE ( ABORT, error-message ) |
    RAISE ( FAIL, error-message ) |
    RAISE ( ROLLBACK, error-message ) |
    RAISE ( IGNORE )
    When one of the first three forms is called during trigger-program execution, the specified ON CONFLICT processing is
    performed (either ABORT, FAIL or ROLLBACK) and the current query terminates. An error code of SQLITE_CONSTRAINT is
    returned to the user, along with the specified error message.
    When RAISE(IGNORE) is called, the remainder of the current trigger program, the statement that caused the trigger
    program to execute and any subsequent trigger programs that would of been executed are abandoned. No database
    changes are rolled back. If the statement that caused the trigger program to execute is itself part of a trigger
    program, then that trigger program resumes execution at the beginning of the next step.
    Triggers are removed using the DROP TRIGGER statement.
    #ce

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

    Func MenuItem_Expand()
    _GUICtrlTreeView_Expand($TreeView1)
    EndFunc

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

    Func MenuItem_Collapse()
    _GUICtrlTreeView_Expand($TreeView1, 0, False)
    EndFunc

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

    Func CM_ExpandSubs()
    Local $hCurrentItem = _GUICtrlTreeView_GetSelection($TreeView1)
    If $hCurrentItem = 0 Then Return
    _GUICtrlTreeView_Expand($TreeView1, $hCurrentItem)
    EndFunc

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

    Func CM_CollapseSubs()
    Local $hCurrentItem = _GUICtrlTreeView_GetSelection($TreeView1)
    If $hCurrentItem = 0 Then Return
    _GUICtrlTreeView_Expand($TreeView1, $hCurrentItem, False)
    EndFunc

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

    Func _GUICtrlTreeView_ExpandOneLevel($hTreeView, $hParentItem=0)
    If $hParentItem < 1 Then
    Local $hCurrentItem = _GUICtrlTreeView_GetFirstItem($hTreeView)
    Else
    Local $hCurrentItem = $hParentItem
    EndIf
    If $hCurrentItem = 0 Then Return SetError(1)
    Local $hChild
    Local $countChild = _GUICtrlTreeView_GetChildCount($hTreeView, $hCurrentItem)
    If $countChild = 0 Then Return SetError(2)
    _GUICtrlTreeView_Expand($hTreeView, $hCurrentItem)
    For $i = 1 To $countChild
    If $i = 1 Then
    $hChild = _GUICtrlTreeView_GetFirstChild($hTreeView, $hCurrentItem)
    Else
    $hChild = _GUICtrlTreeView_GetNextSibling($hTreeView, $hChild)
    EndIf
    If _GUICtrlTreeView_GetChildren($hTreeView, $hChild) Then _GUICtrlTreeView_Expand($hTreeView, $hChild, False)
    Next
    EndFunc ;==>_GUICtrlTreeView_ExpandOneLevel

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

    Func b1stClick()

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

    EndFunc

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

    Func bPrevClick()

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

    EndFunc

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

    Func bNextClick()

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

    EndFunc

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

    Func bLastClick()

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

    EndFunc

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

    Func bNewClick()

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

    EndFunc

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

    Func bDelClick()

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

    EndFunc

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

    Func bEditClick()

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

    EndFunc

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

    Func bSaveClick()

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

    EndFunc

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

    Func bEscChgClick()

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

    EndFunc

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

    Func bUpdateClick()

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

    EndFunc

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

    Func bFilterClick()

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

    EndFunc

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

    Func TreeView1Click()

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

    EndFunc

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

    Func ListView1Click()

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

    EndFunc

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

    Func _FillListView1($ARRAY)
    GUISetState(@SW_LOCK)
    GUICtrlDelete($ListView1)
    Local $Header = '', $ub2nd = UBound($ARRAY, 2), $colWidth = 60
    If $ub2nd > 1 Then
    If 680/$ub2nd > 60 Then $colWidth = Int(680/$ub2nd)
    For $j = 0 To $ub2nd -1 ; Header
    $Header &= $ARRAY[0][$j] & '|'
    Next
    Else
    If 680/UBound($ARRAY) > 60 Then $colWidth = Int(680/UBound($ARRAY))
    For $i = 0 To UBound($ARRAY) -1
    $Header &= $ARRAY[$i] & '|'
    Next
    EndIf
    $Header = StringTrimRight($Header, 1)
    $ListView1 = GUICtrlCreateListView($Header, 272, 112, 680, 345, $LVS_REPORT, $LVS_EX_GRIDLINES)
    For $i = 0 To UBound($ARRAY, 2) -2
    GUICtrlSendMsg($ListView1, 0x101E, $i, $colWidth)
    Next
    GUICtrlSendMsg(-1, 0x101E, UBound($ARRAY, 2)-1, $LVSCW_AUTOSIZE_USEHEADER)
    Local $item = ''
    For $i = 1 To UBound($ARRAY) -1
    For $k = 0 To UBound($ARRAY, 2) -1
    $item &= $ARRAY[$i][$k] & '|'
    Next
    GUICtrlCreateListViewItem($item, $ListView1)
    $item = ''
    Next
    GUISetState(@SW_UNLOCK)
    _GUICtrlStatusBar_SetIcon ($hStatus, 0, 13, "shell32.dll")
    EndFunc

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

    Func _SelAllFromTable()
    Local $aSelect
    If _SQLite_GetTable2d($hSQL, "SELECT * FROM " & GUICtrlRead($cbTable) & ";", $aSelect, $iRows, $iColumns) = $SQLITE_OK Then
    If Not IsArray($aSelect) Then ; leere Tabelle
    Local $aSelect[1]
    For $i = 0 To UBound($aStruct) -1
    If $aStruct[$i][0] = GUICtrlRead($cbTable) Then
    If $aSelect[UBound($aSelect)-1] <> '' Then ReDim $aSelect[UBound($aSelect)+1]
    $aSelect[UBound($aSelect)-1] = $aStruct[$i][1]
    EndIf
    Next
    EndIf
    _FillListView1($aSelect)
    EndIf
    EndFunc

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

    Func _DisableItems($sITEM)
    Local $var = StringSplit($sITEM, ',')
    For $i = 1 To UBound($var) -1
    GUICtrlSetState($aMenuItem[$var[$i]], $GUI_DISABLE)
    Next
    EndFunc

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

    Func _EnableItems($sITEM)
    Local $var = StringSplit($sITEM, ',')
    For $i = 1 To UBound($var) -1
    GUICtrlSetState($aMenuItem[$var[$i]], $GUI_ENABLE)
    Next
    EndFunc

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

    ; alle Indizes abfragen: "SELECT name FROM sqlite_master WHERE type='index' ORDER BY name"
    ; Indexliste f. bestimmte Tabelle: "PRAGMA index_list(table-name);"
    ; you can use the special typeof() SQL function to determine what the datatype is: "SELECT TYPEOF(Feldname)"
    Func _LoadTreeView() ; und Combo Tabelle
    _EnableItems('1,2')
    Local $aResultIndex, $aResultTrigger, $aNames, $ID_Table, $ID_Trigger, $ID_Field, $ID_Index, $tmp, $done = False
    _SQLite_GetTable($hSQL, "SELECT name FROM sqlite_master WHERE type='trigger' ORDER BY name", $aResultTrigger, $iRows, $iColumns)
    _SQLite_GetTable($hSQL, "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;", $aResult, $iRows, $iColumns)
    ReDim $a_ID_Table[$iRows]
    If $iRows > 1 Then
    _GUICtrlTreeView_BeginUpdate($TreeView1)
    $ID_Table = _GUICtrlTreeView_Add($TreeView1, 0, 'Tabellen', 1, 1)
    _GUICtrlTreeView_SetBold($TreeView1, $ID_Table)
    If IsArray($aResultTrigger) Then
    For $k = 2 To UBound($aResultTrigger) -1
    $ID_Trigger = _GUICtrlTreeView_Add($TreeView1, 0, 'Trigger', 7, 7)
    _GUICtrlTreeView_SetBold($TreeView1, $ID_Trigger)
    _GUICtrlTreeView_AddChild($TreeView1, $ID_Trigger, StringUpper($aResultTrigger[$k]), 8, 8)
    Next
    EndIf
    For $i = 0 To UBound($a_ID_Table) -1
    If $aTable[UBound($aTable)-1] <> '' Then ReDim $aTable[UBound($aTable)+1]
    $aTable[UBound($aTable)-1] = StringUpper($aResult[$i+2])
    $a_ID_Table[$i] = _GUICtrlTreeView_AddChild($TreeView1, $ID_Table, StringUpper($aResult[$i+2]), 2, 2)
    _GUICtrlTreeView_SetBold($TreeView1, $a_ID_Table[$i])
    If _SQlite_Query ($hSQL, "SELECT * FROM " & $aResult[$i+2] & ";", $hQuery) = $SQLITE_OK Then
    $ID_Field = _GUICtrlTreeView_AddChild($TreeView1, $a_ID_Table[$i], 'Felder', 3, 3)
    _GUICtrlTreeView_SetBold($TreeView1, $ID_Field)
    _SQLite_FetchNames ($hQuery, $aNames) ; Spalten/Feldnamen auslesen
    For $k = 0 To UBound($aNames) -1
    _GUICtrlTreeView_AddChild($TreeView1, $ID_Field, StringUpper($aNames[$k]), 4, 4)
    ; in StrukturArray eintragen:
    If $aStruct[UBound($aStruct)-1][0] <> '' Then ReDim $aStruct[UBound($aStruct)+1][2]
    $aStruct[UBound($aStruct)-1][0] = StringUpper($aResult[$i+2])
    $aStruct[UBound($aStruct)-1][1] = StringUpper($aNames[$k])
    Next
    EndIf
    _SQLite_QueryFinalize($hQuery)
    If _SQLite_GetTable2d ($hSQL, "PRAGMA index_list(" & $aResult[$i+2] & ");", $aResultIndex, $iRows, $iColumns) = $SQLITE_OK Then
    If IsArray($aResultIndex) Then
    _ArraySort($aResultIndex, 0, 1, 0, 1)
    For $k = 1 To UBound($aResultIndex) -1
    If Not $done Then
    $ID_Index = _GUICtrlTreeView_AddChild($TreeView1, $a_ID_Table[$i], 'Indizes', 5, 5)
    _GUICtrlTreeView_SetBold($TreeView1, $ID_Index)
    $done = True
    EndIf
    _GUICtrlTreeView_AddChild($TreeView1, $ID_Index, StringUpper($aResultIndex[$k][1]), 6, 6)
    ;~ Local $aResultIndexProperty
    ;~ _SQLite_GetTable2d ($hSQL,"PRAGMA index_info(" & $aResultIndex[$k][1] & ");", $aResultIndexProperty, $iRows, $iColumns) ; Test
    ;~ If IsArray($aResultIndexProperty) Then _ArrayDisplay($aResultIndexProperty, $aResultIndex[$k][1])
    Next
    EndIf
    EndIf
    $aResultIndex = 0
    $done = False
    Next
    ; #############################################################################################
    Local $aDB ; Abfrage Original-SQL-Code
    _SQLite_GetTable ($hSQL,"SELECT sql FROM " & _
    "(SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master) " & _
    "WHERE type!='meta' ORDER BY tbl_name, type DESC, name", $aDB, $iRows, $iColumns)

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

    Local $aTableSQL[1][3], $aIndexSQL[1][2], $aTriggerSQL[1][2], $ret, $ret1, $sApp, $sTmp
    If IsArray($aDB) Then
    ;~ _ArrayDisplay($aDB)
    For $q = 2 To $iRows
    $sApp = ''
    ;~ ConsoleWrite('vor: ' & $aDB[$q] & @CRLF)
    $aDB[$q] = StringRegExpReplace($aDB[$q], '\r\n', ',')
    ;~ ConsoleWrite('nach: ' & $aDB[$q] & @CRLF)
    If StringInStr($aDB[$q], 'CREATE TABLE', 1) Then
    ; Prüfen ob Tabellennamen statt in Klammern in Quotierung und mit Klammern ersetzen
    If StringRegExp($aDB[$q], "CREATE TABLE \x22") Or StringRegExp($aDB[$q], "CREATE TABLE \x27") Then
    If StringRegExp($aDB[$q], "CREATE TABLE \x22") Then ; "=\x22=ASCII(34) | '=\x27=ASCII(39)
    Local $sAscii = 34
    ElseIf StringRegExp($aDB[$q], "CREATE TABLE \x27") Then
    Local $sAscii = 39
    EndIf
    $aDB[$q] = StringReplace(StringReplace($aDB[$q], Chr($sAscii), "[", 1), Chr($sAscii), "]", 1)
    ;~ ConsoleWrite($s & @CRLF)
    $ret = StringRegExp($aDB[$q], "(?<=\().+(?=\))", 3)
    If IsArray($ret) Then
    ;~ ConsoleWrite($ret[0] & @CRLF)
    Do
    $ret[0] = StringReplace(StringReplace($ret[0], Chr($sAscii), "[", 1), Chr($sAscii), "]", 1)
    Until @extended = 0
    $aDB[$q] = StringRegExpReplace($aDB[$q], "(?<=\().+(?=\))", $ret[0])
    ;~ ConsoleWrite($aDB[$q] & @CRLF)
    EndIf
    EndIf
    If $aTableSQL[UBound($aTableSQL)-1][0] <> '' Then ReDim $aTableSQL[UBound($aTableSQL)+1][2]
    $ret = StringRegExp($aDB[$q], "((?<=CREATE TABLE (\[|\x22|\x27))\w+)", 3)
    If IsArray($ret) Then $aTableSQL[UBound($aTableSQL)-1][0] = $ret[0] ; Tabellenname ######
    $ret = StringRegExp($aDB[$q], "((?<=\().*(?=\)))", 3)
    If IsArray($ret) Then $aTableSQL[UBound($aTableSQL)-1][1] = $ret[0] ; Feldnamen/Typ/Länge etc. ######
    ElseIf StringInStr($aDB[$q], 'CREATE INDEX', 1) Then
    If $aIndexSQL[UBound($aIndexSQL)-1][0] <> '' Then ReDim $aIndexSQL[UBound($aIndexSQL)+1][2]
    $ret = StringRegExp($aDB[$q], "((?<=CREATE INDEX \[)\w+)", 3)
    If IsArray($ret) Then $aIndexSQL[UBound($aIndexSQL)-1][0] = $ret[0] ; Indexname ######
    $ret = StringRegExpReplace($aDB[$q], "(CREATE INDEX \[\w+\] )", '')
    $aIndexSQL[UBound($aIndexSQL)-1][1] = $ret ; Indexbeschreibung ######
    EndIf
    ;~ ConsoleWrite($q-1 & ': ' & $aDB[$q] & @CRLF)

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

    ; Formatierung String für SQL-Edit
    $ret = StringRegExp($aDB[$q], '(CREATE \w+ \[\w+\] ON \[\w+\]|CREATE \w+ \[\w+\] [\w\s]+\[\w+\] +ON \[\w+\]|CREATE \w+ \[\w+\])', 3) ; "CREATE ***** "
    If IsArray($ret) Then $sApp &= $ret[0] & ' (' & @CRLF ; CREATE - Typ
    ; Trigger formatiert darstellen - ?? ##########################################
    If StringInStr($aDB[$q], 'TRIGGER') Then ; Darstellung noch falsch
    $ret = StringTrimRight(StringTrimLeft($aDB[$q], StringLen($ret[0])+1), 1) ; restlicher Bestandteil der Zeile
    $sApp &= @TAB & $ret & @CRLF
    Else
    If IsArray($ret) Then
    $ret = StringTrimRight(StringTrimLeft($aDB[$q], StringLen($ret[0])+2), 1) ; restlicher Bestandteil der Zeile
    If $ret <> '' Then
    $sTmp = StringSplit($ret, ',')
    For $s = 1 To UBound($sTmp) -1
    $sApp &= @TAB & $sTmp[$s] & @CRLF
    Next
    EndIf
    EndIf
    EndIf
    _GUICtrlEdit_AppendText($EditSQL, $sApp & ')' & @CRLF & @CRLF)
    Next
    EndIf
    ; Daten aus sqlite_master aufbereiten ==> WAS TUN - wenn keine Feldbeschreibung (Typ,Länge) ??
    ; CREATE TABLE [name] ==> mit Pattern "((?<=CREATE TABLE (\[|\x22|\x27))\w+)" Tabellenname
    ; (feld beschreibung) ==> mit Pattern "((?<=\().*(?=\)))"
    ; ==> separieren ==> StringSplit('string', ',')

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

    ;~ If IsArray($aDB) Then _ArrayDisplay($aDB)
    ; #############################################################################################
    _GUICtrlTreeView_ExpandOneLevel($TreeView1, $ID_Table)
    _GUICtrlTreeView_EndUpdate($TreeView1)
    EndIf
    ; Combo Tabelle füllen:
    _GUICtrlComboBox_BeginUpdate($cbTable)
    _GUICtrlComboBox_ResetContent($cbTable)
    For $i = 0 To UBound($aTable) -1
    _GUICtrlComboBox_AddString($cbTable, $aTable[$i])
    Next
    _GUICtrlComboBox_EndUpdate($cbTable)
    _GUICtrlComboBox_SetCurSel($cbTable, 0)
    _SetFields()
    EndFunc ;==>_LoadTreeView

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

    Func _SetFields()
    _SelAllFromTable()
    Local $table = GUICtrlRead($cbTable)
    _GUICtrlComboBox_BeginUpdate($cbField)
    _GUICtrlComboBox_ResetContent($cbField)
    For $i = 0 To UBound($aStruct) -1
    If $aStruct[$i][0] = $table Then _GUICtrlComboBox_AddString($cbField, $aStruct[$i][1])
    Next
    _GUICtrlComboBox_EndUpdate($cbField)
    _GUICtrlComboBox_SetCurSel($cbField, 0)
    EndFunc

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

    Func _TableChg()
    _SetFields()
    _GUICtrlTreeView_Expand($TreeView1, $LastTbl, False)
    $LastTbl = _Get_Curr_TblID()
    _GUICtrlTreeView_SelectItem($TreeView1, $LastTbl)
    _GUICtrlTreeView_Expand($TreeView1, $LastTbl)
    EndFunc

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

    Func _FieldChg()

    EndFunc

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

    Func _Get_Curr_TblID()
    For $i = 0 To UBound($a_ID_Table) -1
    If _GUICtrlTreeView_GetText($TreeView1, $a_ID_Table[$i]) = GUICtrlRead($cbTable) Then _
    Return $a_ID_Table[$i]
    Next
    EndFunc

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

    Func _cb($aRow)
    For $s In $aRow
    ConsoleWrite($s & @TAB)
    Next
    ConsoleWrite(@LF)
    ; Return $SQLITE_ABORT ; Would Abort the process and trigger an @error in _SQLite_Exec()
    EndFunc

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

    Func _SQLite_INSERT($sTable, $saValues, $Delim=',')
    Local $sInsert = ''
    If Not IsArray($saValues) Then
    Local $aValues[1] = [$saValues]
    Else
    Local $aValues = $saValues
    EndIf
    For $i = 0 To UBound($aValues) -1
    Local $splitVal = StringSplit($aValues[$i], $Delim)
    $sInsert &= "INSERT INTO " & $sTable & " VALUES ("
    For $k = 1 To UBound($splitVal) -1
    $sInsert &= "'" & StringStripWS($splitVal[$k], 3) & "'" & ','
    Next
    $sInsert = StringTrimRight($sInsert, 1) & ");"
    Next
    If $SQLITE_OK <> _SQLite_Exec ( -1, $sInsert ) Then
    Return SetError(1,0,1)
    Else
    Return $SQLITE_OK
    EndIf
    EndFunc ;==>_SQLite_INSERT

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

    Func _SQLite_UPDATE($sTable, $saField_Value, $sWhere=-1, $Delim=',')
    Local $sUpdate = "UPDATE " & $sTable & " SET "
    If Not IsArray($saField_Value) Then
    Local $aValues[1] = [$saField_Value]
    Else
    Local $aValues = $saField_Value
    EndIf
    For $i = 0 To UBound($aValues) -1
    Local $splitVal = StringSplit($aValues[$i], $Delim)
    $sUpdate &= StringStripWS($splitVal[1], 3) & " = '" & StringStripWS($splitVal[2], 3) & "',"
    Next
    $sUpdate = StringTrimRight($sUpdate, 1)
    If $sWhere <> -1 Then $sUpdate &= " WHERE " & $sWhere
    If $SQLITE_OK <> _SQLite_Exec ( -1, $sUpdate ) Then
    Return SetError(1,0,1)
    Else
    Return $SQLITE_OK
    EndIf
    EndFunc ;==>_SQLite_UPDATE

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

    Func _StringSplitOnce($STRING, $DELIM, $OCCURENCE=1)
    If $STRING = '' Then Return SetError(1)
    If $DELIM = '' Then Return SetError(2)
    Local $Out[2]
    Local $len = StringLen($STRING)
    Local $pos = StringInStr($STRING, $DELIM, 1, $OCCURENCE)
    If @error Then Return SetError(3)
    $Out[0] = StringLeft($STRING, $pos-1)
    $Out[1] = StringRight($STRING, $len-$pos)
    Return $Out
    EndFunc ;==>_StringSplitOnce

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

    Func _Array2DDelete(ByRef $ARRAY, $iDEL)
    Local $i, $k, $l
    If ( Not IsArray($ARRAY) ) Then
    SetError(1)
    Return 0
    EndIf
    If ( $iDEL < 0 ) Or ( $iDEL > UBound($ARRAY)-1 ) Then
    SetError(2)
    Return 0
    EndIf
    Local $UBound2nd = UBound($ARRAY,2)
    If @error = 2 Then
    Local $arTmp[UBound($ARRAY)-1]
    $k = 0
    For $i = 0 To UBound($ARRAY)-1
    If $i <> $iDEL Then
    $arTmp[$k] = $ARRAY[$i]
    $k += 1
    EndIf
    Next
    Else
    Local $arTmp[UBound($ARRAY)-1][$UBound2nd]
    $k = 0
    For $i = 0 To UBound($ARRAY)-1
    If $i <> $iDEL Then
    For $l = 0 To $UBound2nd-1
    $arTmp[$k][$l] = $ARRAY[$i][$l]
    Next
    $k += 1
    EndIf
    Next
    EndIf
    $ARRAY = $arTmp
    Return -1
    EndFunc ;==>_Array2DDelete

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

    Func _RecentFiles(ByRef $INI, ByRef $ARRAY, $FILE, ByRef $CURRCOUNT, ByRef $MAXCOUNT, $ASC=1)
    Local $index
    If UBound($ARRAY, 2) Then
    If IsNumber($ARRAY[0][0]) Then _Array2DDelete($ARRAY, 0)
    EndIf
    If $ASC = 1 Then
    If UBound($ARRAY, 2) Then
    $index = _ArraySearch($ARRAY, $FILE, 0, 0, 0, 0, 1, 1)
    If $index = -1 Then
    If $CURRCOUNT = $MAXCOUNT -1 Then
    _Array2DDelete($ARRAY, 0)
    Else
    $CURRCOUNT += 1
    IniWrite($INI, 'recent_num', 'aktuell', $CURRCOUNT)
    EndIf
    Else
    If $CURRCOUNT = 1 Then Return
    _Array2DDelete($ARRAY, $index)
    EndIf
    ReDim $ARRAY[UBound($ARRAY)+1][2]
    Else
    ReDim $ARRAY[1][2]
    EndIf
    $ARRAY[UBound($ARRAY)-1][0] = 'file'
    $ARRAY[UBound($ARRAY)-1][1] = $FILE
    Else
    If UBound($ARRAY, 2) Then
    $index = _ArraySearch($ARRAY, $FILE, 0, 0, 0, 0, 1, 1)
    If $index = -1 Then
    If $CURRCOUNT < $MAXCOUNT -1 Then
    $CURRCOUNT += 1
    IniWrite($INI, 'recent_num', 'aktuell', $CURRCOUNT)
    ReDim $ARRAY[UBound($ARRAY)+1][2]
    EndIf
    Else
    If $CURRCOUNT = 1 Then Return
    _Array2DDelete($ARRAY, $index)
    ReDim $ARRAY[UBound($ARRAY)+1][2]
    EndIf
    For $i = UBound($ARRAY)-1 To 1 Step -1
    $ARRAY[$i][0] = 'file'
    $ARRAY[$i][1] = $ARRAY[$i-1][1]
    Next
    $ARRAY[0][1] = $FILE
    Else
    ReDim $ARRAY[1][2]
    $ARRAY[UBound($ARRAY)-1][0] = 'file'
    $ARRAY[UBound($ARRAY)-1][1] = $FILE
    EndIf
    EndIf
    GUICtrlSetState($aMenuItem[22], $GUI_ENABLE)
    IniWriteSection($INI, 'recent_file', $ARRAY, 0)
    EndFunc ;==>_RecentFiles

    [/autoit]
  • Bilder wie button animieren ?

    • BugFix
    • 15. Juni 2008 um 15:00

    :D Wenn du statt +20 (das ist die Höhe des im Popup-Fenster nicht sichtbaren Titels) +200 setzt, wird während des Klicks 180 Pixel unter deinem Picture-Control eine transparente GUI erzeugt. Du hast es also nicht *iwie weggekriegt*, sondern nur verschoben. :rofl:

  • Bilder wie button animieren ?

    • BugFix
    • 15. Juni 2008 um 14:51

    Wenn du den Effekt nicht willst, kannst du die Zeilen 5,6,7,9 kpl. löschen.
    Das ist das, was ich meine - du verwendest die Dinge ohne zu wissen was du tust.

  • Picture als Button animiert

    • BugFix
    • 15. Juni 2008 um 14:48

    Spar dir diese Kommentare, die Funktion läuft auch unter Vista. Du mußt nur einen anderen Picture-Pfad angeben.
    (Wie wenig man selbst in Redmond von Vista hält, zeigt sich auch hier dran, dass auf das bisherige (in allen Windows-Varianten bestehende) System der Pfadintegrität verzichtet wurde :thumbdown: )

  • Frage zu @error

    • BugFix
    • 15. Juni 2008 um 14:42
    Zitat von m3hm3t

    Wieso -1?


    Als Vorbelegung wird ein Wert gewählt, der durch die funktionsgerechte Nutzung der Variablen (also hier Öffnen einer Datei) nicht vorkommen kann. Somit ist eindeutig: Steht noch -1 in $open, wurde keine Datei bisher geöffnet (sonst würde $open den Dateinamen enthalten).

  • Picture als Button animiert

    • BugFix
    • 15. Juni 2008 um 14:37

    Hi,
    ich habe das Bsp. gerade im Hilfeboard gebracht, möchte es aber hier nochmals anbringen.
    Standardmäßig kann ich Button mit Icon oder Bitmap versehen - aber nicht mit GIF oder JPG.
    Wer also also ein Picture-Control als Button verwendet aber nicht auf den "Klick-Effekt" verzichten möchte, kann dafür diese Funktion nutzen.
    Um den Effekt zu erreichen verschiebe ich das Picture-Control und ändere seine Größe. Außerdem lege ich für die "Klickzeit" ein transparentes Fenster auf das Control.

    _AnimButton()
    [autoit]

    #include<WindowsConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<StaticConstants.au3>
    Global $pic = @SystemDir & '\oobe\images\nextover.jpg'

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

    $gui = GUICreate("Test",Default,Default,-1,-1)
    $btnPic = GUICtrlCreatePic($pic, 30, 40, 24, 24)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $btnPic
    _AnimButton($gui, $btnPic)
    MsgBox(0, '', 'click')
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

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

    ;==================================================================================================
    ; Function Name: _AnimButton($IDgui, $IDbtn [, $delay=150])
    ; Description: animiert ein Pic, wie einen geklickten Button
    ; Parameter(s): $IDgui ID der GUI
    ; $IDbtn ID des Picture als Button
    ; optional $delay Verzögerung Zustand geklickt/nicht geklickt, Standard 150 ms
    ;==================================================================================================
    Func _AnimButton($IDgui, $IDbtn, $delay=150)
    Local $pos = ControlGetPos($IDgui, '', $IDbtn)
    Local $pWin = WinGetPos($IDgui)
    ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1]+1, $pos[2]-1, $pos[3]-1)
    Local $tmpGui = GUICreate('', $pos[2], $pos[3], $pWin[0]+$pos[0], $pWin[1]+$pos[1]+20, $WS_POPUP)
    WinSetTrans($tmpGui, '', 120)
    GUISetState(@SW_SHOW, $tmpGui)
    Sleep($delay)
    GUIDelete($tmpGui)
    ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1], $pos[2], $pos[3])
    EndFunc ;==> _AnimButton

    [/autoit]
  • Bilder wie button animieren ?

    • BugFix
    • 15. Juni 2008 um 14:27

    Na gut, einmal noch.

    Habe die Funktion mal so verändert, dass nur noch ein Picture benötigt wird. Den optischen Klick-Effekt erzeuge ich durch Verschieben und Übergrauen des Picture-Controls.

    Spoiler anzeigen
    [autoit]

    #include<WindowsConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<StaticConstants.au3>
    Global $pic = @SystemDir & '\oobe\images\nextover.jpg'

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

    $gui = GUICreate("Test",Default,Default,-1,-1)
    $btnPic = GUICtrlCreatePic($pic, 30, 40, 24, 24)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $btnPic
    _AnimButton($gui, $btnPic)
    MsgBox(0, '', 'click')
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

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

    ;==================================================================================================
    ; Function Name: _AnimButton($IDgui, $IDbtn [, $delay=150])
    ; Description: animiert ein Pic, wie einen geklickten Button
    ; Parameter(s): $IDgui ID der GUI
    ; $IDbtn ID des Picture als Button
    ; optional $delay Verzögerung Zustand geklickt/nicht geklickt, Standard 150 ms
    ;==================================================================================================
    Func _AnimButton($IDgui, $IDbtn, $delay=150)
    Local $pos = ControlGetPos($IDgui, '', $IDbtn)
    Local $pWin = WinGetPos($IDgui)
    ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1]+1, $pos[2]-1, $pos[3]-1)
    Local $tmpGui = GUICreate('', $pos[2], $pos[3], $pWin[0]+$pos[0], $pWin[1]+$pos[1]+20, $WS_POPUP)
    WinSetTrans($tmpGui, '', 120)
    GUISetState(@SW_SHOW, $tmpGui)
    Sleep($delay)
    GUIDelete($tmpGui)
    ControlMove($IDgui, '', $IDbtn, $pos[0], $pos[1], $pos[2], $pos[3])
    EndFunc ;==> _AnimButton

    [/autoit]
  • Frage zu @error

    • BugFix
    • 15. Juni 2008 um 14:00

    @m3hm3t:
    Bitte immer gleich das kpl. Skript posten, wenn man weiß, was es werden soll, kann man das ganz anders lösen.
    Das Problem war nicht die Fehlerabfrage an sich, sondern die Tatsache, dass ohne vorher eine Datei zu öffnen auch die Variable $open nicht existierte. Man muß sie also deklarieren und mit einem Vergleichswert vorbelegen um zu sehen ob eine Datei geöffnet wurde oder nicht.
    Das Deklarieren der Variablen hat nichts mit der Verwendung in der Schleife zu tun. In deinem jetzigen Skript existierte $open ja gar nicht, wenn nur Speichern gedrückt wurde.
    Ich hab dir dein Skript mal angepaßt:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #NoTrayIcon
    Global $open = -1

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

    GUICreate("Error Test", 600, 400)
    $edit = GUICtrlCreateEdit("", 0, 0, 500, 300)
    $button = GUICtrlCreateButton("Öffnen...", 200, 320, 100, 25)
    $button2 = GUICtrlCreateButton("Speichern", 350, 320, 100, 25)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button
    $open = FileOpenDialog("Öffnen", @DesktopDir, "Textdokument (*.txt)")
    $read = FileRead($open)
    GUICtrlSetData($edit, $read)
    Case $button2
    If $open <> -1 Then
    $fileopen = FileOpen($open, 2)
    FileWrite($fileopen, GUICtrlRead($edit))
    FileClose($fileopen)
    Else
    If GUICtrlRead($edit) <> '' Then ; nur wenn was im Editfeld steht
    $save = FileSaveDialog("Speichern unter...", @DesktopDir, "Textdokument (*.txt)|Alle Dateien (*.*)")
    If $save And StringRight($save, 4) <> '.txt' Then $save &= ".txt"
    FileWrite($save, (GUICtrlRead($edit)))
    EndIf
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Bilder wie button animieren ?

    • BugFix
    • 15. Juni 2008 um 12:40
    Zitat von Eistee

    nochdazu funktioniert dein script nichtmal
    da kommt nur eine gui ohne inhalt ohne buttons ohne irgendwas


    Wahrscheinlich nutzt du kein Windows sondern Vista :rofl:
    - Pfad anpassen:

    [autoit]

    ; statt
    Global $picBasic = 'C:\WINDOWS\system32\oobe\images\'
    ; ändern zu ==>
    Global $picBasic = @SystemDir & '\oobe\images\'

    [/autoit]
  • Frage zu @error

    • BugFix
    • 15. Juni 2008 um 11:37

    Die @error-Abfrage muß direkt in der Folgezeile des (möglichen) Errors gesetzt werden. Da jede weitere erfolgreiche Funktion automatisch @error = 0 zurückgibt.

    [autoit]

    $fileopen = FileOpen($open, 2)
    FileWrite($fileopen, GUICtrlRead($edit))
    ; jetzt Fehlerabfrage
    If @error Then
    $save = FileSaveDialog("Speichern unter...", @DesktopDir, "Textdokument (*.txt)|Alle Dateien (*.*)")
    If $save Then $save &=".txt"
    FileWrite($save, (GUICtrlRead($edit)))
    EndIf
    FileClose($fileopen)

    [/autoit]
  • Bilder wie button animieren ?

    • BugFix
    • 15. Juni 2008 um 11:31
    Zitat von Eistee

    und vor allem sehr unübersichtlich


    Ich glaube, du weißt nicht, was du mit diesem Satz angerichtet hast! :cursing:
    Diesen wirklich einfachen Code von mir als *sehr unübersichtlich* zu bezeichnen, betrachte ich schon als persönliche Beleidigung!!

    Vielleicht solltest du mal in Betracht ziehen, dass das *Unübersichtlichkeitsproblem* zwischen deinen Ohren sitzt. :thumbdown:
    Würdest du dir die Mühe machen, die verwendeten Funktionen in der Hilfe nachzulesen und nachzustellen, hättest du auch keine Probleme, den Code zu verstehen.

    [NB]
    User Eistee in meine Non-Support-List verschieb
    [/NB]

  • Bilder wie button animieren ?

    • BugFix
    • 15. Juni 2008 um 10:11
    Zitat von Eistee

    und die anderen raffe ich nicht


    Ich glaube, du willst es dir zu leicht machen. Du mußt natürlich den von uns gezeigten Code durcharbeiten, Funktionen, die du nicht verstehst in der Hilfe nachschlagen, solange bis dir klar ist, was dort passiert.
    Ich habs mal kommentiert. Aber meine Kommentare enthalten eigentlich nur das, was du selbst nachlesen kannst!

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<StaticConstants.au3>
    Global $picBasic = 'C:\WINDOWS\system32\oobe\images\'
    Global $pic1 = 'nextover.jpg' ; Bild f. nicht gedrückten Button
    Global $pic2 = 'nextup.jpg' ; Bild für gedrückten Button

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

    $gui = GUICreate("Test",Default,Default,-1,-1)
    $btn = GUICtrlCreatePic($picBasic & $pic1, 30, 40, 24, 24, $SS_BLACKRECT)
    GUISetState()

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

    Do
    $msg = GUIGetMsg()
    $aCursorInfo = GUIGetCursorInfo()
    Select
    Case $aCursorInfo[2] = 1 And $aCursorInfo[4] = $btn ; li. (primäre) Maustaste UND Button gedrückt
    ; AnimierFunc aufrufen (ID-GUI, ID-Btn, BildPfad-nicht-gedrückt, BildPfad-gedrückt [, optional Verzögrung])
    _AnimButton($gui, $btn, $picBasic & $pic1, $picBasic & $pic2)
    ; Code
    Case Else
    ;;
    EndSelect
    Until $msg = $GUI_EVENT_CLOSE

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

    Func _AnimButton($IDgui, ByRef $IDbtn, $picUP, $picDOWN, $delay=150)
    Local $pos = ControlGetPos($IDgui, '', $IDbtn)
    GUICtrlDelete($IDbtn)
    Local $tmpBtn = GUICtrlCreatePic($picDOWN, $pos[0], $pos[1]+1, $pos[2]-1, $pos[3]-1)
    Sleep($delay)
    GUICtrlDelete($tmpBtn)
    $IDbtn = GUICtrlCreatePic($picUP, $pos[0], $pos[1], $pos[2], $pos[3])
    EndFunc

    [/autoit]
  • Bilder wie button animieren ?

    • BugFix
    • 15. Juni 2008 um 09:55

    oder so:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<StaticConstants.au3>
    Global $picBasic = 'C:\WINDOWS\system32\oobe\images\'
    Global $pic1 = 'nextover.jpg', $pic2 = 'nextup.jpg'

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

    $gui = GUICreate("Test",Default,Default,-1,-1)
    $btn = GUICtrlCreatePic($picBasic & $pic1, 30, 40, 24, 24, $SS_BLACKRECT)
    GUISetState()

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

    Do
    $msg = GUIGetMsg()
    $aCursorInfo = GUIGetCursorInfo()
    Select
    Case $aCursorInfo[2] = 1 And $aCursorInfo[4] = $btn
    _AnimButton($gui, $btn, $picBasic & $pic1, $picBasic & $pic2)
    ; Code
    Case Else
    ;;
    EndSelect
    Until $msg = $GUI_EVENT_CLOSE

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

    Func _AnimButton($IDgui, ByRef $IDbtn, $picUP, $picDOWN, $delay=150)
    Local $pos = ControlGetPos($IDgui, '', $IDbtn)
    GUICtrlDelete($IDbtn)
    Local $tmpBtn = GUICtrlCreatePic($picDOWN, $pos[0], $pos[1]+1, $pos[2]-1, $pos[3]-1)
    Sleep($delay)
    GUICtrlDelete($tmpBtn)
    $IDbtn = GUICtrlCreatePic($picUP, $pos[0], $pos[1], $pos[2], $pos[3])
    EndFunc

    [/autoit]
  • Hello zusammen

    • BugFix
    • 14. Juni 2008 um 22:48

    Hi,
    Bot-Coding ist hier nicht gern gesehen. Aber ich hoffe, dass die vielfältigen Möglichkeiten von AutoIt dich stärker interessieren. ;)
    Also sei Willkommen in der AutoIt-Gemeinde.

  • Anfänger Programm mit GUI Refresh Problem

    • BugFix
    • 14. Juni 2008 um 10:12

    Ich würde es hier unterbringen:

    Spoiler anzeigen
    [autoit]

    Func STARTButton()
    If $openFileDialog > 0 Then
    MsgBox(0, "GUI Event", "Keine Datei Ausgewählt," & @CRLF & "Bitte wählen sie eine Datei!")
    Else
    verlauf()
    FileWriteLine($openFileDialogDestinationDatei, "DFT spectrum")
    FileWriteLine($openFileDialogDestinationDatei, "NumPoints = " & $zeilenZaehlen &", ")
    FileWriteLine($openFileDialogDestinationDatei, "Frequency(Hz) Magnitude(dB)")
    $i = 4
    MsgBox(0,"Eingelesene Zeilen:", $zeilenZaehlen)
    Local $step = Floor(100/$zeilenZaehlen), $progress = 0
    ProgressOn('Schreibe in Datei', 'Spektrumanalyse')
    Do
    $progress += $step
    ProgressSet($progress, $progress & ' %')
    FileWriteLine($openFileDialogDestinationDatei, StringRegExpReplace($csvDateiInhaltArray[$i], "[\.]", "\,"))
    $i = $i + 1
    Until $i = $zeilenZaehlen
    ProgressSet(100, 'Fertig!')
    Sleep(1500)
    ProgressOff()
    FileClose($openFileDialogDestinationDatei)
    MsgBox(0,"", "Datei Geschrieben!")
    EndIf
    EndFunc

    [/autoit]
  • Mehere Radiobutton in einer Dialogbox *edit*

    • BugFix
    • 14. Juni 2008 um 09:53
    Zitat von Carsten

    Leider ist das mit der neuen AutoIt-Version so nicht mehr machbar. Ich bin so zu meinem Ziel gekommen:


    ?(
    An der Syntax hat sich auch unter 3.2.12.0 nichts geändert.
    - Start Gruppe mit Koordinaten
    - Radio-Ctrl erstellen
    - Gruppe schließen

    [autoit]

    GUICtrlCreateGroup("Group 1", 190, 60, 90, 140)
    $radio_1 = GUICtrlCreateRadio("Radio 1", 210, 90, 50, 20)
    $radio_2 = GUICtrlCreateRadio("Radio 2", 210, 110, 60, 50)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group

    [/autoit]

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™