Hallo Leute.
Ich bin ja noch ein AutoIT Anfänger
und würde am liebsten das ganze Forum hier abklappern und tausende Fragen stellen.
Aber das mag ich euch nicht gerne Antun.
Also Heute ma nur eine Frage an euch.
Da ich ja gerne und viel Text schreibe, habe ich mich heut Morgen gefragt,
wie man wohl einen Eigenen TextEditor.
Und bis jetzt läuft alles klasse das Gerüst ist fertig aber ich weiss nicht,
wie man den Inhalt des "Edit1" einen Namen + .txt geben kann, dass es auch so auf dem Desktop gespeichert werden kann.
Bitte helft mir
Eigenen Editor
-
- [ gelöst ]
-
joshi2122 -
5. April 2010 um 13:17 -
Geschlossen -
Erledigt
-
-
Ließ doch einfach das Edit Control mit GUICtrlRead aus und speichere diese Daten in einer Textdatei ab.
Wenn du eine erzeugen möchtest, dann verwende einfach $File = FileOpen("Textdatei.txt", 1). Wenn FileOpen eine nicht existierende Datei öffnet wird sie einfach erzeugt.
Danach aber nicht das FileClose($File) vergessen. -
[autoit]
FileSaveDialog() ; <--- klick
[/autoit]
... könnte auch interessant sein. -
Hier mal ein einfaches Beispiel mit Neu, Speichern, öffnen
Spoiler anzeigen
[autoit]$hGUI = GUICreate("Editor - Neues Dokument")
[/autoit] [autoit][/autoit] [autoit]
$cNew = GUICtrlCreateButton("Neu", 10, 5, 100, 20)
$cOpen = GUICtrlCreateButton("Öffnen", 150, 5, 100, 20)
$cSave = GUICtrlCreateButton("Speichern", 290, 5, 100, 20)
$cEdit = GUICtrlCreateEdit("", 10, 30, 380, 360)
GUISetState()While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3 ; Schließen
Exit
Case $cNew ; Neu Knopf
GUICtrlSetData($cEdit, "")
WinSetTitle($hGUI, "", "Editor - Neues Dokument") ; Fenstertitel ändernCase $cOpen ; Öffnen Knopf
[/autoit] [autoit][/autoit] [autoit]
$sFilePath = FileOpenDialog("Öffnen", "", "Text Files (*.txt)") ; Dialog anzeigen
If Not @error Then GUICtrlSetData($cEdit, FileRead($sFilePath)) ; Wenn Benutzer nicht abgebrochen hat, Datei einlesen und mit GUICtrlSetData ins Edit schreiben
WinSetTitle($hGUI, "", "Editor - " & $sFilePath) ; Fenstertitel ändernCase $cSave ; Speichern Knopf
[/autoit]
$sFilePath = FileOpenDialog("Speichern","","Text Files (*.txt)") ; Speichern Dialog
If Not @error Then ; User hat nicht abgebrochen
If StringRight($sFilePath,4) <> ".txt" Then $sFilePath &= ".txt" ; Wenn .txt erweiterung fehlt, anhängen!
FileDelete($sFilePath) ; Alte Datei vorher löschen
FileWrite($sFilePath,GUICtrlRead($cEdit)) ; Neue Datei mit neuem Inhalt erstellen.
WinSetTitle($hGUI, "", "Editor - " & $sFilePath) ; Fenstertitel ändern.
EndIf
EndSwitch
WEnd -
Kann man dem auch hinzufügen, dass oben ein Main Menu ist, sodass man keine Button braucht?
Oder zB ein "Bearbeiten" Menu wo man zB die Schriftart wechseln kann? -
[autoit]
GUICtrlCreateMenu
[/autoit]
[autoit]
undGUICtrlCreateMenuItem
[/autoit]Ach ja falls du es noch nicht wissen solltest:
[autoit]
Für die Schriftarten:GUICtrlSetFont
[/autoit] -
Ich hab mal ein wenig rumgebastelt
Spoiler anzeigen
[autoit]#include <EditConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 510, 413, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 0, 32, 505, 377)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
$menu = GUICtrlCreateMenu("Edit")
$save = GUICtrlCreateMenuItem ("Save",$menu)
$open = GUICtrlCreateMenuItem ("Open",$menu)
$new = GUICtrlCreateMenuItem ("New",$menu)
$schrift = GUICtrlCreateMenu ("Font")
$verdana = GUICtrlCreateMenuItem ("verdana",$schrift)
$comic = GUICtrlCreateMenuItem ("Comic Sans MS",$schrift)
#EndRegion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $save
$sFilePath = FileOpenDialog("Speichern","","Text Files (*.txt)")
If Not @error Then
If StringRight($sFilePath,4) <> ".txt" Then $sFilePath &= ".txt"
FileDelete($sFilePath)
FileWrite($sFilePath,GUICtrlRead($cEdit))
WinSetTitle($hGUI, "", "Editor - " & $sFilePath)
EndIf
Case $open
$sFilePath = FileOpenDialog("Öffnen", "", "Text Files (*.txt)") ; Dialog anzeigen
If Not @error Then GUICtrlSetData($cEdit, FileRead($sFilePath)) ; Wenn Benutzer nicht abgebrochen hat, Datei einlesen und mit GUICtrlSetData ins Edit schreiben
WinSetTitle($hGUI, "", "Editor - " & $sFilePath
Case $new
GUICtrlSetData($Edit1, "")
WinSetTitle($Form1, "", "Editor - Neues Dokument")
Case $verdana
$font = "Verdana"
Case $comic
$font = "Comic Sans MS"
EndSwitch
WEnd
Nun ist die Schrift vom "GUICtrlCreateMenuItem ("Comic Sans MS")
Aber wenn ich auf das MenuItem klicke verändert sich die Schrift im Edit Feld nicht
Kann mir einer helfen? -
[offtopic] es gibt einen AutoIt button mit syntaxhighliting..
da sieht man die fehler schneller[/offtopic] -
Ich hab mal ein wenig rumgebastelt
Spoiler anzeigen
[autoit]#include <EditConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 510, 413, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 0, 32, 505, 377)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
$menu = GUICtrlCreateMenu("Edit")
$save = GUICtrlCreateMenuItem ("Save",$menu)
$open = GUICtrlCreateMenuItem ("Open",$menu)
$new = GUICtrlCreateMenuItem ("New",$menu)
$schrift = GUICtrlCreateMenu ("Font")
$verdana = GUICtrlCreateMenuItem ("verdana",$schrift)
$comic = GUICtrlCreateMenuItem ("Comic Sans MS",$schrift)
#EndRegion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $save
$sFilePath = FileOpenDialog("Speichern","","Text Files (*.txt)")
If Not @error Then
If StringRight($sFilePath,4) <> ".txt" Then $sFilePath &= ".txt"
FileDelete($sFilePath)
FileWrite($sFilePath,GUICtrlRead($cEdit))
WinSetTitle($hGUI, "", "Editor - " & $sFilePath)
EndIf
Case $open
$sFilePath = FileOpenDialog("Öffnen", "", "Text Files (*.txt)") ; Dialog anzeigen
If Not @error Then GUICtrlSetData($cEdit, FileRead($sFilePath)) ; Wenn Benutzer nicht abgebrochen hat, Datei einlesen und mit GUICtrlSetData ins Edit schreiben
WinSetTitle($hGUI, "", "Editor - " & $sFilePath
Case $new
GUICtrlSetData($Edit1, "")
WinSetTitle($Form1, "", "Editor - Neues Dokument")
Case $verdana
$font = "Verdana"
Case $comic
$font = "Comic Sans MS"
EndSwitch
WEnd
Nun ist die Schrift vom "GUICtrlCreateMenuItem ("Comic Sans MS")
Aber wenn ich auf das MenuItem klicke verändert sich die Schrift im Edit Feld nicht
Kann mir einer helfen?So besser?
-
Versuchs mal so (ich hab auch gleich mal alle Fehler ausgemerzt...):
Spoiler anzeigen
[autoit]#include <EditConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$hGUI = GUICreate("Form1", 510, 413, 192, 124)
$cEdit = GUICtrlCreateEdit("", 0, 32, 505, 377)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
$menu = GUICtrlCreateMenu("Edit")
$save = GUICtrlCreateMenuItem ("Save",$menu)
$open = GUICtrlCreateMenuItem ("Open",$menu)
$new = GUICtrlCreateMenuItem ("New",$menu)
$schrift = GUICtrlCreateMenu ("Font")
$verdana = GUICtrlCreateMenuItem ("verdana",$schrift)
$comic = GUICtrlCreateMenuItem ("Comic Sans MS",$schrift)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $save
$sFilePath = FileOpenDialog("Speichern","","Text Files (*.txt)")
If Not @error Then
If StringRight($sFilePath,4) <> ".txt" Then $sFilePath &= ".txt"
FileDelete($sFilePath)
FileWrite($sFilePath,GUICtrlRead($cEdit))
WinSetTitle($hGUI, "", "Editor - " & $sFilePath)
EndIf
Case $open
$sFilePath = FileOpenDialog("Öffnen", "", "Text Files (*.txt)") ; Dialog anzeigen
If Not @error Then GUICtrlSetData($cEdit, FileRead($sFilePath)) ; Wenn Benutzer nicht abgebrochen hat, Datei einlesen und mit GUICtrlSetData ins Edit schreiben
WinSetTitle($hGUI, "", "Editor - " & $sFilePath)
Case $new
GUICtrlSetData($cEdit, "")
WinSetTitle($hGUI, "", "Editor - Neues Dokument")
Case $verdana
$font = GuiCtrlSetFont( 3, 8.5, 400, 0, "Verdana")Case $comic
[/autoit] [autoit][/autoit] [autoit]
$font = GuiCtrlSetFont( 3, 8.5, 400, 0, "Comic Sans MS")EndSwitch
[/autoit]
WEnd -
Danke Ineluki
Würd aber ma gerne wissen...
Ob man auch für diesen Editor ein eigenes .txt format machen kann welches nur Dieser Editor öffnen kann?
Danke im Vorraus -
Du könntest es so machen, dass die .txt Dateien verschlüsselt werden (_Crypt_EncryptFile) und nur dann entschlüsselt werden, wenn sie mit deinem Editor geöffnet werden(_Crypt_DecryptFile)
-
Kannst du mir nen Kleinen Beispiel Code machen?
Ich bin ja Anfänger und weiss jetzt nicht wie ich das einsetzen soll
Wäre echt nett -
Okay, das mit dem Verschlüsseln hat sich erledigt...
Aber nun 'ne andere Frage
Kann ich dem "Edit1" Feld 'nen Hintergrund verpassen?
zB. [Blockierte Grafik: http://www.toner-dumping.de/toner/images/flipchartblock.jpg]
Geht das? -
Ließ dir mal diesen Thread durch.
-
Kann mir einer sagen,
wie ich die Textfarbe ändern kann? -
[autoit]
GUICtrlSetColor(ControlId, Hex Wert der Farbe)
[/autoit] -
Wenn ich das mache Ineluki dann flackert das Edit Feld so komisch
Aber ich will doch das die Schrift rot is :O -
Das hier müsste eigt klappen:
[autoit]$font = GUICtrlSetColor(3, 0xFF0000)
[/autoit](so hab ich es mit deinem Editor probiert..)