2 in 1

  • Hallo zusammen.

    Also erst einmal das Gui:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("ZA & E1", 394, 569, 193, 125)
    $Label1 = GUICtrlCreateLabel("Label1", 8, 8, 36, 17)
    $Input1 = GUICtrlCreateInput("Input1", 56, 8, 329, 21)
    $Label2 = GUICtrlCreateLabel("Label2", 8, 32, 36, 17)
    $Input2 = GUICtrlCreateInput("Input2", 56, 32, 329, 21)
    $Label3 = GUICtrlCreateLabel("Label3", 8, 56, 36, 17)
    $Input3 = GUICtrlCreateInput("Input3", 56, 56, 329, 21)
    $okay = GUICtrlCreateButton("In die Zwischenablage und unten ins Feld einfügen", 8, 88, 377, 33, 0)
    $exit = GUICtrlCreateButton("Exit", 8, 128, 377, 33, 0)
    $Edit1 = GUICtrlCreateEdit("", 8, 168, 377, 393)
    GUICtrlSetData(-1, StringFormat("Hier steht schon ein Text !!!!\r\n\r\nHier soll der Text der Label 1 bis 3 untereinander rein !!!!\r\n\r\nHier steht auch wieder etwas !!!!"))
    GUISetState(@SW_SHOW)

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

    GUICtrlSetData(-1, "Edit1")
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $msg = $exit
    Exit
    Case $mag = $okay

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

    ; >>>>>>>>>>>>>>>>>> Was muß hier rein <<<<<<<<<<<<<<<<<<<<<<<

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

    EndSwitch
    WEnd

    [/autoit]

    So, das GUI sollte soweit richtig sein.

    Ich möchte, wenn ich auf den Button mit der Aufschrift "In die Zwischenablage und unten ins Feld einfügen" klicke (Buttonvaribale: $okay) , das dann die Eingaben aus Label1, Label 2 und Label 3 in die Zwischenablage kopiert wird und gleichzeitig in das Feld von $Edit1 da wo beim Beispiel-GUI der Text dazu steht.

    Nun frage ich mich, ob Ihr mein Problem versteht und mir helfen könnt.

    Grüzi, servus und moin-moin.

    L I N A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    2 Mal editiert, zuletzt von Alina (11. April 2008 um 22:05)

  • Also, ertmal den Text holen:
    $text = Guictrlread($input1) & @CRLF & ...
    Dann GuictrlsetData($edit,$text)
    Dann ClipPut($text) :)
    oder soll es an die zwischenablage angefügt werden?
    $clip = ClipGet()
    ClipPut($clip & @CRLF & $text)
    Bei Textfeld:
    $etext = GuictrlRead($edit)
    GuictrlsetData($edit,$etext&@CRLF&$text)

  • Ist nur ein Ansatz. Bei "GUICtrlSetData" bin ich mir mit dem Default Wert nicht so sicher(also damit der erste Text nicht überschrieben wird).
    Ansonsten musst du den in der "Edit" vorhandenen Text splitten und alles nacheinander setzen.

    Da ich hier kein AutoIt habe ist das jetzt nur ein Versuch ohne Selbsttest.

    Spoiler anzeigen
    [autoit]


    Case $mag = $okay
    GUICtrlSetData($Edit1, @CR & GUICtrlRead($Input1) & @CR & GUICtrlRead($Input2) & @CR & GUICtrlRead($Input3), 'Hier steht schon ein Text !!!!')
    ClipPut(GUICtrlRead($Input1) & ', ' & GUICtrlRead($Input2) & ', ' & GUICtrlRead($Input3))

    [/autoit]


    Gruss
    Patric

  • Hallo.

    Soweit schaut es bis jetzt aus:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=d:\autoit\metatag_maker.kxf
    $Form1_1 = GUICreate("ZA & E1", 394, 569, 200, 134)
    $Label1 = GUICtrlCreateLabel("Label1", 8, 8, 36, 17)
    $Input1 = GUICtrlCreateInput("Input1", 56, 8, 329, 21)
    $Label2 = GUICtrlCreateLabel("Label2", 8, 32, 36, 17)
    $Input2 = GUICtrlCreateInput("Input2", 56, 32, 329, 21)
    $Label3 = GUICtrlCreateLabel("Label3", 8, 56, 36, 17)
    $Input3 = GUICtrlCreateInput("Input3", 56, 56, 329, 21)
    $start = GUICtrlCreateButton("In die Zwischenablage und unten ins Feld einfügen", 8, 88, 377, 33, 0)
    $exit = GUICtrlCreateButton("Exit", 8, 128, 377, 33, 0)
    $Edit1 = GUICtrlCreateEdit("", 8, 168, 377, 393)
    GUICtrlSetData(-1, StringFormat("Hier steht schon ein Text !!!!\r\n\r\nHier soll der Text der Label 1 bis 3 untereinander rein !!!!\r\n\r\nHier steht auch wieder etwas !!!!"))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $exit
    Exit

    Case $start

    ;Also, ertmal den Text holen:
    $text = Guictrlread($input1) & @CRLF & Guictrlread($input2) & @CRLF & Guictrlread($input3)
    GuictrlsetData($Edit1,$text)
    ClipPut($text)
    ; oder soll es an die zwischenablage angefügt werden? ANTWORT: Ja, auch in die Zwischenablage. AUCH !!!
    $clip = ClipGet()
    ClipPut($clip & @CRLF & $text)
    ;Bei Textfeld:
    $etext = GuictrlRead($Edit1)
    GuictrlsetData($Edit1,$etext&@CRLF&$text)


    EndSwitch
    WEnd

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

    Er kopiert aus den Feldern den Text ins richtige Feld und gleichzeitig in die Zwischenablage. Aber ein Fehler ist da. In dem Feld stand vorher ein Text. der soll aber nicht gelöscht werden, sondern es soll die Zweite Textzeile ersetzt werden.

    Aber den Quelltext habe ich schon fast verstanden. Meine die Hilfe von "progandy" in Zusammenhang mit den anderen beiden. ^^

    Aber wie bekommt man nun den Fehler weg?

    LG And Happy Weekend,

    L I N A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • ClipPut($text)
    ; oder soll es an die zwischenablage angefügt werden? ANTWORT: Ja, auch in die Zwischenablage. AUCH !!!
    $clip = ClipGet()
    ClipPut($clip & @CRLF & $text)
    Das sind zwei Möglichkeiten
    a) Nur der text in die zwischenablage

    [autoit]

    ClipPut($text)

    [/autoit]


    oder b) alter Zwischenablagetext +neuer Text

    [autoit]

    $clip = ClipGet()
    ClipPut($clip & @CRLF & $text)

    [/autoit]

    Und beim Edit das geliche
    a): nur neuer Text GuictrlsetData($Edit1,$text)
    b): alter + neuer Text

    [autoit]

    ;Bei Textfeld:
    $etext = GuictrlRead($Edit1)
    GuictrlsetData($Edit1,$etext&@CRLF&$text)

    [/autoit]
  • So weit, so gut.

    Jetzt fügt er die Input Daten nur einmal ein. So soll es auch sein. Aber die erste Zeile aus Edit1 (Hier steht schon ein Text !!!!) soll in der ersten Reihe stehen bleiben, genauso wie in der dritten Zeile der Text "Hier steht auch wieder etwas !!!!". Ausgabe sollte so sein:

    Hier steht schon ein Text !!!!
    Inhalt aus Input1
    Inhalt aus Input2
    Inhalt aus Input3
    Hier steht auch wieder etwas !!!!

    Habe ich das nun besser erklärt?

    Aktueller Quelltext:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=d:\autoit\metatag_maker.kxf
    $Form1_1 = GUICreate("ZA & E1", 394, 569, 200, 134)
    $Label1 = GUICtrlCreateLabel("Label1", 8, 8, 36, 17)
    $Input1 = GUICtrlCreateInput("Input1", 56, 8, 329, 21)
    $Label2 = GUICtrlCreateLabel("Label2", 8, 32, 36, 17)
    $Input2 = GUICtrlCreateInput("Input2", 56, 32, 329, 21)
    $Label3 = GUICtrlCreateLabel("Label3", 8, 56, 36, 17)
    $Input3 = GUICtrlCreateInput("Input3", 56, 56, 329, 21)
    $start = GUICtrlCreateButton("In die Zwischenablage und unten ins Feld einfügen", 8, 88, 377, 33, 0)
    $exit = GUICtrlCreateButton("Exit", 8, 128, 377, 33, 0)
    $Edit1 = GUICtrlCreateEdit("", 8, 168, 377, 393)
    GUICtrlSetData(-1, StringFormat("Hier steht schon ein Text !!!!\r\n\r\nHier soll der Text der Label 1 bis 3 untereinander rein !!!!\r\n\r\nHier steht auch wieder etwas !!!!"))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $exit
    Exit

    Case $start

    ;Also, ertmal den Text holen:
    $text = Guictrlread($input1) & @CRLF & Guictrlread($input2) & @CRLF & Guictrlread($input3)
    GuictrlsetData($Edit1,$text)
    ClipPut($text)
    ; oder soll es an die zwischenablage angefügt werden? ANTWORT: Ja, auch in die Zwischenablage. AUCH !!!
    $clip = ClipGet()
    ClipPut($clip & @CRLF & $text)
    ;Bei Textfeld:
    ;$etext = GuictrlRead($Edit1)
    ;GuictrlsetData($Edit1,$etext&@CRLF&$text)

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




    EndSwitch
    WEnd

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

    L I N A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    • Offizieller Beitrag

    Na dann so:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=d:\autoit\metatag_maker.kxf
    $Form1_1 = GUICreate("ZA & E1", 394, 569, 200, 134)
    $Label1 = GUICtrlCreateLabel("Label1", 8, 8, 36, 17)
    $Input1 = GUICtrlCreateInput("Input1", 56, 8, 329, 21)
    $Label2 = GUICtrlCreateLabel("Label2", 8, 32, 36, 17)
    $Input2 = GUICtrlCreateInput("Input2", 56, 32, 329, 21)
    $Label3 = GUICtrlCreateLabel("Label3", 8, 56, 36, 17)
    $Input3 = GUICtrlCreateInput("Input3", 56, 56, 329, 21)
    $start = GUICtrlCreateButton("In die Zwischenablage und unten ins Feld einfügen", 8, 88, 377, 33, 0)
    $exit = GUICtrlCreateButton("Exit", 8, 128, 377, 33, 0)
    $Edit1 = GUICtrlCreateEdit("", 8, 168, 377, 393)
    GUICtrlSetData(-1, StringFormat("Hier steht schon ein Text !!!!\r\n\r\nHier soll der Text der Label 1 bis 3 untereinander rein !!!!\r\n\r\nHier steht auch wieder etwas !!!!"))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $exit
    Exit

    Case $start
    ;Also, erstmal den Text holen:
    $text = Guictrlread($input1) & @CRLF & Guictrlread($input2) & @CRLF & Guictrlread($input3)
    $etext = StringReplace(GUICtrlRead($Edit1), "Hier soll der Text der Label 1 bis 3 untereinander rein !!!!", $text)
    GuictrlsetData($Edit1,$etext)
    ClipPut($etext)
    EndSwitch
    WEnd

    [/autoit]
  • Oscar

    Ja, so geht es perfekt.

    Und weißt Du was. Damit finde ich gleich die Lsg. für drei andere Script, wo ich nie weiter gemacht habe, weil ich nie wusste wie ich sie beende. Zahlreiche Entwürfe sind in einer kleinen Mappe. Ich schreibe mir Ideen auf dem Sofa auf, die man mal versuchen könnte zu erstellen. Dann geht es meistens gut voran, aber irgendwie kommt dann oft was wichtigeres dazwischen. Aber ich erstelle oft kleine Scripte mit Sachen wo ich am besten lerne. Kurzfassung: Ich kann wieder drei Ideen kommpletttttttttt umsetzen.

    Oh man. Wenn ich daran denke, was ich vor der Zeit am PC gemacht habe? Meine die Zeit, bevor diese Technik mich begeisterte.

    Gruß und HERZLICHEN DANK !!!

    L I N A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Hallo.

    Einfrage Frage habe ich doch noch.

    Warum funktioniert das nicht?

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $exit
    Exit

    Case $start
    ;Also, erstmal den Text holen:
    $text = Guictrlread($input1) & @CRLF & Guictrlread($input2)& @CRLF
    $2text = Guictrlread($input3)
    $etext = StringReplace(GUICtrlRead($Edit1), "Hier soll der ", $text)
    $2etext = StringReplace(GUICtrlRead($Edit1), "Text der Label 1 bis 3 untereinander rein !!!!", $2text)
    GuictrlsetData($Edit1,$etext)
    ClipPut($etext)
    EndSwitch
    WEnd

    [/autoit]

    Falls mal die Felder nicht zusammen ein Text "austauschen sollen, sondern wie hier im Beispiel $input zwei an eine andere Stelle. Okay, hier ist es direkt dahinter, aber eingebaut, aber die Funktionsweise bei verschiedenen Positionen bekomme ich nicht hin.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    • Offizieller Beitrag

    Hallo,

    ab dem 2. StringReplace darst Du nicht mehr den Orginaltext aus der Editbox nehmen!


    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $exit
    Exit

    Case $start
    ;Also, erstmal den Text holen:
    $text = Guictrlread($input1) & @CRLF & Guictrlread($input2)& @CRLF
    $2text = Guictrlread($input3)
    $etext = StringReplace(GUICtrlRead($Edit1), "Hier soll der ", $text)
    $etext = StringReplace($etext, "Text der Label 1 bis 3 untereinander rein !!!!", $2text)
    GuictrlsetData($Edit1,$etext)
    ClipPut($etext)
    EndSwitch
    WEnd

    [/autoit]
  • Ja, so geht das.

    Daraus kann man doch nun schöne Tools erstellen. Oder?

    Ich probiere jetzt mal.

    LG und DANKE !!!

    L I N A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Hallo zusammen.

    Ich habe noch paar Fragen.

    1.)
    Am Ende von $start steht ClipPut($etext). Danach soll er noch die Daten aus Edit1 mir anbieten, das ich diese speichern kann (Datei speichern unter). Ich möchte aber selber entscheiden, wo er es speichert.

    2.)
    Nach dem Speichern soll er die Daten in die Imputfelder wieder so reinschreiben wie sie beim Scriptstart drinne standen. Also die Vorgaben und das nur bei den Inputfelder !!!

    3.)
    Habe noch einen weiteren Button erstellt (Case $neustart). Nur weiß ich nicht, wie ich das Script automatisch neu starte

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (12. April 2008 um 18:19)

    • Offizieller Beitrag

    Hallo,

    zu 1.)
    - mit FileSaveDialog die Datei wählen wo gespeichert werden soll.
    - mit FileWrite die Daten in die gewählte Datei speichern.

    zu 2. u. 3.)
    unter Case $neustart brauchst Du nur

    [autoit]


    GuiCtrlSetData($Input1, "Input1")
    GuiCtrlSetData($Input2, "Input2")
    GuiCtrlSetData($Input3, "Input3")
    GUICtrlSetData($Edit1, StringFormat("Hier steht schon ein Text !!!!\r\n\r\nHier soll der Text der Label 1 bis 3 untereinander rein !!!!\r\n\r\nHier steht auch wieder etwas !!!!"))

    [/autoit]


    zu schreiben.

  • Hallo Bernd.

    Ich habe das speichern nun so weit:

    Spoiler anzeigen
    [autoit]


    Case $speichern
    FileSaveDialog( "Bitte Dateiname und Speicherort eingeben.", "c:\", "Textdatei (*.txt)", 3)
    FileWrite ????????

    [/autoit]

    Nur ich wähle ja bei FileSaveDialog erst aus wo und unter welchen Namen ich es speichern möchte. Genau hier habe ich das Problem.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    • Offizieller Beitrag

    Hallo,

    so:


    [autoit]

    Case $speichern
    $szSaveFile = FileSaveDialog( "Bitte Dateiname und Speicherort eingeben.", "c:\", "Textdatei (*.txt)", 3)
    If Not @error Then FileWrite($szSaveFile, Guictrlread($Edit1))

    [/autoit]
  • Ich hatte so gedacht:

    Spoiler anzeigen
    [autoit]


    Case $speichern
    $unter = FileSaveDialog( "Bitte Dateiname auswählen.", "c:\", "Textdatei (*.txt)", 3)
    $open = FileOpen($unter, 1)
    FileWrite($open,$etext)
    FileClose($open)

    [/autoit]


    aber da speichert er es ohne Dateiendung. Wieso das? Bei dem Beispiel von Oscar auch. Aber man kann keine Dateiendung erzwingen oder so?

    L I N A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    • Offizieller Beitrag

    Geht schon:

    [autoit]

    Case $speichern
    $szSaveFile = FileSaveDialog( "Bitte Dateiname und Speicherort eingeben.", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", "Textdatei (*.txt)", 2)
    If Not @error Then
    If StringRight($szSaveFile,4) <> ".txt" Then $szSaveFile &= ".txt"
    FileWrite($szSaveFile, Guictrlread($eText))
    EndIf

    [/autoit]