Hi, ich hab da ein mehr oder weniger kleines Problem mit nem Script an dem ich heute wieder angefang hab zu arbeiten.
Vorweg schonmal das Script:
Spoiler anzeigen
; ----- Includes -----
#include <GuiRichEdit.au3>
; ----- Optionen und GUICreate -----
$GUI = GUICreate ("Light-Map", @DesktopWidth, @DesktopHeight - 60)
GUISetState (@SW_SHOW)
GUISetBkColor (0x5da24b)
; ----- Gloabel-Variablen -----
Global $msg ; Msg ( Funktionen )
Global $MainEdit ; Edits
Global $FontCombo, $ColorCombo, $SizeCombo ; Combos
Global $DataMenu, $NewItem, $OpenItem, $SaveItem, $EditMenu, $CutItem, $CopyItem, $PastItem, $ExitItem, $HelpMenu, $HelpItem ; Menüs / Items
; ----- GUI-Edits, -Buttons, -Combos u.s.w... -----
[/autoit] [autoit][/autoit] [autoit]; __GUI-Edit__
$MainEdit = _GUICtrlRichEdit_Create ($GUI, 30, 50, 800, 870, $ES_DISABLENOSCROLL)
; __GUI-Combos__
$FontCombo = GUICtrlCreateCombo ("", 30, 20, 150)
GUICtrlSetData (-1, "Arial|Verdana|Georgia|Times New Roman", "Arial")
$FontComboRead = GUICtrlRead ($FontCombo, 1)
_GUICtrlRichEdit_SetFontName($MainEdit, $FontComboRead)
$SizeCombo = GUICtrlCreateCombo ("", 200, 20, 50)
GUICtrlSetData (-1, "2|4|6|8|10|12|14|16|18|20|22|24|26|28|30|32|34|36|38|40|42|44|46|48|50", "10")
$SizeComboRead = GUICtrlRead ($SizeCombo, 1)
_GUICtrlRichEdit_SetFontSize($MainEdit, $SizeComboRead)
$ColorCombo = GUICtrlCreateCombo ("", 270, 20, 100)
GUICtrlSetData (-1, "Rot|Gelb|Blau|Grün|Schwarz", "Schwarz")
; __GUI-Menüs__
$DataMenu = GUICtrlCreateMenu ("Datei")
$NewItem = GUICtrlCreateMenuItem ("Neu", $DataMenu)
$OpenItem = GUICtrlCreateMenuItem ("Öffnen", $DataMenu)
$SaveItem = GUICtrlCreateMenuItem ("Speichern", $DataMenu)
$ExitItem = GUICtrlCreateMenuItem ("Schließen", $DataMenu)
$EditMenu = GUICtrlCreateMenu ("Bearbeiten")
$CopyItem = GUICtrlCreateMenuItem ("Kopieren", $EditMenu)
$PastItem = GUICtrlCreateMenuItem ("Einfügen", $EditMenu)
$CutItem = GUICtrlCreateMenuItem ("Ausschneiden", $EditMenu)
$HelpMenu = GUICtrlCreateMenu ("Hilfe")
$HelpItem = GUICtrlCreateMenuItem ("Hilfe", $HelpMenu)
; ----- Aktuelle Datei auslesen -----
If Not FileRead (@ScriptFullPath) = @ScriptDir & "Light-Map.exe" Then
_GUICtrlRichEdit_SetText($MainEdit, FileRead (@ScriptFullPath))
EndiF
; ----- Funktionen -----
While 1
$msg = GUIGetMsg ()
Select
Case $msg = $SizeCombo
$SizeComboRead = GUICtrlRead ($SizeCombo, 1)
_GUICtrlRichEdit_SetFontSize($MainEdit, $SizeComboRead)
; #################################################################################################################################
Case $msg = $FontCombo
$FontComboRead = GUICtrlRead ($FontCombo, 1)
_GUICtrlRichEdit_SetFontName($MainEdit, $FontComboRead)
; #################################################################################################################################
Case $msg = $ColorCombo
$ColorComboRead = GUICtrlRead ($ColorCombo, 1)
If $ColorComboRead = "Rot" Then $FontColor = 0x0000FF
If $ColorComboRead = "Gelb" Then $FontColor = 0x00FFFF
If $ColorComboRead = "Blau" Then $FontColor = 0xFF0000
If $ColorComboRead = "Grün" Then $FontColor = 0x00FF00
If $ColorComboRead = "Schwarz" Then $FontColor = 0x000000
_GUICtrlRichEdit_SetFontColor($MainEdit, $FontColor)
; #################################################################################################################################
Case $msg = $NewItem
If MsgBox(4, "Neu", "Wollen Sie wirklich ein neues Dokument erstellen?") = 6 Then
_GUICtrlRichEdit_SetText($MainEdit, "")
GUICtrlSetData ($FontCombo, "Arial|Verdana|Georgia|Times New Roman", "Arial")
GUICtrlSetData ($SizeCombo, "2|4|6|8|10|12|14|16|18|20|22|24|26|28|30|32|34|36|38|40|42|44|46|48|50", "10")
GUICtrlSetData ($ColorCombo, "Rot|Gelb|Blau|Grün|Schwarz", "Schwarz")
EndiF
; #################################################################################################################################
Case $msg = $OpenItem
$open = FileOpenDialog ("Öffnen", @ScriptDir, "Light-Map Datei (*.lm)")
_GUICtrlRichEdit_SetText($MainEdit, FileRead ($open))
; #################################################################################################################################
Case $msg = $SaveItem
$save = FileSaveDialog("Speichern...", @ScriptDir, "Light-Map Datei (*.lm)")
If $save <> "" Then
If Not (StringRight($save, 4) = ".lm") Then $save &= ".lm"
FileWriteLine ($save, _GUICtrlRichEdit_GetText($MainEdit))
EndIf
; #################################################################################################################################
Case $msg = $ExitItem
If MsgBox(4, "Beenden", "Wollen Sie das Programm wirklich beenden?") = 6 Then Exit
; #################################################################################################################################
Case $msg = $CopyItem
_GUICtrlRichEdit_Copy($MainEdit)
; #################################################################################################################################
Case $msg = $PastItem
_GUICtrlRichEdit_Paste($MainEdit)
; #################################################################################################################################
Case $msg = $CutItem
_GUICtrlRichEdit_Cut($MainEdit)
; #################################################################################################################################
Case $msg = $HelpItem
EndSelect
WEnd
So, erstmal, was soll es machen?
Es ist ein kleines Schreibprogramm. Es is noch in einer sehr frühen Phase und noch lange nicht fertig.
Das problem liegt dabei im öffnen einer gespeicherten Datei.
Also man kann den geschriebenen Text, im moment noch ohne formatierung in einer RTF datei speichern.
So, öffnet man diese über das Programm, so wird der Text darin ganz normal in das Eingabefeld geschrieben.
Öffnet man es aber direkt, so wird es mit dem Schreibprogramm geöffnet. Im eingabefeld sollte dann eigl. der gespeicherte Text stehen. Das wollte ich eigl. mit den folgenden Zeilen erreichen:
; ----- Aktuelle Datei auslesen -----
_GUICtrlRichEdit_SetText($MainEdit, FileRead (@ScriptFullPath))
Klappt auch soweit, allerdings steht dann stadt des gespeicherten Textes, nur MZi da.
Es soll aber eben, der text dort im Eingabefeld stehen, der in dem RTF gespeichert ist.
Ich hoffe ich habe das Problem verständlich rüber gebracht und ihr könnt mir dabei helfen...
MfG