1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Nathax

Beiträge von Nathax

  • Auf eingabe warten...

    • Nathax
    • 25. Februar 2012 um 20:11

    Edit: Falsch verstanden, sorry.

  • Smartphone GUI

    • Nathax
    • 25. Februar 2012 um 18:08

    Du müsstest den Emulator ja nicht komplett selber programmieren. Es gibt ja für die Android-Entwickler Emulatoren zum Testen ihrer Programme/Spiele ohne jedes mal ein Smartphone anzuschließen.
    Es würde ja reichen, sich so einen downloadzuloaden und per WinApi den Fensterrahmen zu entfernen und den Emulator als ChildGui an deine Gui zu hängen.

  • Smartphone GUI

    • Nathax
    • 25. Februar 2012 um 11:21

    Sieht schonmal nicht schlecht aus, aber ich würde es ein wenig schmaler machen und mit diesem "Spiegel"-Effekt (s. Original) würde es noch besser aussehen.
    Du könntest ja jetzt noch versuchen per Emulator das HTC-Betriebsystem ins Smartphone einzubauen.

  • Rubik's Cube

    • Nathax
    • 21. Februar 2012 um 18:03

    Geil ist ja auch der hier:

    [Blockierte Grafik: http://farm4.static.flickr.com/3313/5838166964_26e85a8946.jpg]

    Wenn ich das richtig in Erinnerung habe, lädt er sich beim "Cuben" auf, sodass man später bestimmte elektronische Geräte durch die gespeicherte Energie per Induktion aufladen kann.

  • Rubik's Cube

    • Nathax
    • 20. Februar 2012 um 18:37

    Was für Würfel hast du dir denn bestellt?

  • Rubik's Cube

    • Nathax
    • 20. Februar 2012 um 14:49

    Hab vor ca. nem Jahr aufgehört, besitze mehrere Speedcubes und meine Bestzeit liegt bei 28 Sekunden ohne besonderen Skip.

  • Aus GUI mit Loch -> GUI mit "Eckigem-Loch"

    • Nathax
    • 7. Januar 2012 um 18:39
    Zitat von RapIt

    Hi ich versteh zwar nicht richtig, was du willst, aber wenn du Z 27. zu

    [autoit]

    $inner_rgn = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", $i_x, "long", $i_y, "long", $i_x + $i_sizew, "long", $i_y + $i_sizeh)

    [/autoit]

    veränderst, wird ein Rechteck gezeichnet, bzw. radiert...

    RapIt

    Danke, genau das hab ich gesucht.

  • Aus GUI mit Loch -> GUI mit "Eckigem-Loch"

    • Nathax
    • 7. Januar 2012 um 18:34

    Ok, werde sie ändern...

  • Uncheck checkbox und Admin File löschen

    • Nathax
    • 7. Januar 2012 um 12:57

    Les doch die Fensterposition aus und rechne dann z.B. 100x und 50y drauf, wenn die Checkbox im Fenster um 100 nach rechts und 50 nach unten verschoben wäre.

  • Aus GUI mit Loch -> GUI mit "Eckigem-Loch"

    • Nathax
    • 7. Januar 2012 um 12:09

    Hallo,
    ich wollte ja ein Hintergrundbild in meine GUI mit Tab einbauen, das hat ja nicht so ganz geklappt.
    Heute ist mir mein altes Tool eingefallen, was ich einmal zum Spaß programmiert habe:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    HotKeySet("{ESC}","_exit")

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

    $search_gui = GUICreate("Search", 5000, 5000,-2000,-2000,$WS_POPUP)
    GUISetBkColor(0x0, $search_gui)
    _GuiHole($search_gui, 2500, 2500, 200, 200)
    GUISetState()
    While 1
    $msg = GUIGetMsg()
    $mpos = MouseGetPos()
    WinMove("Search","",$mpos[0]-2600,$mpos[1]-2600)
    If WinGetTitle("[active]","") <> "Search" Then
    Winactivate("Search","")
    EndIf
    WEnd
    Exit

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

    Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
    Dim $pos, $outer_rgn, $inner_rgn, $wh, $combined_rgn, $ret
    $pos = WinGetPos($h_win)

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

    $outer_rgn = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", 0, "long", 0, "long", $pos[2], "long", $pos[3])
    If IsArray($outer_rgn) Then
    $inner_rgn = DllCall("gdi32.dll", "long", "CreateEllipticRgn", "long", $i_x, "long", $i_y, "long", $i_x + $i_sizew, "long", $i_y + $i_sizeh)
    If IsArray($inner_rgn) Then
    $combined_rgn = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", 0, "long", 0, "long", 0, "long", 0)
    If IsArray($combined_rgn) Then
    DllCall("gdi32.dll", "long", "CombineRgn", "long", $combined_rgn[0], "long", $outer_rgn[0], "long", $inner_rgn[0], "int", 4)
    $ret = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $combined_rgn[0], "int", 1)
    If $ret[0] Then
    Return 1
    Else
    Return 0
    EndIf
    Else
    Return 0
    EndIf
    Else
    Return 0
    EndIf
    Else
    Return 0
    EndIf

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

    EndFunc ;==>_GuiHole

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]

    Es zeichnet ein Loch in eine GUI. Wenn ich das Loch eckig machen könnte, dann könnte ich eine ParentGUI mit Bild über die eigentliche GUI setzen und da, wo die Controls, bzw. das Tab-Menü sind ein "Kasten-Loch" erstellen, sodass das Bild an der Stelle, wo sich Controls befinden, "durchgebohrt" wird und so die Controls durchscheinen und man sie anklicken kann.
    Wie kann ich aus dieser Funktion eine Funktion machen, die ein Rechteck anstelle eines Kreies wegradiert?

  • Button bleibt trotz Tab-Wechsel da

    • Nathax
    • 7. Januar 2012 um 01:12

    autoBert Auch ne gute Idee. Ich schau mal für was ich mich entscheiden werde. Ich finde, dass wenn man ein einfarbiges Hintergrundbild nimmt, es so aussieht, als hätte man ein farbiges Tab-Control (s. Anhang).

    Bilder

    • Unbenannt.JPG
      • 12,17 kB
      • 300 × 300
  • Button bleibt trotz Tab-Wechsel da

    • Nathax
    • 6. Januar 2012 um 20:11

    Natürlich weis ich, dass man es so machen kann, ich habe selber ein IP-Control in meinem Programm, aber selbst das eine flackert schon manchmal beim Zeichnen und ich glaube, wenn ich 20 Controls habe wird es nicht gerade besser. Trotzdem Danke!

    Zitat von Dietmar

    Ich habe es mal so gelöst (hier lösen lassen) das ser Klick auf den Tab ausgwertet wurde und
    infolgedessen welcher tab angeklickt wurde mit hide/show die Controls versteckt wurden.

    In meinem Fall ging es um das IP Control welches bei allen Tabs durchscheinte.

    Gruß N!ce

  • Button bleibt trotz Tab-Wechsel da

    • Nathax
    • 6. Januar 2012 um 13:39

    Ok, dann werde ich halt versuchen, die richtige Mischung aus euren Posts (Nochmal DANKE an alle dafür, die mir geholfen haben! :thumbup: ) und meinem Programm zu finden, um das beste rauszuholen und das Design möglichst gut hinzubekommen.

    Wer eine Lösung findet, kann sie natürlich immernoch gerne posten und ich wäre auch sehr dankbar dafür!
    Der Post bleibt solange auf -offen-

  • Button bleibt trotz Tab-Wechsel da

    • Nathax
    • 6. Januar 2012 um 12:52
    Zitat von autoBert

    Hallo retrokid,

    also chip 's Lösung funktioniert bei mir (Win XP SP3) einwandfrei,

    frohes neues Jahr

    autoBert

    Es funktioniert zwar das Tab-Menü, aber rechts neben den Tabs ist ein grauer Bereich, den ich nicht haben möchte. Ich hab zwar schon mehre Pic-Controls drübergelegt, aber dies ist immernoch sehr komisch und ich frage mich halt, ob es eine elegantere Lösung gibt, bei der kein Stück Grauzone übrigbleibt und zusätzlich die Tabs funktionieren. Bis jetzt wurde immer nur eines der beide Kriterien erfüllt.

  • Button bleibt trotz Tab-Wechsel da

    • Nathax
    • 5. Januar 2012 um 15:37

    Geht leider beides nicht.

  • Button bleibt trotz Tab-Wechsel da

    • Nathax
    • 4. Januar 2012 um 22:03

    Funktioniert leider auch nicht!

  • Button bleibt trotz Tab-Wechsel da

    • Nathax
    • 4. Januar 2012 um 21:04

    Funktioniert nicht!

  • Button bleibt trotz Tab-Wechsel da

    • Nathax
    • 4. Januar 2012 um 12:48

    Ich habe eine Gui mit Hintergrundbild und 3 Tabs. Wenn ich einen Button erstelle im 1. Tab, dann bleibt er wenn ich in den 2. bzw. 3. wechsel da. Im 2. und 3. kann ich ihn erst gar nicht erstellen.
    Was muss ich ändern?

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #include <GuiTab.au3>
    #include <TabConstants.au3>
    #include <WinAPIEx.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Global Const $STM_GETIMAGE = 0x0173
    Global Const $PRF_CLIENT = 0x04

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

    Global $hPic, $hTab, $hDll, $pDll, $hProc

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

    GUICreate('MyGUI', 300, 300)
    GUICtrlCreatePic(@ScriptDir & '\Tech.bmp', 0, 0, 300, 300, $WS_CLIPCHILDREN)
    $hPic = GUICtrlGetHandle(-1)
    GUICtrlCreateTab(20, 20, 262, 261, $TCS_FOCUSONBUTTONDOWN)
    $hTab = GUICtrlGetHandle(-1)
    GUICtrlCreateTabItem('Tab 1')
    GUICtrlCreateButton("",100,100,20,20)
    GUICtrlCreateTabItem('Tab 2')
    GUICtrlCreateTabItem('Tab 3')
    GUICtrlCreateTabItem('')

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

    $hDll = DllCallbackRegister('_WinProc', 'ptr', 'hwnd;uint;wparam;lparam')
    $pDll = DllCallbackGetPtr($hDll)
    $hProc = _WinAPI_SetWindowLongEx($hTab, $GWL_WNDPROC, $pDll)

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

    _WinAPI_SetParent($hTab, $hPic)

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

    OnAutoItExitRegister('AutoItExit')

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

    GUISetState()

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

    Do
    Until GUIGetMsg() = -3

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

    Func _CreateClipRgn($hWnd)

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

    Local $tRect
    Local $Count = _GUICtrlTab_GetItemCount($hWnd)
    Local $Sel = _GUICtrlTab_GetCurSel($hWnd)
    Local $hRgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
    Local $hTmp, $Ht

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

    For $i = 0 To $Count - 1
    $tRect = _GUICtrlTab_GetItemRectEx($hWnd, $i)
    If $i = $Sel Then
    $hTmp = _WinAPI_CreateRectRgn(DllStructGetData($tRect, 1) - 2, DllStructGetData($tRect, 2) - 2, DllStructGetData($tRect, 3) + 2, DllStructGetData($tRect, 4))
    $Ht = DllStructGetData($tRect, 4) - DllStructGetData($tRect, 2) + 2
    Else
    If $i = $Count - 1 Then
    $hTmp = _WinAPI_CreateRectRgn(DllStructGetData($tRect, 1), DllStructGetData($tRect, 2), DllStructGetData($tRect, 3) - 2, DllStructGetData($tRect, 4))
    Else
    $hTmp = _WinAPI_CreateRectRgn(DllStructGetData($tRect, 1), DllStructGetData($tRect, 2), DllStructGetData($tRect, 3), DllStructGetData($tRect, 4))
    EndIf
    EndIf
    _WinAPI_CombineRgn($hRgn, $hRgn, $hTmp, $RGN_OR)
    _WinAPI_DeleteObject($hTmp)
    Next
    $tRect = _WinAPI_GetClientRect($hWnd)
    $hTmp = _WinAPI_CreateRectRgn(DllStructGetData($tRect, 1), DllStructGetData($tRect, 2) + $Ht, DllStructGetData($tRect, 3) - 2, DllStructGetData($tRect, 4) - 1)
    _WinAPI_CombineRgn($hRgn, $hRgn, $hTmp, $RGN_OR)
    _WinAPI_DeleteObject($hTmp)
    Return $hRgn
    EndFunc ;==>_CreateClipRgn

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

    Func _WinProc($hWnd, $iMsg, $wParam, $lParam)
    Local Const $WM_PRINTCLIENT = 0x0318
    If _WinAPI_IsThemeActive() Then
    Switch $iMsg
    Case $WM_ERASEBKGND
    Local $tRect[2]
    Local $hParent = _WinAPI_GetParent($hWnd)
    Local $hRgn = _CreateClipRgn($hWnd)
    Local $hPrev = _WinAPI_GetClipRgn($wParam)
    $tRect[0] = _WinAPI_GetWindowRect($hParent)
    $tRect[1] = _WinAPI_GetWindowRect($hWnd)
    _WinAPI_ExtSelectClipRgn($wParam, $hRgn, $RGN_DIFF)
    _WinAPI_DrawBitmap($wParam, DllStructGetData($tRect[0], 1) - DllStructGetData($tRect[1], 1), DllStructGetData($tRect[0], 2) - DllStructGetData($tRect[1], 2), _SendMessage($hParent, $STM_GETIMAGE))
    _WinAPI_SelectClipRgn($wParam, $hPrev)
    _WinAPI_DeleteObject($hRgn)
    Return 1
    Case $WM_PAINT
    Local $tPaint
    Local $hDC = _WinAPI_BeginPaint($hWnd, $tPaint)
    Local $hRgn = _CreateClipRgn($hWnd)
    _WinAPI_ExtSelectClipRgn($hDC, $hRgn, $RGN_AND)
    _WinAPI_CallWindowProc($hProc, $hWnd, $WM_PRINTCLIENT, $hDC, $PRF_CLIENT)
    _WinAPI_DeleteObject($hRgn)
    _WinAPI_EndPaint($hWnd, $tPaint)
    Return 0
    EndSwitch
    EndIf
    Return _WinAPI_CallWindowProc($hProc, $hWnd, $iMsg, $wParam, $lParam)
    EndFunc ;==>_WinProc

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

    Func AutoItExit()
    _WinAPI_SetWindowLongEx($hTab, $GWL_WNDPROC, $hProc)
    DllCallbackFree($hDll)
    EndFunc ;==>AutoItExit

    [/autoit]

    Dateien

    Tech.bmp 270,06 kB – 355 Downloads
  • ISN AutoIt Studio

    • Nathax
    • 4. Januar 2012 um 12:26

    Erstmal ein fettes Lob von mir! Sieht echt klasse aus und funktioniert auch super.
    Noch ein paar wichtige Funktionen aus Scite einbauen und es könnte eine richtige Konkurrenz werden.

    PS: Ich habe noch den Bug gefunden, dass beim zweiten Start des Programms bereits die Trophäe "Die ersten 30 Minuten",
    oder wie auch immer die heißt, freigeschaltet wurde, obwohl ich es gerade mal 10 Minuten offen hatte.

  • Hintergrundbild hinter TabCreate

    • Nathax
    • 22. Dezember 2011 um 11:47

    Ok, danke habs hinbekommen. Musste die Includes anpassen ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™