Frage zu neuem Projekt

  • Hi alle zusammen.

    Hab mir jetz ein neues Projekt für mich zum üben überlegt.

    Es soll sowas wie ein kleines Schreibprogramm werden.
    Ähnlich dem normale Notepad, nur mit funktionen wie Schriftart, Größe und Farbe ändern.

    Dazu brauch ich aber noch ein paar Infos, da das was ich dafür alles brauch leider nicht in der Hilfe steht.

    Und zwar, naja is etwas schwer zu erklären...

    Ich will, das man das geschriebene in der formation, also mit schriftart, größe und farbe gespeichert wird. und zwar so, das wenn man das gespeicherte File anklickt, gleich das script mit dem geschriebenen und der richtigen formation öffnet.

    Beispiel:
    Wenn man z.B. in word was schreibt und das speichert, kann man ja direkt das gespeicherte File anklicken, sodas es dann mit word geöffnet wird.
    So in etwa will ich es eben auch haben.

    Aber wie könnte das gehn?

    Wäre schonmal froh um ein paar Antworten, es kommen aber bestimmt noch mehr Fragen dazu, weil ich net für jede Frage nen neuen Thread erstellen will.

  • -Du könntest beim Speichern den Namen der Datei in eine Ini-Section schreiben und beim Laden einer Datei die Sectionsnamen mit dem Namen der zu öffnenden Datei vergleichen. Leider ist es dann schlecht, wenn die Datei umbenannt wird.
    -Oder du machst dir deinen eigenen Dateityp, wo du dann in den z.B. ersten zwei Zeilen alles Einträgst.

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • mhh, das mit der Ini höhrt sich net so gut an, wegen dem umbenennen.

    Mit dem Dateityp muss ich mal gucken wie das geht.

    Hat eh noch etwas Zeit, kann ich ja auch ziemlich zum schluss machen.
    Hab ja eben erst angefang ^^

  • Hallo,
    Texte mit Schriftart und -größe machst du am besten mit RTF.
    Such am besten mal im Forum danach. Ich kann dir dazu leider nichts sagen, daich sowas noch nicht gemacht habe...

    Bezüglich dem (eigenen) Dateiformat:
    Entweder du weist dem rtf-dateiformat dein programm zu (zum Beispiel bei Ordneroptionen-->Dateityp), oder du machst am selben Platz ein neues Format, welches von rtf abgeleitet wird, also praktisch das gleiche ist, nur das dus mit deinem Programm öffnen lässt.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Oh ha, da hab ich mir ja was vor genommen. das höhrt sich verdammt kopliziert an ^^

    Gibts vllt ne einfachere beschreibung wie das mit dem Dateityp geht?

  • Das mit dem "eigenen" Dateityp ist wesentlich einfacher als das rtf-Format überhaupt zu benutzen.
    Ordneroptionen --> Dateitypen --> Neu --> "c21" --> Erweitert, Verknüpfung mit Dateityp "RTF-Dokument"-->Ok-->ändern...-->dein Programm auswählen-->okay-->schließen-->fertig!! :rock:

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • So, das erste Problem ist schon da -.-

    Hier mal der Code.
    Es geht da drum, dass der Font,
    den man in der Combo auswählen kann, nicht angewendet wird.

    Spoiler anzeigen
    [autoit]


    ; ----- Includes -----

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

    ; ----- Optionen und GUICreate -----
    GUICreate ("Light-Map", @DesktopWidth, @DesktopHeight - 60)
    GUISetState (@SW_SHOW)
    GUISetBkColor (0x5da24b)

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

    ; ----- Gloabel-Variablen -----
    Global $msg ; Msg ( Funktionen )
    Global $MainEdit ; Edits
    Global $FontCombo, $ColorCombo, $SizeCombo ; Combos
    Global $DataMenu, $NewItem, $OpenItem, $SaveItem, $EditMenu, $CopyItem, $PastItem, $makierenItem, $ExitItem, $HelpMenu, $HelpItem

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

    ; ----- GUI-Edits, -Buttons, -Combos u.s.w... -----

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

    ; __GUI-Edit__
    $MainEdit = GUICtrlCreateEdit ("", 30, 50, 800, 870)

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

    ; __GUI-Combos__
    $FontCombo = GUICtrlCreateCombo ("", 30, 20, 150)
    GUICtrlSetData (-1, "Arial|Verdana|Georgia|Times New Roman", "Arial")
    $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", "14")
    $ColorCombo = GUICtrlCreateCombo ("", 270, 20, 100)
    GUICtrlSetData (-1, "Rot|Gelb|Blau|Grün|Schwarz", "Schwarz")

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

    ; __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)
    $makierenItem = GUICtrlCreateMenuItem ("Alles Makieren", $EditMenu)
    $HelpMenu = GUICtrlCreateMenu ("Hilfe")
    $HelpItem = GUICtrlCreateMenuItem ("Hilfe", $HelpMenu)

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

    ; ----- Funktionen -----
    While 1
    $msg = GUIGetMsg ()
    Select
    Case $msg = $SizeCombo
    $SizeComboRead = GUICtrlRead ($SizeCombo, 1)
    $FontComboRead = GUICtrlRead ($FontCombo, 1)
    GUICtrlSetFont ($MainEdit, $SizeComboRead, 400, $FontComboRead)
    Case $msg = $FontCombo
    $SizeComboRead = GUICtrlRead ($SizeCombo, 1)
    $FontComboRead = GUICtrlRead ($FontCombo, 1)
    GUICtrlSetFont ($MainEdit, $SizeComboRead, 400, $FontComboRead)
    Case $msg = $NewItem

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

    Case $msg = $OpenItem

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

    Case $msg = $OpenItem

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

    Case $msg = $SaveItem

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

    Case $msg = $ExitItem
    If MsgBox(4, "Beenden", "Wollen Sie das Programm wirklich beenden?") = 6 Then Exit
    Case $msg = $CopyItem

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

    Case $msg = $PastItem

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

    Case $msg = $makierenItem

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

    Case $msg = $HelpItem

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

    EndSelect
    WEnd

    [/autoit]
  • Und mit welcher Eingabefläsche soll ich es dann machen? Input geht ja nur eine Zeile...

    PS: Die Schriftgröße lässt sich ganz normal anpassen...

    Einmal editiert, zuletzt von Commander21 (27. Februar 2009 um 16:40)

  • Schau doch mal im englischen Forum nach der RichEdit.au3
    Damit kannst du dein Vorhaben realisieren

    Padmak

  • Mhh, so wirklich blick ich da ja net durch, habs jetz so gemacht:

    Spoiler anzeigen
    [autoit]


    ; ----- Includes -----
    #include <GuiRichEdit.au3>
    ; ----- Optionen und GUICreate -----
    GUICreate ("Light-Map", @DesktopWidth, @DesktopHeight - 60)
    GUISetState (@SW_SHOW)
    GUISetBkColor (0x5da24b)

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

    ; ----- Gloabel-Variablen -----
    Global $msg ; Msg ( Funktionen )
    Global $MainEdit ; Edits
    Global $FontCombo, $ColorCombo, $SizeCombo ; Combos
    Global $DataMenu, $NewItem, $OpenItem, $SaveItem, $EditMenu, $CopyItem, $PastItem, $makierenItem, $ExitItem, $HelpMenu, $HelpItem

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

    ; ----- GUI-Edits, -Buttons, -Combos u.s.w... -----
    ; __GUI-Edit__
    $MainEdit = _GUICtrlRichEdit_Create ("", 30, 50, 800, 870)
    ; __GUI-Combos__
    $FontCombo = GUICtrlCreateCombo ("", 30, 20, 150)
    GUICtrlSetData (-1, "Arial|Verdana|Georgia|Times New Roman", "Arial")
    $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", "14")
    $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)
    $makierenItem = GUICtrlCreateMenuItem ("Alles Makieren", $EditMenu)
    $HelpMenu = GUICtrlCreateMenu ("Hilfe")
    $HelpItem = GUICtrlCreateMenuItem ("Hilfe", $HelpMenu)

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

    ; ----- Funktionen -----
    While 1
    $msg = GUIGetMsg ()
    Select
    Case $msg = $SizeCombo
    $SizeComboRead = GUICtrlRead ($SizeCombo, 1)
    $FontComboRead = GUICtrlRead ($FontCombo, 1)
    GUICtrlSetFont ($MainEdit, $SizeComboRead, 400, $FontComboRead)
    Case $msg = $FontCombo
    $SizeComboRead = GUICtrlRead ($SizeCombo, 1)
    $FontComboRead = GUICtrlRead ($FontCombo, 1)
    GUICtrlSetFont ($MainEdit, $SizeComboRead, 400, $FontComboRead)
    Case $msg = $NewItem

    Case $msg = $OpenItem

    Case $msg = $OpenItem

    Case $msg = $SaveItem

    Case $msg = $ExitItem
    If MsgBox(4, "Beenden", "Wollen Sie das Programm wirklich beenden?") = 6 Then Exit
    Case $msg = $CopyItem

    Case $msg = $PastItem

    Case $msg = $makierenItem

    Case $msg = $HelpItem

    EndSelect
    WEnd

    [/autoit]

    Aber er gibt mir immer folgenden Fehler:

    Spoiler anzeigen

    >"C:\Programme\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Light-Map\Source\Light-Map.au3"
    !===========================================================
    +===========================================================
    -->loaded MSFTEDIT.DLL, Unicode used
    +===========================================================
    C:\Light-Map\Source\Light-Map.au3 (39) : ==> Expected a variable in user function call.:
    $MainEdit = _GUICtrlRichEdit_Create ("", 30, 50, 800, 870)
    $MainEdit = _GUICtrlRichEdit_Create (^ ERROR
    >Exit code: 1 Time: 0.710

  • Spoiler anzeigen
    [autoit]


    $gui = GUICreate ("Light-Map", @DesktopWidth, @DesktopHeight - 60)
    GUISetState (@SW_SHOW)
    GUISetBkColor (0x5da24b)

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

    ; ----- Gloabel-Variablen -----
    Global $msg ; Msg ( Funktionen )
    Global $MainEdit ; Edits
    Global $FontCombo, $ColorCombo, $SizeCombo ; Combos
    Global $DataMenu, $NewItem, $OpenItem, $SaveItem, $EditMenu, $CopyItem, $PastItem, $makierenItem, $ExitItem, $HelpMenu, $HelpItem

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

    ; ----- GUI-Edits, -Buttons, -Combos u.s.w... -----
    ; __GUI-Edit__
    $MainEdit = _GUICtrlRichEdit_Create ($gui, 30, 50, 800, 870)

    [/autoit]

    Padmak

  • Mit _ChooseFont() wirst du dir vieleicht das Leben ein wenig erleichtern _

    Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>
    _ChooseFont([$sFontName = "Courier New"[, $iPointSize = 10[, $iColorRef = 0[, $iFontWeight = 0[, $iItalic = False[, $iUnderline = False[, $iStrikethru = False[, $hWndOwner = 0]]]]]]]])

    [/autoit]
  • So, bin eben erst wieder gekomm. habs gleich mal so versucht, wie Padmak es beschrieben hat, allerdings reagiert er jetzt garnicht mehr auf veränderungen der Schriftart oder größe...

    eine ne lösung?

    Spoiler anzeigen
    [autoit]


    ; ----- Includes -----
    #include <GuiRichEdit.au3>
    ; ----- Optionen und GUICreate -----
    $GUI = GUICreate ("Light-Map", @DesktopWidth, @DesktopHeight - 60)
    GUISetState (@SW_SHOW)
    GUISetBkColor (0x5da24b)

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

    ; ----- Gloabel-Variablen -----
    Global $msg ; Msg ( Funktionen )
    Global $MainEdit ; Edits
    Global $FontCombo, $ColorCombo, $SizeCombo ; Combos
    Global $DataMenu, $NewItem, $OpenItem, $SaveItem, $EditMenu, $CopyItem, $PastItem, $makierenItem, $ExitItem, $HelpMenu, $HelpItem ; Menüs / Items

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

    ; ----- GUI-Edits, -Buttons, -Combos u.s.w... -----
    ; __GUI-Edit__
    $MainEdit = _GUICtrlRichEdit_Create ($GUI, 30, 50, 800, 870)
    ; __GUI-Combos__
    $FontCombo = GUICtrlCreateCombo ("", 30, 20, 150)
    GUICtrlSetData (-1, "Arial|Verdana|Georgia|Times New Roman", "Arial")
    $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", "14")
    $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)
    $makierenItem = GUICtrlCreateMenuItem ("Alles Makieren", $EditMenu)
    $HelpMenu = GUICtrlCreateMenu ("Hilfe")
    $HelpItem = GUICtrlCreateMenuItem ("Hilfe", $HelpMenu)

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

    ; ----- Funktionen -----
    While 1
    $msg = GUIGetMsg ()
    Select
    Case $msg = $SizeCombo
    $SizeComboRead = GUICtrlRead ($SizeCombo, 1)
    $FontComboRead = GUICtrlRead ($FontCombo, 1)
    GUICtrlSetFont ($MainEdit, $SizeComboRead, 400, $FontComboRead)
    Case $msg = $FontCombo
    $SizeComboRead = GUICtrlRead ($SizeCombo, 1)
    $FontComboRead = GUICtrlRead ($FontCombo, 1)
    GUICtrlSetFont ($MainEdit, $SizeComboRead, 400, $FontComboRead)
    Case $msg = $NewItem

    Case $msg = $OpenItem

    Case $msg = $OpenItem

    Case $msg = $SaveItem

    Case $msg = $ExitItem
    If MsgBox(4, "Beenden", "Wollen Sie das Programm wirklich beenden?") = 6 Then Exit
    Case $msg = $CopyItem

    Case $msg = $PastItem

    Case $msg = $makierenItem

    Case $msg = $HelpItem

    EndSelect
    WEnd

    [/autoit]
  • Bin mir nich sicher, glaube aber dass du beim RichEdit die Fonts anders setzen musst.
    Schau dir mal die UDF durch

    Padmak

  • also in der UDF blickt man als "norm user" ja mal gar net durch.

    Das issn wirr warr aus zahlen und buchstaben...

    puhh, da brauch ich ja nen IQ von 180 -.- :cursing:

  • Nenenene nicht da :D
    Weiter unten :D
    Im unteren Drittel sind die Funktionen
    Da drüber ist immer die Beschreibung :D
    Oben werden nur die Konstante deklariert^^

    Padmak

  • Meinst du z.B. das hier?

    Spoiler anzeigen
    [autoit]

    ;====================================================================================================
    ; Function Name : _GUICtrlRichEdit_GetFontName
    ; Description: Retrieves the font Name of the selected Text
    ; Parameters : $hWnd - Handle to the control
    ; Return values : Font name
    ; Author : grham
    ; Notes :
    ;====================================================================================================
    ;
    Func _GUICtrlRichEdit_GetFontName($hWnd)
    Local $tcharformat = DllStructCreate($tagCHARFORMAT2)
    DllStructSetData($tcharformat, 1, DllStructGetSize($tcharformat))
    _SendMessage($hWnd, $EM_GETCHARFORMAT, $SCF_SELECTION, DllStructGetPtr($tcharformat))
    Return DllStructGetData($tcharformat, 9)
    EndFunc ;==>_GUICtrlRichEdit_GetFontName

    [/autoit]

    PS: Ihr müsst bedenken, das ich noch neu anfänger bin und auch nich al so oft zeit hab zum proggen.
    Kapier halt noch net ganz so viel ...

  • Das wäre z.B. eine Erklärung. Damit kann man doch was anfangen :D

    - $hWnd = Das Handle der Gui, wird von Guicreate... zurückgegeben

    Und mehr brauchst nicht :D

    Padmak