GUI - frage zum editfeld!

  • ich hab mal wieder GUI fragen :)
    wenn ich ein editfeld einbinden möchte (grafisches menü), wie bekomme ich für meine editfelder die transperenz weg bzw kann eine
    hintergrundfarbe (ist jetzt durchsichtig) auswählen oder das durchsichtige wegmachen!?
    weiterhin nerven mich die scrollbalken (horizontal und vertikal) - wie bekomme ich die weg
    am besten den raund auchnoch, wenns einen gibt den ich noch nicht gesehen habe !? :)

  • hi,
    hier schonmal horizontal, vertikal weg und Hintergrundfarbe geändert.

    Spoiler anzeigen
    [autoit]

    $Edit1 = GUICtrlCreateEdit("", 80, 72, 193, 161, $ES_WANTRETURN)
    GUICtrlSetBkColor(-1, 0x3A6EA5)

    [/autoit]

    MfG
    Der_Doc

  • das war schonmal die halbe miete.... jetzt noch bitte folgendes:

    - Editfelder sind unten und rechts immernoch transperent (ein schmaler streifen) - wie bekomme ich den weg?

    - Editfelder sollen nicht manuell editierbar sein - wie geht das ?

    - mein grafische GUI soll die Gif-datei aus der sie besteht inkludieren, also in der exe, am besten ohne auslagerung! - geht das auch ?

    Einmal editiert, zuletzt von WhiteLion (4. Mai 2008 um 09:36)

  • Zitat

    das war schonmal die halbe miete.... jetzt noch bitte folgendes:

    - Editfelder sind unten und rechts immernoch transperent (ein schmaler streifen) - wie bekomme ich den weg?

    - Editfelder sollen nicht manuell editierbar sein - wie geht das ?

    - mein grafische GUI soll die Gif-datei aus der sie besteht inkludieren, also in der exe, am besten ohne auslagerung! - geht das auch ?

    hmmm, hat denn wirklich keiner eine lösung, besonders für den letzten punkt!

    • Offizieller Beitrag

    Hab die Editstyles ergänzt, nun kann man nicht mehr editieren.
    Aber ich weiß nicht, wo du noch transparente Streifen in den Edits siehst, bei mir ist nix.
    Andere Frage: Lieferst du zu dem Skript auch 'ne Lupe mit? Die Schrift in den Edits ist so mickrig - wenn mir das jemand anbieten würde, würde ich ihm gehörig die Meinung geigen. :D

    Spoiler anzeigen
    [autoit]

    GUICreate("mygui",640,200,-1,-1,$WS_POPUP,$WS_EX_LAYERED)
    GUICtrlCreatePic("test.gif",0,0,640,200) ;gif soll in exe eingebunden werden ohne auslagerung beim start
    GUICtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreateLabel("",0,0,621,90,-1,$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0xFFFF00)
    $Button1 = GUICtrlCreateLabel("Patch",150,145,40,18)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0xFF5500)
    GUICtrlSetFont(5, 8)
    $Button2 = GUICtrlCreateLabel("About",368,145,40,18)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0xFF5500)
    GUICtrlSetFont(6, 8)
    $Edit1 = GUICtrlCreateEdit("- Patch -",210,96,130,40, BitOR($ES_WANTRETURN, $ES_READONLY)) ;hat einen Rand der unten und rechts (Streifen) transperent ist!soll nicht manuel editerbar sein!
    GUICtrlSetBkColor(-1, 0x555555)
    GUISetBkColor(0xFFFFFF)
    GUICtrlSetFont(7, 8)
    $Edit2 = GUICtrlCreateEdit("Status",210,140,130,18, BitOR($ES_WANTRETURN, $ES_READONLY)) ;hat einen Rand der unten und rechts (Streifen) transperent ist! soll nicht manuel editerbar sein!
    GUICtrlSetBkColor(-1, 0x555555)
    GUISetBkColor(0xFFFFFF)
    GUICtrlSetFont(8, 8)
    $close = GUICtrlCreateLabel("eXit",415,94,23,18)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0xFFFF00)
    GUISetState (@SW_SHOW)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit]

    Edit: Den Style $ES_WANTRETURN kannst du dir eigentlich schenken, da ja eh nicht editiert werden darf.

  • Warum bekomme ich das GUI nicht angezeigt?
    Bei mir taucht zwar in der Taskleiste das Autoit Symbol und das Script läuft, aber es erscheint kein GUI????


    MfG
    Der_Doc

    das ist ja mein problem .... das teil geht nur, wenn die mygui.gif beim ausführen im verzeichnis liegt! - selbst wenns ompiliert wurde !!!

    das es bei dir so ist, ist klar... du hast die mygui.gif ja nicht ... also nimm zum testen irgend eine gif die du hast....

    nur wie zur hölle bekomme ich es hin, dass die gif-datei nach dem kompilieren mit eingebunden wir und nicht im verzeichnis liegen muss oder durch fileinstall reingepackt werden muss ?!

  • Was hast du bitte gegen FileInstall?

    peethebee

    ich find auslagerungensdatein bei kleinen programmen einfach nur total überflüssig und unprofessionell. jeder rechner hat heute genug arbeitsspeicher um eine 30 kb große gif direkt reinzuschieben.... ok, man muss sagen, dass AutoIT "nur" scripterei ist, aber trotzdem...
    wie gesagt, es muss gehen... ich hab hier im forum ein beispiel gefunden, wos geht. leider finde ich den beitrag nicht mehr, aber ich habe die datei mal in den anhang gepackt!

  • So jetzt weis ich auch was du als transparent bezeichnest..... glaube ich!
    das Editfeld ist 3Dimensional.

    [autoit]


    $Edit1 = GUICtrlCreateEdit("- Patch -",210,96,130,40, BitOR($ES_WANTRETURN, $ES_READONLY),0) ; <---- ,0 ist deine Lösung
    .....
    $Edit2 = GUICtrlCreateEdit("Status",210,140,130,18, BitOR($ES_WANTRETURN, $ES_READONLY),0)

    [/autoit]
    • Offizieller Beitrag

    Dann sind ja auch alle Spiele und die komplette Microsoft-Software unprofessionell ;) (letzteres würde ich manchmal nicht bezweifeln :D).

    Ne, Spaß beiseite, ich finde es nicht dramatisch, wenn eine Bilddatei im Skriptverzeichnis oder TempDir liegt. Einbinden von Dateien diskutieren wir gerade hier: http://www.autoit.de/index.php?page=Thread&threadID=6097 , aber es gibt mit ResHacker die Möglichkeit zumindest Icons in die Datei zu packen, nur glaube ich nicht, dass man beliebige Bilder reinkriegt, die man dann auch noch aufrufen könnte. Das wäre ja dann quasi Zippen innerhalb der Exe-Datei und ich habe noch nie gehört, dass Windows soetwas könnte...

    peethebe

  • aber ja, stern1.bmp bis stern5.bmp.
    Was ist eigendlich dein Hintergrundbild? Kannst du das bitte mal anhängen?
    //Edit: Das geht schon, Bilder in die Resourcen, als Format würde ich da BMP bevorzugen.: http://www.autoitscript.com/forum/index.php?showtopic=51103
    LayeredGUI ohne Hintergrundbild geht auch, aber das willst du wohl nicht :):

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $gui = GUICreate("mygui",640,200,-1,-1,$WS_POPUP,$WS_EX_LAYERED)
    GUICtrlCreatePic("test.gif",0,0,640,200) ;gif soll in exe eingebunden werden ohne auslagerung beim start
    ;~ GUICtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreateLabel("",0,0,621,90,-1,$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0xFFFF00)
    $Button1 = GUICtrlCreateLabel("Patch",150,145,40,18)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0xFF5500)
    GUICtrlSetFont(5, 8)
    $Button2 = GUICtrlCreateLabel("About",368,145,40,18)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0xFF5500)
    GUICtrlSetFont(6, 8)
    $Edit1 = GUICtrlCreateEdit("- Patch -",210,96,130,40, BitOR($ES_WANTRETURN, $ES_READONLY)) ;hat einen Rand der unten und rechts (Streifen) transperent ist!soll nicht manuel editerbar sein!
    GUICtrlSetBkColor(-1, 0x555555)
    GUISetBkColor(0xFFFFFF)
    GUICtrlSetFont(7, 8)
    $Edit2 = GUICtrlCreateEdit("Status",210,140,130,18, BitOR($ES_WANTRETURN, $ES_READONLY)) ;hat einen Rand der unten und rechts (Streifen) transperent ist! soll nicht manuel editerbar sein!
    GUICtrlSetBkColor(-1, 0x555555)
    GUISetBkColor(0xFFFFFF)
    GUICtrlSetFont(8, 8)
    $close = GUICtrlCreateLabel("eXit",415,94,23,18)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1,0xFFFF00)

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

    GUISetBkColor(0x010101) ; die Farbe die Transparent werden soll
    _API_SetLayeredWindowAttributes($gui,0x010101) ; Die Farbe transparent setzen

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

    GUISetState (@SW_SHOW)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    ;===============================================================================
    ;
    ; Function Name: _API_SetLayeredWindowAttributes
    ; Description:: Sets Layered Window Attributes:) See MSDN for more informaion
    ; Parameter(s):
    ; $hwnd - Handle of GUI to work on
    ; $i_transcolor - Transparent color
    ; $Transparency - Set Transparancy of GUI
    ; $isColorRef - If True, $i_transcolor is a COLORREF-Strucure, else an RGB-Color
    ; Requirement(s): Layered Windows
    ; Return Value(s): Success: 1
    ; Error: 0
    ; @error: 1 to 3 - Error from DllCall
    ; @error: 4 - Function did not succeed - use
    ; _WinAPI_GetLastErrorMessage or _WinAPI_GetLastError to get more information
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _API_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $isColorRef = False)

    Local Const $AC_SRC_ALPHA = 1
    Local Const $ULW_ALPHA = 2
    Local Const $LWA_ALPHA = 0x2
    Local Const $LWA_COLORKEY = 0x1
    If Not $isColorRef Then
    $i_transcolor = Hex(String($i_transcolor), 6)
    $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
    EndIf
    Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $LWA_COLORKEY + $LWA_ALPHA)
    Select
    Case @error
    Return SetError(@error,0,0)
    Case $ret[0] = 0
    Return SetError(4,0,0)
    Case Else
    Return 1
    EndSelect
    EndFunc ;==>_API_SetLayeredWindowAttributes

    [/autoit]


    //Edit Spoiler...

    2 Mal editiert, zuletzt von progandy (4. Mai 2008 um 14:27)

  • bzgl. des englischen links:
    so wie ich das verstehe, muss ich dann ein bitmap bild nachträglich mit den resourcehacker einpflanzen und schon vorher im script einenverweis auf das noch nciht eingepflanzte resource machen !? oder schnall ichs nciht ??

    EDIT: danke für dein beispiel, - die transperzen funktioniert jetzt leider nicht mehr (liegt sicher an der von mir falsch gewählten farbe?)

    Einmal editiert, zuletzt von WhiteLion (4. Mai 2008 um 14:42)