Printfunktion

  • Hi,

    falls jemand eine Printfunktion für Anfänger vom Anfänger braucht:-)
    $flag=1 sorgt dafür, dass das Printfenster offen bleibt, bis man es schließt. Vorher hat man die Möglichkeit, die Ausgabe ins Clipboard zu kopieren.

    Edit: Jetzt mit Farbunterstützung:-)

    Print("Test",0,0) Test in Schwarz
    Print("Test",0,1) Test in Grün
    Print("Test",0,2) Test in Rot
    Print(x,1,x) "1" sorgt dafür, dass das Ausgabefenster offen bleibt.

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    #include <GuiListView.au3>

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

    $win_title="Print-Test"
    $Gui_Win=GUICreate($win_title, 200,80)
    $button_1 = GUICtrlCreateButton ("Print", 40, 20, 120, 40)
    GUISetState(@SW_SHOW, $GUI_Win)

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

    Dim $ausgabe[30]
    for $i=0 to 29
    $ausgabe[$i]="Hier steht der auszugebende Text" & $i
    Next
    $farbe=2

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $button_1
    print("Anfang der Ausgabe:",0,0)
    for $i=1 to 29
    print($i & " " & $ausgabe[$i],0,$farbe)
    if Mod($i,2) Then
    $farbe=1
    Else
    $farbe=2
    EndIf
    Next
    print("Ende der Ausgabe.",0,0)
    print("",1,0) ; "1" sorgt dafür, dass das Printfenster offen bleibt
    EndSelect
    WEnd
    Exit

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

    Func print($text,$flag,$farbe)
    ;#include <GuiListView.au3> nicht vergessen
    ;Fenster offen halten mit print("",1,0)
    Global $Print_form, $print_listview,$print_close,$print_clipbutton1,$print_clipbutton2, $print_clipboard,$print_clear
    local $print_win_title="Ausgabe"
    local $message
    if not WinExists($print_win_title) Then
    $Print_form=GUICreate($print_win_title, 650, 350,-1,-1,BitOR($DS_MODALFRAME,$WS_SIZEBOX))
    $print_listview = GUICtrlCreateListView(" ", 20, 40, 610, 270)
    _GUICtrlListViewSetColumnWidth($print_listview, 0, $LVSCW_AUTOSIZE_USEHEADER)
    $print_clipbutton1=GUICtrlCreateButton("->C",20,5,32,32,$BS_ICON)
    GUICtrlSetImage ($print_clipbutton1, @SystemDir & "\clipbrd.exe", 1)
    GUICtrlSetTip($print_clipbutton1,"Kopiert den Inhalt zum Clipboard")
    $print_clipbutton2=GUICtrlCreateButton("+C",75,5,32,32,$BS_ICON)
    GUICtrlSetImage ($print_clipbutton2, @SystemDir & "\clipbrd.exe", 0)
    GUICtrlSetTip($print_clipbutton2,"Addiert den Inhalt zum Clipboardinahlt hinzu")
    $print_clear= GUICtrlCreateButton ("Inhalt Löschen", 150, 10, 121, 20)
    $print_close= GUICtrlCreateButton ("Schließen", 530, 10, 100, 20)
    ;GUISetState(@SW_DISABLE, $Main_Window) ; Optional
    GUISetState(@SW_Show,$Print_form)
    $print_clipboard=""
    EndIf
    if $flag=1 then
    do
    $msg1 = GUIGetMsg()
    switch $msg1
    case $print_clipbutton1
    clipput($print_clipboard)
    case $print_clipbutton2
    clipput(ClipGet() & @CRLF & $print_clipboard)
    case $print_clear
    _GUICtrlListViewDeleteAllItems($print_listview)
    EndSwitch
    until $msg1 = $Print_close
    ;GUISetState(@SW_ENABLE, $Main_Window) ; Optional
    GUIDelete($Print_form)
    endif
    if WinExists($print_win_title) then
    $message=GUICtrlCreateListViewItem($text,$print_listview)
    switch $farbe
    case 0
    GUICtrlSetColor(-1,0x000000)
    case 1
    GUICtrlSetColor(-1,0x00ff00) ;green
    case 2
    GUICtrlSetColor(-1,0xff0000) ;red
    EndSwitch
    $print_clipboard=$print_clipboard & @CRLF & $text
    EndIf
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von milko (5. Februar 2007 um 18:46)

  • Ich habe für meine kleinen Netzwerktools Logs benötigt. Ich hätte sie entweder extern in eine Textdatei schreiben müssen, um sie später mit Notepad lesen zu können oder eben intern mit der Printfunktion. Msgbox ist für so eine Aufgabe nicht geeignet und zu nervig:-)

    Guten Rutsch, besonders den Betreibern von autoit.de