Scrollbarer Label?

  • Hallo da ich aus verschiedenen gründen nicht mit Edit arbeiten kann und daher auf GuiCtrlCreateLabel angewiesen bin bitte ich um Hilfe!

    Ist es möglich einen scrollbaren labelbereich zu erstellen hier mal mein anfang aber nach langen googlen keine idee...

    [autoit]


    $NewsBody = GuiCtrlCreateLabel($ServerBody,10,53,250,180,$WS_VSCROLL)
    GUICtrlSetColor($NewsBody,0x0)
    GUICtrlSetFont ($NewsBody,8.5, 400, 1, "Arial")
    GuiCtrlSetBkColor($NewsBody,$GUI_BKCOLOR_TRANSPARENT)

    [/autoit]
  • Ja hab ich mir auch gedacht jedoch Frage ich Dateien von einem Server ab, in denen auch Zeilenumbrüche vorhanden sind jedoch zegit Input & Edit Anstatt Enter [] an und schreibt ales weiter in eine Zeile ! Das sieht dann so aus:

    Falsches im Input / Edit

    Spoiler anzeigen


    Zeile1[]Zeile2[]Zeile3[]Zeile4 Zeile4[]Zeile[5]

    Richtiger Label

    Spoiler anzeigen


    Zeile1
    Zeile2
    Zeile3
    Zeile4 Zeile4
    Zeile5

    Einmal editiert, zuletzt von I3iLLiG (13. Oktober 2007 um 23:42)

  • Hab versucht jedoch ohne erfolg. Er zeigt mir in MsgBox die Zeilen an ich verstehs net ... -.-

    my Code:

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

    $WrongNewsBody = Stringreplace($ServerBody,"{ENTER}",@CRLF)
    MsgBox(0,"",$WrongNewsBody)
    GuiCtrlCreateInput($WrongNewsBody,10,53,250,180)
    GUICtrlSetColor($WrongNewsBody,0x0)
    GUICtrlSetFont ($WrongNewsBody,8.5, 400, 1, "Arial")
    GuiCtrlSetBkColor($WrongNewsBody,$GUI_BKCOLOR_TRANSPARENT)

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

    Desweitern habe ich versucht Leezeichen durch @CRLF zu erstzen jedoch kommt wieder dieses komische []

    Einmal editiert, zuletzt von I3iLLiG (14. Oktober 2007 um 00:00)

    • Offizieller Beitrag

    $WrongNewsBody = Stringreplace($ServerBody,"{ENTER}",@CRLF)

    Das geht so nicht. Du mußt den exakten String aus dem Original hier eintragen (und da steht bestimmt nicht {ENTER}).
    Evtl. mit ASCII-Code arbeiten. Und auf jeden Fall CaseSensitiv aktivieren!

  • Uff du bringst Sachen ins Spiel womit ich mich noch nie beschäftigt habe...
    Kannst du mir vll ein Beispiel Code geben?

  • Also Folgendermaßen läuft das ab:

    1.Ich frage über tcp den Server http://85.114.135.24/autostarter.php ab

    2.Splitte mit Hilfe der ? die im Text stehen in Variablen auf

    3. Zeige Text an verschiedenen Stellen an

    edit: Die Zeichen kann ich net kopieren, denn diese ergeben sofort eine Neue Zeile, weil ich denke,dass sie dann entshclüsselt werden oder so was in der art..

    2 Mal editiert, zuletzt von I3iLLiG (14. Oktober 2007 um 00:11)

    • Offizieller Beitrag
    Zitat

    edit: Die Zeichen kann ich net kopieren, denn diese ergeben sofort eine Neue Zeile, weil ich denke,dass sie dann entshclüsselt werden oder so was in der art..


    Darum solltest du mal im HEX-Editor das anschauen.
    Vermutlich findest du dort: "0d 0a" oder dezimal: "13 10"
    Und das sind die Zeichen für @CRLF, also Zeilenumbruch.

    Du schreibst, dass sie sofort eine neue Zeile ergeben: Aber das ist es doch, was du wolltest - oder?

  • sie ergeben eine neuezeile hier im fourm, in einem txt dokument und vermutlich in vielen anderen sachen auch aber in der Input box []
    so ich häng einfach mal meine File an dann starte das einfach mal und du wirt sehen das das irgendwie so nicht geht...

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <IE.au3>
    #include <Sound.au3>
    #include <Array.au3>

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

    $Connect = GuiCreate("Connecting",150,40,-1,-1,0x80000000)
    $Progress = GuiCtrlCreateProgress(0, 20, 150, 20)
    GuiCtrlCreateLabel("Connecting...",0,0,150,20)
    GuiCtrlSetData($Progress, 20)
    GuiSetState()

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

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Global $IP = "85.114.135.24"
    Global $PORT = 80
    Global $Connect = -1, $Recv

    TCPStartup()
    GuiCtrlSetData($Progress, 40)
    $Count = 0

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

    While $Connect = -1
    $Connect = TCPConnect($IP, $PORT)
    $Count = $Count +1
    GuiCtrlSetData($Progress, 50)
    if $count=5 then
    MsgBox(0,"Error","Server Offline")
    Exit
    EndIf
    WEnd

    $sendvar = "GET http://85.114.135.24/autostarter.php" & @CRLF & @CRLF

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

    TCPSend($Connect, $sendvar)
    GuiCtrlSetData($Progress, 70)

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

    While $Recv = ''
    $Recv = TCPRecv($Connect,2048)
    WEnd

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

    GuiCtrlSetData($Progress, 100)
    $ClientVersion = "v0.01b"
    $arr = stringsplit($Recv, 'Î')

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

    if $arr[0]>=3 then

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

    $Serverversion = $arr[1]
    $ServerHead = $arr[2]
    $ServerBody = $arr[3]

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

    Else
    MsgBox(0,"Error","Falsche News hochgeladen.")
    Exit
    EndIf

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

    TCPCloseSocket($Connect)
    TCPShutdown()

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

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    $Name = "Death Legends WoW Launcher"
    Global $Version = "Death Legends WoW Launcher v0.01b"

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

    GuiDelete()
    $c = GuiCreate($Name,400,283,-1,-1)
    $Menu = GUICtrlCreateMenu ("Menü")
    GuiCtrlCreateMenuitem ("",$Menu)
    $Homepage = GUICtrlCreateMenuitem ("Homepage",$Menu)
    $Teamspeak = GUICtrlCreateMenuitem ("TeamSpeak",$Menu)
    GuiCtrlCreateMenuitem ("",$Menu)
    $Info = GUICtrlCreateMenuitem ("Info",$Menu)
    GuiCtrlCreateMenuitem ("",$Menu)
    $Exit = GUICtrlCreateMenuitem ("Exit",$Menu)
    GuiCtrlCreateMenuitem ("",$Menu)
    $Options = GUICtrlCreateMenu ("Optionen")
    GuiCtrlCreateMenuitem ("",$Options)
    $TonAus = GUICtrlCreateMenuitem ("Ton Aus",$Options)
    $TonAn = GUICtrlCreateMenuitem ("Ton An",$Options)
    GuiCtrlCreateMenuitem ("",$Options)
    GUICtrlCreateLabel ($Version,0,248,200,20,BitOr($SS_SIMPLE,$SS_SUNKEN))
    $BG = GUICtrlCreatePic("Dateien\Bilder\Pic1.jpg",0,0,400,248)
    GuiCtrlSetState($BG,$GUI_DISABLE)

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

    $Start = GUICtrlCreateLabel ("Start",270,215,50,30)
    GUICtrlSetFont ($Start,20, 400, 1, "Impact")
    GuiCtrlSetBkColor($Start,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor ($Start, 0xFFFFFFF)
    GUICtrlSetCursor($Start, 0)
    if $Serverversion = $ClientVersion then
    $Version = GuiCtrlCreateLabel(" Aktuellste Version",200,248,400,20,BitOr($SS_SIMPLE,$SS_SUNKEN))
    Else
    $Version = GuiCtrlCreateLabel(" Neuere Version verfügbar",200,248,400,20,BitOr($SS_SIMPLE,$SS_SUNKEN))
    EndIf
    $NewsHead = GuiCtrlCreateLabel($ServerHead,10,21,280,22)
    GUICtrlSetColor($NewsHead,0x0)
    GUICtrlSetFont ($NewsHead,12, 400, 1, "Comic Sans MS")
    GuiCtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)

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

    $WrongNewsBody = Stringreplace($ServerBody," ",@CRLF)
    MsgBox(0,"","so sollte das ausehen:")
    MsgBox(0,"",$WrongNewsBody)
    MsgBox(0,"","so siehts in msgbox und label aus:")
    MsgBox(0,"",$ServerBody)
    MsgBox(0,"","so siehts in edit und input aus:")
    GuiCtrlCreateInput($WrongNewsBody,10,53,250,180)
    GUICtrlSetColor($WrongNewsBody,0x0)
    GUICtrlSetFont ($WrongNewsBody,8.5, 400, 1, "Arial")
    GuiCtrlSetBkColor($WrongNewsBody,$GUI_BKCOLOR_TRANSPARENT)

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

    GuiSetState()

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

    $readed = FileReadLine("Dateien\Config.ini",2)
    Global $Illidan = _SoundOpen("Dateien\Sound\StartUp.mp3")

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

    if $readed = "Sound On" then
    $Illidan = _SoundOpen("Dateien\Sound\StartUp.mp3")
    _SoundPlay($Illidan,0)
    EndIf

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

    While 1
    $msg = GUIGetMsg()
    if $msg = $Exit then
    Exit
    SoundSetWaveVolume(10)
    EndIf
    if $msg = $TeamSpeak Then
    ShellExecute("teamspeak://85.114.135.24/")
    EndIf
    if $msg = $Homepage Then _IECreate("85.114.135.24",1,1)
    if $msg = $Info Then MsgBox(0,"Info","Created by I3iLLiG, Locuz & Priestess")
    if $msg = $TonAus Then
    if SoundPlay($Illidan,0) then _SoundStop($Illidan)
    $a = FileReadLine("Dateien\Config.ini",1)
    FileDelete("Dateien\Config.ini")
    FileWriteLine("Dateien\Config.ini",$a)
    EndIf
    if $msg = $TonAn Then
    $Illidan = _SoundOpen("Dateien\Sound\StartUp.mp3")
    _SoundPlay($Illidan)
    $b = FileReadLine("Dateien\Config.ini",1)
    FileDelete("Dateien\Config.ini")
    FileWriteLine("Dateien\Config.ini",$b&@crlf)
    FileWriteLine("Dateien\Config.ini","Sound On")
    EndIf
    if $msg = $GUI_EVENT_CLOSE then Exit
    if $msg = $Start Then StartLoop()
    Wend

    Func CheckFile()
    if $Path = "" then
    MsgBox(0,"Error","Keine Datei gewählt.")
    Exit
    EndIf
    FileOpen("Dateien\Config.ini",2)
    FileWriteLine("Dateien\Config.ini",$Path)
    EndFunc

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

    Func StartLoop()
    $DeathLegendsRealmlist = "set realmlist death-legends-wow.dyndns.org"

    $File = FileReadLine("Dateien\Config.ini",1)
    $Laenge = StringLen($File)
    $Laenge = $Laenge - 7
    $NeuFile = StringLeft($File,$Laenge)
    $NeuFile = $NeuFile&"Cache"
    DirRemove($NeuFile,1)

    $NeuFile = StringLeft($File,$Laenge)
    $NeuFile = $NeuFile&"Realmlist.wtf"
    FileOpen($NeuFile,2)
    FileWrite($NeuFile,$DeathLegendsRealmlist)

    $File = FileReadLine("Dateien\Config.ini",1)
    Run($File)
    Exit
    EndFunc

    [/autoit]

    hab ausm code paar sahcen rausgenommen weil er sonst nicht starten würde wenn man wow hat

    Einmal editiert, zuletzt von I3iLLiG (14. Oktober 2007 um 15:12)

  • Hi, im Code sind das nur @LF und keine @CRLF, daher zeigt das die Edit-Box nicht an. Die INPUT-Box kann gar keine Zeilenumbrüche.

    Spoiler anzeigen
    [autoit]

    $WrongNewsBody = Stringreplace($ServerBody,@LF,@CRLF)
    MsgBox(0,"","so sollte das ausehen:")
    MsgBox(0,"",$WrongNewsBody)
    MsgBox(0,"","so siehts in msgbox und label aus:")
    MsgBox(0,"",$ServerBody)
    MsgBox(0,"","so siehts in edit und input aus:")
    GuiCtrlCreateEdit($WrongNewsBody,10,53,250,180,BitOR($GUI_SS_DEFAULT_EDIT,$ES_READONLY))
    GUICtrlSetColor(-1,0x0)
    GUICtrlSetFont (-1,8.5, 400, 1, "Arial")
    GuiCtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)

    [/autoit]


    So gehts.
    Eidt: Ich seh grad was von WOW... ist das für nen WOW-Private Server? X( Das ist doch net wirklich legal.

    2 Mal editiert, zuletzt von progandy (14. Oktober 2007 um 16:03)

  • ja ist für einen Freund der bat mich dass d+r ihn zu machen...
    Aber vielen Danke für deine Hilfe klappt so!

    ach und noch was ich hab ja versucht die EditBox den Hintergrund anzupassen geh das garnicht doer gibts da möglichkeiten, weil ich hab als Hitnertgrund ein Bild und das würde ich gern durchschimmern lassen.

    2 Mal editiert, zuletzt von I3iLLiG (14. Oktober 2007 um 16:38)

  • Lösung:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    $main = GUICreate('Transparency', 200, 55, -1, -1, -1, $WS_EX_TOPMOST)
    $n=GUICtrlCreatePic(@Systemdir & "\oobe\images\mslogo.jpg",5,5, 190,20)
    GuictrlSetState(-1, $GUI_DISABLE)

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

    $Slider = GuiCtrlCreateSlider(5, 30, 190, 20,$TBS_NOTICKS + $TBS_BOTH)
    GUICtrlSetLimit($Slider, 255, 1)
    GUICtrlSetData($Slider, 255)
    GUISetState()

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

    $Child = GUICreate('Input', 188, 18, -1, -1, $WS_POPUP, $WS_EX_TOPMOST, $main)
    $Input = GUICtrlCreateInput('Use slider to set transparency', -1, -1, 190, 20)
    GUISetState()

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

    $old = GUICtrlRead($Slider)

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

    While 1
    $wpm = WinGetPos($main)
    $x = $wpm[0] + 9
    $y = $wpm[1] + 35
    WinMove($Child, "", $x, $y)
    If GUICtrlRead($Slider) <> $old Then
    WinSetTrans($Child, "", GUICtrlRead($Slider))
    $old = GUICtrlRead($Slider)
    EndIf
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd

    [/autoit]