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 !?
GUI - frage zum editfeld!
-
- [ offen ]
-
WhiteLion -
3. Mai 2008 um 21:03 -
Geschlossen -
Erledigt
-
-
hi,
hier schonmal horizontal, vertikal weg und Hintergrundfarbe geändert.Spoiler anzeigen
[autoit]$Edit1 = GUICtrlCreateEdit("", 80, 72, 193, 161, $ES_WANTRETURN)
[/autoit]
GUICtrlSetBkColor(-1, 0x3A6EA5)MfG
Der_Doc -
- Offizieller Beitrag
Hi,
guck mal in die Styles und berichte dann was die fehlt.
Mega
-
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 ?
-
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
Momentan kann dir keiner helfen.
Du stellst keinen Code rein und wir sollen erraten, was du bis jetzt erstellt hast? Sry, aber hab grad keine Glaskugel dabei. -
Ja da hast du Recht.
Ich weis garnet wo ein Editfeld transparent ist ??????
Den Quelltext bitte mal mit Screenshot posten.MfG
Der_Doc -
Code
Alles anzeigen#include <GUIConstants.au3> #AutoIt3Wrapper_Icon=emulator.ico ;#NoTrayIcon ;FileInstall("intro.exe", @TempDir&"/intro.exe") GUICreate("mygui",640,200,-1,-1,$WS_POPUP,$WS_EX_LAYERED) GUICtrlCreatePic("mygui.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, $ES_WANTRETURN) ;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, $ES_WANTRETURN) ;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)
-
- 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.Spoiler anzeigen
[autoit]GUICreate("mygui",640,200,-1,-1,$WS_POPUP,$WS_EX_LAYERED)
[/autoit] [autoit][/autoit] [autoit]
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,
$Button2 = GUICtrlCreateLabel("About",368,145,40,18)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1,0xFF5500)
GUICtrlSetFont(6,
$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,
$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,
$close = GUICtrlCreateLabel("eXit",415,94,23,18)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1,0xFFFF00)
GUISetState (@SW_SHOW)Do
[/autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSEEdit: 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 -
wunderbar danke du könig! - nur wie binde ich die gif datei in mein exe ohne die irgendwo auslager zu müssen ?
-
ok nun geht es
MfG
Der_Doc -
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_Docdas 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 ?!
-
- Offizieller Beitrag
Was hast du bitte gegen FileInstall?
peethebee
-
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!
[autoit]
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) -
- 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
-
stellt sich nur die frage wie derjednige das gemacht hat, dessen datei ich angehängt habe........ da wird kein gif ausgelagert...
-
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)
[/autoit] [autoit][/autoit] [autoit]
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,
$Button2 = GUICtrlCreateLabel("About",368,145,40,18)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1,0xFF5500)
GUICtrlSetFont(6,
$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,
$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,
$close = GUICtrlCreateLabel("eXit",415,94,23,18)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1,0xFFFF00)GUISetBkColor(0x010101) ; die Farbe die Transparent werden soll
[/autoit] [autoit][/autoit] [autoit]
_API_SetLayeredWindowAttributes($gui,0x010101) ; Die Farbe transparent setzenGUISetState (@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Do
[/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSE;===============================================================================
[/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
//Edit Spoiler... -
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)
[/autoit] [autoit][/autoit] [autoit]
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,
$Button2 = GUICtrlCreateLabel("About",368,145,40,18)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1,0xFF5500)
GUICtrlSetFont(6,
$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,
$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,
$close = GUICtrlCreateLabel("eXit",415,94,23,18)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1,0xFFFF00)GUISetBkColor(0x010101) ; die Farbe die Transparent werden soll
[/autoit] [autoit][/autoit] [autoit]
_API_SetLayeredWindowAttributes($gui,0x010101) ; Die Farbe transparent setzenGUISetState (@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Do
[/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSE;===============================================================================
[/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
//Edit Spoiler...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?)
-