ich würde gerne meine Standard Gui Scrollbar machen, da ich nur eine benutze soll es eben die Haupt Gui sein
Mit dem Tool selbst erstelle und bearbeite ich Datenbanken von einem unserer Tools. Mittlerweile ist es aber so, das die Datensätze immer mehr werden, weshalb die Gui scrollbar werden muss, damit ich auch die Datensätze weiter unten eintragen und sehen / bearbeiten kann.
Ich habe sowohl den Code des Tool´s als auch eine Test Datenbank als Anhang beigefügt welche ich als rar speichern musste, da die Endung Data hier nicht erlaubt ist.
In der Testdatenbank kann man wenn man diese mit dem Tool öffnet nur bis Zeile 33 lesen (steht jetzt kuilöp*), es sind aber eigentlich 35 denn löp und * sind in der Datenbank selber zwei voneinander getrennte Zeilen. Das Tool schiebt diese aber zusammen, da ja kein scrollen möglich ist.
Code Programm:
Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlusConstants.au3>
#include <StaticConstants.au3>
#include <ScrollBarConstants.au3>
#include <StructureConstants.au3>
#include <ScreenCapture.au3>
#include <GUIScroll.au3>
#include <GDIPlus.au3>
#include <FTPEx.au3>
Global $ANZDATEN, $ANZSTRUKTUR, $DATEN[1200][50], $FILE, $TEMP, $T[100], $DATEI = "", $EINGABE[50], $DATENSATZ = 1, $BUTTONVOR, $BUTTONBACK, $SATZ, $BUTTONNEU, $BUTTONCOPY, $BUTTONDEL
Global $BUTTONPASTE, $COPY[50], $BUTTONSEARCH, $SUCHE, $MERK, $FUND, $GRAFIK, $BUTTONPLUS, $NAME, $LASTLOAD, $CAPTURE = 0
Global $TRANSLATE[500][2][10], $ANZTRANSLATION = 0, $TEMP1, $TEMP2
Global $FTP = 0, $SERVER = "xxxxxxxxx", $USERNAME = "xxxxxxxxxx", $PASSWORD = "xxxxxxxx"
Global $ADMIN = 1
Global $SCRIPTPATH = @ScriptDir & "\", $GRAFIKPATH, $UPDATEPATH = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Almanac_Datenbanktool", "Updatepath")
LADENTRANSLATION()
If $UPDATEPATH = "" Then $UPDATEPATH = $SCRIPTPATH
$MAINWINDOW = GUICreate("testtool", 870, 680, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_VSCROLL, $WS_BORDER, $WS_CLIPSIBLINGS))
GUICtrlSetBkColor(-1, 16777215)
GUISetState(@SW_SHOW)
Scrollbar_Step(20, $MAINWINDOW, $SB_VERT)
$MENU10 = GUICtrlCreateMenu("Datenbank")
$MENU11 = GUICtrlCreateMenuItem("Laden", $MENU10)
$MENU12 = GUICtrlCreateMenuItem("Speichern", $MENU10)
$LASTLOAD = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Almanac_Datenbanktool", "LastOpen")
If $LASTLOAD <> "" Then
GUICtrlCreateMenuItem("", $MENU10)
$MENU13 = GUICtrlCreateMenuItem($LASTLOAD, $MENU10)
EndIf
GUICtrlCreateMenuItem("", $MENU10)
$MENU14 = GUICtrlCreateMenuItem("Auf FTP Server hochladen", $MENU10)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateMenuItem("", $MENU10)
$MENU15 = GUICtrlCreateMenuItem("Updatepfad:" & $UPDATEPATH, $MENU10)
$MENU20 = GUICtrlCreateMenu("Bearbeiten")
$MENU21 = GUICtrlCreateMenuItem("Ersetzen", $MENU20)
$MENU22 = GUICtrlCreateMenu("Übersetzen", $MENU20)
$MENU23 = GUICtrlCreateMenuItem("Zeilen zusammenfügen", $MENU20)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
$MENU24 = GUICtrlCreateMenuItem("Feld löschen", $MENU20)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
$MENU25 = GUICtrlCreateMenuItem("Feld umbenennen", $MENU20)
$MENU26 = GUICtrlCreateMenuItem("Neues Feld einfügen", $MENU20)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
$MENUGER = GUICtrlCreateMenuItem("deutsch -> englisch", $MENU22)
$MENUENG = GUICtrlCreateMenuItem("englisch -> deutsch", $MENU22)
$BUTTONBACK = GUICtrlCreateButton("<-", 220, 30, 30, 20)
$BUTTONVOR = GUICtrlCreateButton("->", 250, 30, 30, 20)
$BUTTONNEU = GUICtrlCreateButton("Neu", 490, 30, 30, 20)
$BUTTONCOPY = GUICtrlCreateButton("Copy", 520, 30, 30, 20)
$BUTTONPASTE = GUICtrlCreateButton("Paste", 550, 30, 40, 20)
$BUTTONDEL = GUICtrlCreateButton("Del", 590, 30, 30, 20)
$SUCHE = GUICtrlCreateInput("", 300, 30, 130, 20)
$BUTTONSEARCH = GUICtrlCreateButton("Suche", 435, 30, 40, 20)
$BUTTONPLUS = GUICtrlCreateButton("+Zeile", 630, 30, 40, 20)
If $ADMIN = 0 Then GUICtrlSetState(-1, $GUI_DISABLE)
$GRAFIKZUORDNEN = GUICtrlCreateButton("Grafik zuord.", 680, 30, 90, 20)
$T[0] = GUICtrlCreateLabel("Datensatz 0 / 0", 10, 30, 200, 20, $SS_SUNKEN)
$GRAFIK = GUICtrlCreatePic($SCRIPTPATH & "data\common\nopic.tgx", 780, 14, 35, 35)
GUICtrlSetImage(-1, $SCRIPTPATH & "data\common\nopic.tgx")
HotKeySet("+^2", "SCREENSHOT")
HotKeySet("+^3", "SCREENSHOT2")
While 1
$MSG = GUIGetMsg(0)
If $MSG = $GUI_EVENT_CLOSE Then Exit
If $MSG = $MENU11 Then
If $DATEI = "" Then
$DATEI = FileOpenDialog("Wähle Datenbank", @ScriptDir & "\data\", "Datenbank (*.data)")
If StringInStr($DATEI, ".data") = 0 Then
MsgBox(16, "Error", "Keine gültige Datenbank.")
Else
DATENBANK_LADEN()
EndIf
ElseIf $DATEI <> "" Then
For $I = 1 To $ANZSTRUKTUR + 1
GUICtrlDelete($T[$I])
Next
For $I = 0 To $ANZSTRUKTUR
GUICtrlDelete($EINGABE[$I])
Next
$DATEI = FileOpenDialog("Wähle Datenbank", @ScriptDir & "\data\", "Datenbank (*.data)")
If StringInStr($DATEI, ".data") = 0 Then
MsgBox(16, "Error", "Keine gültige Datenbank.")
Else
DATENBANK_LADEN()
EndIf
EndIf
EndIf
If $MSG = $GRAFIK And $CAPTURE = 1 Then
$JANEIN = MsgBox(36, "Grafik übernehmen", "Grafik für aktuellen Datensatz speichern?", 0)
If $JANEIN = 6 Then
FileCopy($SCRIPTPATH & "screenshots\graphic.jpg", $UPDATEPATH & "\" & $DATEN[$DATENSATZ][0] & ".tgx", 1)
FileMove($SCRIPTPATH & "screenshots\graphic.jpg", $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx", 1)
EndIf
EndIf
If $MSG = $GRAFIKZUORDNEN And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$GRAFIKORDNER = FileOpenDialog('Wähle zuzuordn. Grafik für "' & $DATEN[$DATENSATZ][0] & '" .', $GRAFIKPATH, "Almanach Graphik (*.tgx)")
If StringInStr($GRAFIKORDNER, ".tgx") = 0 Then
MsgBox(16, "Error", "No guilty graphic!")
Else
FileMove($GRAFIKORDNER, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
MsgBox(64, "Grafik zuordn.", 'Graphik umbenannt nach "' & $DATEN[$DATENSATZ][0] & '.tgx".', 0)
EndIf
EndIf
If $LASTLOAD <> "" And $MSG = $MENU13 Then
$DATEI = $LASTLOAD
If $DATEI = "" Then
DATENBANK_LADEN()
ElseIf $DATEI <> "" Then
For $I = 1 To $ANZSTRUKTUR + 1
GUICtrlDelete($T[$I])
Next
For $I = 0 To $ANZSTRUKTUR
GUICtrlDelete($EINGABE[$I])
Next
DATENBANK_LADEN()
EndIf
EndIf
If $MSG = $MENU15 Then
$TEST = FileSelectFolder("Bitte Pfad für Update Dateien wählen:", "")
If $TEST <> "" Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Almanac_Datenbanktool", "Updatepath", "REG_SZ", $TEST)
$UPDATEPATH = $TEST
GUICtrlSetData($MENU15, "Updatepfad: " & $UPDATEPATH)
EndIf
EndIf
If $MSG = $MENU12 And $DATEI <> "" And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
DATENBANK_SPEICHERN()
EndIf
If $MSG = $MENU14 And $DATEI <> "" Then
FTPLOAD()
EndIf
If $MSG = $BUTTONVOR And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$DATENSATZ = $DATENSATZ + 1
If $DATENSATZ > $ANZDATEN Then $DATENSATZ = 1
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlSetData($T[0], "Datensatz " & $DATENSATZ & " / " & $ANZDATEN)
If FileExists($GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx") = 1 Then
GUICtrlSetImage($GRAFIK, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
Else
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "data\common\nopic.tgx")
EndIf
$CAPTURE = 0
EndIf
If $MSG = $BUTTONBACK And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$DATENSATZ = $DATENSATZ - 1
If $DATENSATZ = 0 Then $DATENSATZ = $ANZDATEN
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlSetData($T[0], "Datensatz " & $DATENSATZ & " / " & $ANZDATEN)
If FileExists($GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx") = 1 Then
GUICtrlSetImage($GRAFIK, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
Else
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "data\common\nopic.tgx")
EndIf
$CAPTURE = 0
EndIf
If $MSG = $BUTTONNEU And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$ANZDATEN = $ANZDATEN + 1
$DATENSATZ = $ANZDATEN
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlSetData($T[0], "Datensatz " & $DATENSATZ & " / " & $ANZDATEN)
EndIf
If $MSG = $BUTTONCOPY Then
KOPIEREN()
EndIf
If $MSG = $BUTTONPASTE Then
EINFUEGEN()
EndIf
If $MSG = $BUTTONDEL And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], "")
Next
EndIf
If $MSG = $BUTTONSEARCH Then
SUFU()
EndIf
If $MSG = $BUTTONPLUS And $DATEI <> "" Then
$NAME = InputBox("Neue Zeile hinzufügen", "Name der Zeile", "")
If $DATEN[0][$ANZSTRUKTUR] = "*" Then
$ANZSTRUKTUR = $ANZSTRUKTUR + 1
$DATEN[0][$ANZSTRUKTUR] = "*"
For $I = 1 To $ANZDATEN
$DATEN[$I][$ANZSTRUKTUR - 1] = $DATEN[$I][$ANZSTRUKTUR - 2]
$DATEN[$I][$ANZSTRUKTUR - 2] = "-"
Next
GUICtrlSetData($EINGABE[$ANZSTRUKTUR - 2], $DATEN[$DATENSATZ][$ANZSTRUKTUR - 2])
GUICtrlSetData($T[1 + $ANZSTRUKTUR - 1], $NAME)
$SATZ = StringLeft($SATZ, StringLen($SATZ) - 1) & $NAME & ",*"
Else
$ANZSTRUKTUR = $ANZSTRUKTUR + 1
For $I = 1 To $ANZDATEN
$DATEN[$I][$ANZSTRUKTUR - 1] = "-"
Next
$DATEN[0][$ANZSTRUKTUR] = $NAME
$SATZ = $SATZ & "," & $NAME
EndIf
$EINGABE[$ANZSTRUKTUR - 1] = GUICtrlCreateInput($DATEN[$DATENSATZ][$ANZSTRUKTUR - 1], 220, 67 + ($ANZSTRUKTUR - 1) * 18, 600, 17)
$T[1 + $ANZSTRUKTUR] = GUICtrlCreateLabel($DATEN[0][$ANZSTRUKTUR], 10, 50 + $ANZSTRUKTUR * 18, 200, 15, $SS_SUNKEN)
EndIf
If $MSG = $MENU21 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Ersetzen", "Welche Zeile bearbeiten (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
$BEARBEITEN2 = InputBox("Ersetzen", "Welchen Text ersetzen ?")
$BEARBEITEN3 = InputBox("Ersetzen", "Ersetzen mit?")
For $I = 1 To $ANZDATEN
If $BEARBEITEN2 <> "" Then
If StringInStr($DATEN[$I][$BEARBEITEN - 1], $BEARBEITEN2) > 0 Then
$DATEN[$I][$BEARBEITEN - 1] = StringReplace($DATEN[$I][$BEARBEITEN - 1], $BEARBEITEN2, $BEARBEITEN3)
EndIf
Else
$DATEN[$I][$BEARBEITEN - 1] = $BEARBEITEN3
EndIf
Next
GUICtrlSetData($EINGABE[$BEARBEITEN - 1], $DATEN[$DATENSATZ][$BEARBEITEN - 1])
EndIf
EndIf
If $MSG = $MENU23 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Zeilen zusammenfügen", "Welche Zeile ausschneiden (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
$BEARBEITEN2 = InputBox("Zeilen zusammenfügen", "In welche Zeile anhängen (1-" & $ANZSTRUKTUR & ") ? ")
If $BEARBEITEN2 > 0 And $BEARBEITEN2 < $ANZSTRUKTUR + 1 And $BEARBEITEN <> $BEARBEITEN2 Then
For $I = 1 To $ANZDATEN
If $DATEN[$I][$BEARBEITEN - 1] <> "" And $DATEN[$I][$BEARBEITEN - 1] <> "-" Then
If $DATEN[$I][$BEARBEITEN2 - 1] <> "" And $DATEN[$I][$BEARBEITEN2 - 1] <> "-" Then
$DATEN[$I][$BEARBEITEN2 - 1] = $DATEN[$I][$BEARBEITEN2 - 1] & "§§" & $DATEN[$I][$BEARBEITEN - 1]
Else
$DATEN[$I][$BEARBEITEN2 - 1] = $DATEN[$I][$BEARBEITEN - 1]
EndIf
$DATEN[$I][$BEARBEITEN - 1] = ""
GUICtrlSetData($EINGABE[$BEARBEITEN - 1], $DATEN[$DATENSATZ][$BEARBEITEN - 1])
GUICtrlSetData($EINGABE[$BEARBEITEN2 - 1], $DATEN[$DATENSATZ][$BEARBEITEN2 - 1])
EndIf
Next
EndIf
EndIf
EndIf
If $MSG = $MENU25 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Feld umbenennen", "Welches Feld umbenennen (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
$BEARBEITEN2 = InputBox("Feld umbenennen", 'Feld "' & $DATEN[0][$BEARBEITEN] & '" umbenennen in?')
If $BEARBEITEN2 <> "" Then
$DATEN[0][$BEARBEITEN] = $BEARBEITEN2
GUICtrlSetData($T[1 + $BEARBEITEN], $DATEN[0][$BEARBEITEN])
$SATZ = $DATEN[0][1]
For $I = 2 To $ANZSTRUKTUR
$SATZ = $SATZ & "," & $DATEN[0][$I]
Next
EndIf
EndIf
EndIf
If $MSG = $MENU24 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Feld löschen", "Welches Feld löschen (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
For $ZZ = 1 To $ANZDATEN
For $I = $BEARBEITEN - 1 To $ANZSTRUKTUR - 1
$DATEN[$ZZ][$I] = $DATEN[$ZZ][$I + 1]
Next
$DATEN[$ZZ][$ANZSTRUKTUR] = ""
Next
For $I = $BEARBEITEN To $ANZSTRUKTUR - 1
$DATEN[0][$I] = $DATEN[0][$I + 1]
GUICtrlSetData($T[1 + $I], $DATEN[0][$I])
Next
$DATEN[0][$ANZSTRUKTUR] = ""
GUICtrlDelete($T[1 + $ANZSTRUKTUR])
For $I = $BEARBEITEN - 1 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlDelete($EINGABE[$ANZSTRUKTUR - 1])
$ANZSTRUKTUR = $ANZSTRUKTUR - 1
$SATZ = $DATEN[0][1]
For $I = 2 To $ANZSTRUKTUR
$SATZ = $SATZ & "," & $DATEN[0][$I]
Next
EndIf
EndIf
If $MSG = $MENU26 And $DATEI <> "" Then
$BEARBEITEN = InputBox("Neues Feld einfügen", "Hinter welchem Feld einfügen (1-" & $ANZSTRUKTUR & ") ?")
If $BEARBEITEN > 0 And $BEARBEITEN < $ANZSTRUKTUR + 1 Then
$BEARBEITEN2 = InputBox("Neues Feld einfügen", "Feldname?")
If $BEARBEITEN2 <> "" Then
For $ZZ = 1 To $ANZDATEN
For $I = $ANZSTRUKTUR To $BEARBEITEN Step -1
$DATEN[$ZZ][$I + 1] = $DATEN[$ZZ][$I]
Next
$DATEN[$ZZ][$BEARBEITEN] = "-"
Next
For $I = $ANZSTRUKTUR To $BEARBEITEN + 1 Step -1
$DATEN[0][$I + 1] = $DATEN[0][$I]
GUICtrlSetData($T[2 + $I], $DATEN[0][$I])
Next
$DATEN[0][$BEARBEITEN + 1] = $BEARBEITEN2
GUICtrlSetData($T[1 + $BEARBEITEN + 1], $DATEN[0][$BEARBEITEN + 1])
$ANZSTRUKTUR = $ANZSTRUKTUR + 1
$EINGABE[$ANZSTRUKTUR - 1] = GUICtrlCreateInput($DATEN[$DATENSATZ][$ANZSTRUKTUR - 1], 220, 67 + ($ANZSTRUKTUR - 1) * 18, 600, 17)
$T[1 + $ANZSTRUKTUR] = GUICtrlCreateLabel($DATEN[0][$ANZSTRUKTUR], 10, 50 + $ANZSTRUKTUR * 18, 200, 15, $SS_SUNKEN)
For $I = $BEARBEITEN To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
$SATZ = $DATEN[0][1]
For $I = 2 To $ANZSTRUKTUR
$SATZ = $SATZ & "," & $DATEN[0][$I]
Next
EndIf
EndIf
EndIf
If $MSG = $MENUENG And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
For $I = 1 To $ANZDATEN
For $TT = 0 To $ANZSTRUKTUR - 1
For $TZ = 1 To $ANZTRANSLATION
For $TG = 0 To 9
If StringInStr($DATEN[$I][$TT], $TRANSLATE[$TZ][0][$TG]) > 0 And $TRANSLATE[$TZ][0][$TG] <> "" Then
$DATEN[$I][$TT] = StringReplace($DATEN[$I][$TT], $TRANSLATE[$TZ][0][$TG], $TRANSLATE[$TZ][1][0])
EndIf
Next
Next
Next
Next
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
EndIf
If $MSG = $MENUGER And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
For $I = 1 To $ANZDATEN
For $TT = 0 To $ANZSTRUKTUR - 1
For $TZ = 1 To $ANZTRANSLATION
For $TG = 0 To 9
If StringInStr($DATEN[$I][$TT], $TRANSLATE[$TZ][1][$TG]) > 0 And $TRANSLATE[$TZ][1][$TG] <> "" Then
$DATEN[$I][$TT] = StringReplace($DATEN[$I][$TT], $TRANSLATE[$TZ][1][$TG], $TRANSLATE[$TZ][0][0])
EndIf
Next
Next
Next
Next
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
EndIf
WEnd
Func DATENBANK_LADEN()
For $I = 0 To 1100
For $Z = 0 To 49
$DATEN[$I][$Z] = ""
Next
Next
$FILE = FileOpen($DATEI, 0)
If StringInStr($DATEI, "languagepacks\") > 0 Then
Local $TD = "data\" & StringRight($DATEI, StringLen($DATEI) - StringInStr($DATEI, "\", 2, -1))
$GRAFIKPATH = StringReplace($DATEI, $TD, "graphics\")
EndIf
$ANZDATEN = FileReadLine($FILE)
$TEMP = FileReadLine($FILE)
$SATZ = $TEMP
$ZZ = 0
While StringInStr($TEMP, ",") > 0
$ZZ = $ZZ + 1
$DATEN[0][$ZZ] = StringLeft($TEMP, StringInStr($TEMP, ",") - 1)
$TEMP = StringReplace($TEMP, $DATEN[0][$ZZ] & ",", "")
WEnd
$ZZ = $ZZ + 1
$DATEN[0][$ZZ] = $TEMP
$ANZSTRUKTUR = $ZZ
For $I = 1 To $ANZDATEN
For $Z = 0 To $ANZSTRUKTUR - 1
$DATEN[$I][$Z] = FileReadLine($FILE)
Next
Next
FileClose($FILE)
$T[1] = GUICtrlCreateLabel(StringRight($DATEI, StringLen($DATEI) - StringInStr($DATEI, "\", 0, -1)), 10, 5, 500, 20)
GUICtrlSetFont(-1, 14, 400, 0)
GUICtrlSetData($T[0], "Dataset 1 / " & $ANZDATEN)
For $I = 1 To $ANZSTRUKTUR
$T[1 + $I] = GUICtrlCreateLabel($DATEN[0][$I], 10, 50 + $I * 18, 200, 15, $SS_SUNKEN)
Next
For $I = 0 To $ANZSTRUKTUR - 1
$EINGABE[$I] = GUICtrlCreateInput($DATEN[1][$I], 220, 67 + $I * 18, 600, 17)
Next
$DATENSATZ = 1
If FileExists($GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx") = 1 Then
GUICtrlSetImage($GRAFIK, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
Else
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "data\common\nopic.tgx")
EndIf
$CAPTURE = 0
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Almanac_Datenbanktool", "LastOpen", "REG_SZ", $DATEI)
EndFunc
Func DATENBANK_SPEICHERN()
$FILE = FileOpen($DATEI, 2)
FileWriteLine($FILE, $ANZDATEN)
FileWriteLine($FILE, $SATZ)
For $I = 1 To $ANZDATEN
For $TT = 0 To $ANZSTRUKTUR - 1
FileWriteLine($FILE, $DATEN[$I][$TT])
Next
Next
FileClose($FILE)
If $FTP = 0 Then MsgBox(64, "Datenbank speichern", "Datenbank gespeichert.", 0)
EndFunc
Func KOPIEREN()
If $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$COPY[$I] = GUICtrlRead($EINGABE[$I])
Next
EndIf
EndFunc
Func EINFUEGEN()
If $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
GUICtrlSetData($EINGABE[$I], $COPY[$I])
Next
EndIf
EndFunc
Func SUFU()
If StringLen(GUICtrlRead($SUCHE)) > 0 And $DATEI <> "" Then
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$MERK = $DATENSATZ
$DATENSATZ = $DATENSATZ + 1
If $DATENSATZ > $ANZDATEN Then $DATENSATZ = 1
$FUND = 0
While $FUND = 0 And $DATENSATZ <> $MERK
For $I = 0 To $ANZSTRUKTUR
If StringInStr($DATEN[$DATENSATZ][$I], GUICtrlRead($SUCHE)) > 0 Then $FUND = $DATENSATZ
Next
$DATENSATZ = $DATENSATZ + 1
If $DATENSATZ > $ANZDATEN Then $DATENSATZ = 1
WEnd
If $FUND = 0 Then
MsgBox(64, "Suche", "Nichts gefunden.", 0)
Else
$DATENSATZ = $FUND
For $I = 0 To $ANZSTRUKTUR - 1
GUICtrlSetData($EINGABE[$I], $DATEN[$DATENSATZ][$I])
Next
GUICtrlSetData($T[0], "Datensatz " & $DATENSATZ & " / " & $ANZDATEN)
If FileExists($GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx") = 1 Then
GUICtrlSetImage($GRAFIK, $GRAFIKPATH & $DATEN[$DATENSATZ][0] & ".tgx")
Else
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "data\common\nopic.tgx")
EndIf
EndIf
EndIf
EndFunc
Func LADENTRANSLATION()
$FILE = FileOpen("Translation.txt", 0)
$TEMP = FileReadLine($FILE)
While $TEMP <> ""
$ANZTRANSLATION = $ANZTRANSLATION + 1
$TEMP1 = StringLeft($TEMP, StringInStr($TEMP, ";") - 1)
$TEMP2 = StringReplace($TEMP, $TEMP1 & ";", "")
$TEMP = FileReadLine($FILE)
$ZZ = -1
While StringInStr($TEMP1, ",") > 0
$ZZ = $ZZ + 1
$TRANSLATE[$ANZTRANSLATION][0][$ZZ] = StringLeft($TEMP1, StringInStr($TEMP1, ",") - 1)
$TEMP1 = StringReplace($TEMP1, $TRANSLATE[$ANZTRANSLATION][0][$ZZ] & ",", "")
WEnd
$ZZ = $ZZ + 1
$TRANSLATE[$ANZTRANSLATION][0][$ZZ] = $TEMP1
$ZZ = -1
While StringInStr($TEMP2, ",") > 0
$ZZ = $ZZ + 1
$TRANSLATE[$ANZTRANSLATION][1][$ZZ] = StringLeft($TEMP2, StringInStr($TEMP2, ",") - 1)
$TEMP2 = StringReplace($TEMP2, $TRANSLATE[$ANZTRANSLATION][1][$ZZ] & ",", "")
WEnd
$ZZ = $ZZ + 1
$TRANSLATE[$ANZTRANSLATION][1][$ZZ] = $TEMP2
WEnd
FileClose($FILE)
EndFunc
Func FTPLOAD()
For $I = 0 To $ANZSTRUKTUR
$DATEN[$DATENSATZ][$I] = GUICtrlRead($EINGABE[$I])
Next
$FTP = 1
DATENBANK_SPEICHERN()
$FTP = 0
$OPEN = _FTP_Open("MyFTP Control")
$CONN = _FTP_Connect($OPEN, $SERVER, $USERNAME, $PASSWORD)
$FTPP = _FTP_FilePut($CONN, $DATEI, "/httpdocs/QuickUpdates/" & StringRight($DATEI, StringLen($DATEI) - StringInStr($DATEI, "\", 0, -1)))
$FTPC = _FTP_Close($OPEN)
If $FTPP = 1 Then MsgBox(64, "FTP Upload", "Erfolgreich", 0)
If $FTPP = 0 Then MsgBox(16, "FTP Upload", "Fehlgeschlagen", 0)
EndFunc
Func SCREENSHOT()
SCREENSHOT_CAPTURE("35")
EndFunc
Func SCREENSHOT2()
SCREENSHOT_CAPTURE("30")
EndFunc
Func SCREENSHOT_CAPTURE($SIZE)
Local $POS = MouseGetPos()
Local $FILECAPTURE = $SCRIPTPATH & "Screenshots\graphic.jpg"
FileDelete($SCRIPTPATH & "Screenshots\graphic.jpg")
Local $BITMAP, $IMAGE, $HPEN
_GDIPLUS_STARTUP()
$BITMAP = _SCREENCAPTURE_CAPTURE("", $POS[0], $POS[1], $POS[0] + $SIZE, $POS[1] + $SIZE, 0)
$IMAGE = _GDIPLUS_BITMAPCREATEFROMHBITMAP($BITMAP)
$HPEN = _GDIPLUS_PENCREATE(-16777216)
_GDIPLUS_GRAPHICSDRAWRECT($IMAGE, 0, 0, $SIZE, $SIZE, $HPEN)
_GDIPLUS_IMAGESAVETOFILE($IMAGE, $FILECAPTURE)
_GDIPLUS_IMAGEDISPOSE($IMAGE)
_WINAPI_DELETEOBJECT($BITMAP)
_GDIPLUS_PENDISPOSE($HPEN)
WinActivate($MAINWINDOW)
GUICtrlSetImage($GRAFIK, $SCRIPTPATH & "Screenshots\graphic.jpg")
$CAPTURE = 1
EndFunc
Die test Data zum laden in das Programm ist als Anhang .rar dabei.
Ich habe mir hierzu auch schon so einiges angeschaut, aber überall wurde dann mit einer zweiten GUI gearbeitet, was ich nicht unbedingt möchte bzw. nicht weis ob das hier dann überhaupt so gehen würde.
Ich hoffe mir kann wer bei diesem Problem weiter helfen.
Mfg Ghostleader






