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. BugFix

Beiträge von BugFix

  • Funktion aufrufen wenn Tab Item angeklick wurde

    • BugFix
    • 27. März 2013 um 09:08
    [autoit]

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

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

    $Form1 = GUICreate("Form1", 615, 440, 192, 124)
    $Button1 = GUICtrlCreateButton("Exit", 496, 384, 81, 33)
    $Tab_1 = GUICtrlCreateTab(20,20,450,300)
    $Tab_Item_1 = GUICtrlCreateTabItem("TAB 1")
    $Tab_Item_2 = GUICtrlCreateTabItem("TAB 2")
    $Tab_Item_3 = GUICtrlCreateTabItem("TAB 3")
    GUISetState(@SW_SHOW)

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

    While 1
    Switch GUIGetMsg()
    Case $tab_1
    _TabFunc(GUICtrlRead($tab_1))
    Case $Button1, $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _TabFunc($_Index)
    Msgbox(0,"","Es wurde TabItem-" & $_Index+1 & " angeklickt")
    Switch $_Index
    Case 0
    ; Code für TabItem-1 (Index 0)
    Case 1
    ; Code für TabItem-2 (Index 1)
    Case 2
    ; Code für TabItem-3 (Index 2)
    EndSwitch
    EndFunc

    [/autoit]
  • Funktion aufrufen wenn Tab Item angeklick wurde

    • BugFix
    • 27. März 2013 um 08:28

    Einfach mal das Hilfe-Bsp. zu Tab-Item anschauen... :whistling:

  • Bsp.: Mit Button-UDF erstellten Button einfärben

    • BugFix
    • 26. März 2013 um 17:29

    Als erstes mag man sich natürlich fragen, wozu man einen Button mit der UDF erstellen sollte. In 99% aller Fälle ist das nicht notwendig und somit sei auch davon abzuraten. :D
    Aber es gibt halt den Fall, dass man z.B. auf einer Rebar einen Button platzieren möchte. Das geht ausschließlich über die Button-UDF (ebenso wie alle Buttontypen wie Radio/Checkbox, Edit und Combo). Das in der Hilfe angeführte Bsp. zur Rebar ist definitiv falsch. Holt man sich, wie dort gezeigt, die Handle von nativ erstellten Ctrl um diese im Rebar einzubetten, werden sie zwar angezeigt, tummeln sich aber alle nach HIDE/SHOW od. MIN/MAX an der Pos. 0,0 übereinander.
    Mit den per UDF erstellten Ctrl funktioniert alles wie gewollt.
    Aber:
    Wie sieht es aus mit Einfärben eines Button? Einfach ID rausfischen mit _WinAPI_GetDlgCtrlID() und auf diese native Colorfunktionen anwenden führt zu nichts.
    Hier mal ein Bsp. wie sich das Lösen läßt. Der Style $BS_OWNERDRAW ist dafür erforderlich. Das führt aber auch dazu, dass der Button sich nicht mehr "normal" verhält. Das optische Anklicken habe ich im Bsp. simuliert, kann aber leider auf einer Rebar nicht verwendet werden.
    Um ein 3-Dimensionales Aussehen zu erzeugen muss man den linken und oberen Rand hell, den rechten und unteren Rand dunkel färben. Alle wichtigen Details sind im Code kommentiert.


    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <FontConstants.au3>
    #include <GuiButton.au3>
    #include <GUIConstantsEx.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)
    OnAutoItExitRegister('_OnExit')

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

    Global Const $ODA_DRAWENTIRE = 1
    Global Const $ODT_BUTTON = 4

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

    Global $hBrush, $hFont, $Gui, $hBtn1, $hBtn2, $bt1, $bt2
    Global $sFont = 'Comic Sans MS', $iHeight = 16, $iWidth = 7, $iWeight = $FW_MEDIUM;$FW_SEMIBOLD;$FW_NORMAL

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

    $Gui = GUICreate("Test")
    GUISetBkColor(0xD3DAED)

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

    $hBtn1 = _GUICtrlButton_Create($Gui, 'Button-1', 20, 20, 70, 22, BitOR($BS_OWNERDRAW,$BS_NOTIFY))
    $hBtn2 = _GUICtrlButton_Create($Gui, 'Button-2', 20, 50, 70, 22, BitOR($BS_OWNERDRAW,$BS_NOTIFY))
    Global $aBtnInfo[3][6] = [[2], _ ; == [0][0]=Anzahl, [[Handle-Button, Button-BG-Color, Button-Text-Color(-1=schwarz), Top/Left-Border-Color, Right/Bottom-Border-Color, ArrayPos(rel. in Client)]]
    [$hBtn1, 0x00FFFF, 0xFF0000, 0xFAF5F2, 0xC0C0C0, ControlGetPos($Gui, '', _WinAPI_GetDlgCtrlID($hBtn1))], _
    [$hBtn2, 0xFF00FF, -1, 0xFAF5F2, 0xC0C0C0, ControlGetPos($Gui, '', _WinAPI_GetDlgCtrlID($hBtn2))]]
    ; == Man kann das Array auch noch erweitern um Font-Informationen einzeln zu jedem Button zu speichern

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

    $bt1 = GUICtrlCreateDummy()
    $bt2 = GUICtrlCreateDummy()

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

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    GUIRegisterMsg($WM_DRAWITEM, "WM_DRAWITEM")
    _WinAPI_RedrawWindow($Gui)

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

    GUISetState(@SW_SHOW, $Gui)

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

    While True
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $GUI_EVENT_PRIMARYDOWN ; == DOWN- und UP dienen nur zur optischen Darstellung des Buttonklicks
    _Event_PrimaryDownUp(1)
    Case $GUI_EVENT_PRIMARYUP
    _Event_PrimaryDownUp(0)
    Case $bt1
    ConsoleWrite('Button-1' & @LF)
    Case $bt2
    ConsoleWrite('Button-2' & @LF)
    EndSwitch
    WEnd

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

    Func _OnExit()
    _WinAPI_DeleteObject($hBrush)
    _WinAPI_DeleteObject($hFont)
    EndFunc

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

    ; == Man könnte sich die Dummy-Ctrls sparen und hier in der "WM_COMMAND"-Func die Befehle der Button ausführen.
    ; == Davon ist aber abzuraten! Die Msg-Routinen sollten schnellstmöglich verlassen werden, deshalb besser ein Dummy befeuern
    ; == und dieses Event in der Standard-Msg-Auswertung abarbeiten.
    Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    #forceref $hWnd, $Msg
    If BitShift($wParam, 16) <> $BN_CLICKED Then Return $GUI_RUNDEFMSG ; == nur Click soll ausgewertet werden
    Local $ID
    Switch $lParam ; == Button-Handle auswerten
    Case $hBtn1
    $ID = $bt1 ; == Dummy-ID zuweisen
    Case $hBtn2
    $ID = $bt2
    EndSwitch
    ; == Nachricht an gewählte Dummy-ID absetzen
    DllCall("user32.dll", "lresult", "SendMessageW", "hwnd", $Gui, "uint", 273, "wparam", $ID, "lparam", 0)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

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

    Func WM_DRAWITEM($hWnd, $Msg, $wParam, $lParam)
    Local $DRAWITEMSTRUCT = DllStructCreate("uint cType;uint cID;uint itmID;uint itmAction;uint itmState;" & _
    "hwnd hItm;hwnd hDC;dword itmRect[4];dword itmData", $lParam)
    If DllStructGetData($DRAWITEMSTRUCT, "cType") <> $ODT_BUTTON Then Return $GUI_RUNDEFMSG ; == nur OWNERDRAW-Button
    If DllStructGetData($DRAWITEMSTRUCT, "itmAction") <> $ODA_DRAWENTIRE Then Return $GUI_RUNDEFMSG ; == nur Neuzeichnen-Event

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

    Local $hDC = DllStructGetData($DRAWITEMSTRUCT, "hDC")
    Local $hItm = DllStructGetData($DRAWITEMSTRUCT, "hItm")
    Local $sText = _GUICtrlButton_GetText($hItm) ; == Text des zu zeichnenden Button abfragen
    Local $iColBG, $iColTxt, $iColBorderLT, $iColBorderRB, $iIndex ; == Variablen für Buttonfarben u. Index im Array
    _GetBtnColor($hItm, $iColBG, $iColTxt, $iColBorderLT, $iColBorderRB, $iIndex) ; == Farben für diesen Button aus Array abfragen
    Local $tRECT = DllStructCreate('int;int;int;int;', DllStructGetPtr($DRAWITEMSTRUCT, "itmRect")) ; == Rect des Button

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

    _WinAPI_SetBkMode($hDC, $TRANSPARENT)
    $hBrush = _WinAPI_CreateSolidBrush($iColBG)
    Local $hBrushOld = _WinAPI_SelectObject($hDC, $hBrush)
    _WinAPI_FillRect($hDC, DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), $hBrush) ; == Button-Hintergrundfarbe zeichnen
    Local $iColOld = _WinAPI_SetTextColor($hDC, $iColTxt) ; == Textfarbe anwählen

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

    ; == Infos für Font könnten auch einzeln für jeden Button im Array hinterlegt werden
    Local $nHeight = $iHeight, $nWidth = $iWidth, $nEscape = 0, $nOrientn = 0, $fnWeight = $iWeight, $bItalic = False, $bUnderline = False
    Local $bStrikeout = False, $nCharset = $DEFAULT_CHARSET, $nOutputPrec = $OUT_DEFAULT_PRECIS, $nClipPrec = $CLIP_DEFAULT_PRECIS
    Local $nQuality = $DEFAULT_QUALITY, $nPitch = 0, $szFace = $sFont
    $hFont = _WinAPI_CreateFont($nHeight, $nWidth, $nEscape, $nOrientn, $fnWeight, $bItalic, $bUnderline, _
    $bStrikeout, $nCharset, $nOutputPrec, $nClipPrec, $nQuality, $nPitch, $szFace)
    Local $hOldFont = _WinAPI_SelectObject($hDC, $hFont)

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

    _WinAPI_DrawText($hDC, $sText, $tRECT, BitOR($DT_CENTER,$DT_VCENTER,$DT_SINGLELINE)) ; == Button-Text schreiben
    _WinAPI_SetTextColor($hDC, $iColOld) ; == Textfarbe zurücksetzen
    _WinAPI_DrawButtonRect($hDC, $tRECT, $iColBorderLT, $iColBorderRB, 1) ; == Button-Ränder zeichnen (Left u. Top hell / Right u. Bottom dunkel)
    _WinAPI_SelectObject($hDC, $hBrushOld)
    _WinAPI_SelectObject($hDC, $hOldFont)

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

    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_DRAWITEM

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

    Func _Event_PrimaryDownUp($_iDown)
    Local $oldMode = Opt('MouseCoordMode', 2), $aSize[4], $aMouse = MouseGetPos()
    Local $hWndBtn = _GetBtnHwndFromMouse($aMouse[0], $aMouse[1], $aSize)
    Opt('MouseCoordMode', $oldMode)
    If $hWndBtn = 0 Then Return
    Switch $_iDown
    Case 0
    ControlMove($Gui, '', _WinAPI_GetDlgCtrlID($hWndBtn), $aSize[0]-1, $aSize[1]-1)
    Case 1
    ControlMove($Gui, '', _WinAPI_GetDlgCtrlID($hWndBtn), $aSize[0]+1, $aSize[1]+1)
    EndSwitch
    EndFunc ;==>_Event_PrimaryDownUp

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

    Func _GetBtnColor($_hWnd, ByRef $_iColBG, ByRef $_iColTxt, ByRef $_iColBorderLT, ByRef $_iColBorderRB, ByRef $_iIndex)
    For $i = 1 To $aBtnInfo[0][0]
    If $aBtnInfo[$i][0] = $_hWnd Then
    $_iColBG = $aBtnInfo[$i][1]
    $_iColTxt = $aBtnInfo[$i][2]
    If $aBtnInfo[$i][2] = -1 Then $aBtnInfo[$i][2] = 0x000000
    $_iColBorderLT = $aBtnInfo[$i][3]
    $_iColBorderRB = $aBtnInfo[$i][4]
    $_iIndex = $aBtnInfo[$i][5]
    Return
    EndIf
    Next
    EndFunc ;==>_GetBtnColor

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

    Func _GetBtnHwndFromMouse($_iX, $_iY, ByRef $_aSize)
    Local $aCtrl
    For $i = 1 To $aBtnInfo[0][0]
    $aCtrl = $aBtnInfo[$i][5]
    If ($aCtrl[0] <= $_iX And $_iX <= $aCtrl[2]+$aCtrl[0]) And ($aCtrl[1] <= $_iY And $_iY <= $aCtrl[3]+$aCtrl[1]) Then
    $_aSize = $aCtrl
    Return $aBtnInfo[$i][0]
    EndIf
    Next
    Return 0
    EndFunc ;==>_GetBtnHwndFromMouse

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

    Func _WinAPI_DrawButtonRect(ByRef $_hDC, $_tpRECT, $_iPenColorLT, $_iPenColorRB, $_iPenSize=1)
    Local $tRECT
    If IsDllStruct($_tpRECT) Then
    $tRECT = $_tpRECT
    ElseIf IsPtr($_tpRECT) Then
    $tRECT = DllStructCreate('int;int;int;int;', $_tpRECT)
    EndIf
    Local $hPenLT = _WinAPI_CreatePen($PS_SOLID, $_iPenSize, $_iPenColorLT)
    Local $hPenRB = _WinAPI_CreatePen($PS_SOLID, $_iPenSize, $_iPenColorRB)
    Local $left = DllStructGetData($tRECT, 1), $top = DllStructGetData($tRECT, 2), $right = DllStructGetData($tRECT, 3), $bottom = DllStructGetData($tRECT, 4)
    _WinAPI_SelectObject($_hDC, $hPenLT)
    _WinAPI_DrawLine($_hDC, $left, $top, $left, $bottom-$_iPenSize) ; == Left
    _WinAPI_DrawLine($_hDC, $left, $top, $right, $top) ; == Top
    _WinAPI_SelectObject($_hDC, $hPenRB)
    _WinAPI_DrawLine($_hDC, $right-$_iPenSize, $top, $right-$_iPenSize, $bottom-$_iPenSize) ; == Right
    _WinAPI_DrawLine($_hDC, $left, $bottom-$_iPenSize, $right-$_iPenSize, $bottom-$_iPenSize) ; == Bottom
    _WinAPI_DeleteObject($hPenLT)
    _WinAPI_DeleteObject($hPenRB)
    EndFunc ;==>_WinAPI_DrawButtonRect

    [/autoit]

    Dateien

    ButtonHwnd_Ownerdraw.au3 8,16 kB – 291 Downloads
  • Beste Community - Aber leider nur AutoIt

    • BugFix
    • 24. März 2013 um 22:51

    Was macht denn dieses Forum so einzigartig? Nun, unter anderem die Tatsache, dass es hier fast ausschließlich um AutoIt geht. Somit haben wir einen gemeinsamen Nenner für alle User. Der “Geist“ des Forums, der hier im Laufe der Jahre herangewachsen ist, verbindet dies zu einem untrennbaren Ganzen. So etwas kann man nicht mal eben kopieren. Zumal ich überzeugt bin, dass die persönlichen Macken der User (meine eingeschlossen) :D ein nicht unerheblicher Grund für die Besonderheit unseres Forums sind.
    Insofern denke ich nicht, dass eine AutoIt-Sparte innerhalb eines anderen Forums genauso erfolgreich sein könnte.

  • Redirect bei URL-Auflösung herausfinden

    • BugFix
    • 24. März 2013 um 12:48

    Eine Brute-Force Attacke um die Lösung herauszufinden zeugt von geistiger Armut und widerspricht mit Sicherheit nicht nur unseren Forenregeln.

    Thema wird nicht freigegeben!

  • DIV Container anklicken?

    • BugFix
    • 24. März 2013 um 12:45

    "Like"-Button automatisiert anzuklicken widerspricht garantiert den Regeln aller Seitenanbieter.
    Somit gebe ich dieses Thema nicht zur Hilfe frei, sondern aktiviere es nur, damit du diese Info auch realisierst.

  • _GuiCtrlComboBoxEx - Problem mit Anzeige der Dropdownliste

    • BugFix
    • 23. März 2013 um 20:12

    Oh Mist, immer diese fehlerhaften Beschreibungen. In der Hilfe steht, dass Height=Höhe des Controls ist und nicht der Listbox. Denn deren Werte kann ich ja mit anderen Funktionen munter einstellen.
    Was solls - Danke dir.

  • _GuiCtrlComboBoxEx - Problem mit Anzeige der Dropdownliste

    • BugFix
    • 23. März 2013 um 19:40

    Hi,

    ich muß für eine Anwendung leider auf die Erstellung einer Combobox über die Funktion _GuiCtrlComboBoxEx_Create() zurückgreifen. Nur damit kann eine Combo auf einer Rebar angezeigt werden (und verschwindet nicht nach minimieren/wiederherstellen).
    Leider ist es mir nicht möglich mehrere Item in der Box anzuzeigen. Standardstyle ist $CBS_DROPDOWN + $WS_VSCROLL. Obwohl die Funktion ..._AddString() die Indizes der neu erstellten Item zurückgibt sind diese nicht sichtbar. Die Liste der ComboBox lässt sich nicht ausklappen. Die Funktion _GUICtrlComboBoxEx_SetCurSel() wählt den gewünschten Wert aus, was beweist, dass die Werte in der Liste sind.
    Wo liegt da der Hund begraben? 8|

    [autoit]

    #include <Constants.au3>
    #include <GuiComboBoxEx.au3>

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

    $Gui = GUICreate("Test")
    $hCombo = _GUICtrlComboBoxEx_Create($Gui, '', 0, 0, 200, 20)

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

    $sCombo = "01.02.2012|02.02.2012|03.02.2012|05.02.2012|06.02.2012|08.02.2012|09.02.2012"
    _GuiComboSetData($hCombo, $sCombo, "08.02.2012")

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

    GUISetState()

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

    Do
    Until GUIGetMsg() = -3

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

    Func _GuiComboSetData($_hCombo, $_sItemString, $_sVisibleItem)
    If StringLeft($_sItemString, 1) = '|' Then
    _GUICtrlComboBoxEx_ResetContent($_hCombo)
    $_sItemString = StringTrimLeft($_sItemString, 1)
    EndIf
    Local $aItem = StringSplit($_sItemString, '|'), $index, $iTop = -1
    For $i = 1 To $aItem[0]
    $index = _GUICtrlComboBoxEx_AddString($_hCombo, $aItem[$i])
    ;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $index = ' & $index & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    If $iTop <> -1 Then ContinueLoop
    If $aItem[$i] = $_sVisibleItem Then $iTop = $index
    Next
    _GUICtrlComboBoxEx_SetCurSel($_hCombo, $iTop)
    EndFunc

    [/autoit]
  • Text Field Value Wird Nicht Gesetzt!!!

    • BugFix
    • 23. März 2013 um 18:09

    Bitte setz das Thema auf "gelöst" (im Startpost Präfix editieren).

  • Text Field Value Wird Nicht Gesetzt!!!

    • BugFix
    • 19. März 2013 um 21:45

    Deine Lösung war das, was ich meinte: Collection erstellen und nach dem Ziel iterieren.
    Der Coder sollte Tags für "name" vergeben, dann hättest du nur noch 2..3 Zeilen Code. ;)

  • Text Field Value Wird Nicht Gesetzt!!!

    • BugFix
    • 19. März 2013 um 21:10
    Zitat von Raupi

    Wie kommt ihr drauf, das es seine Seite ist?


    Öhhhm... :whistling:
    Stimmt, hat er ja geschrieben.
    Aber wer um Himmels Willen schreibt solch einen Müll von html-Code? "&nbsp" zeugt von der Unfähigkeit sich bestehenden html-Normen zu unterwerfen. Sowas gehört einfach in keinen Code.

  • Text Field Value Wird Nicht Gesetzt!!!

    • BugFix
    • 19. März 2013 um 20:24

    Du solltest deine Webseite auf jeden Fall umarbeiten. Da du mit den _IE-Funktionen arbeiten möchtest wirst du mit dem aktuellen Inhalt das Problem haben, dass die Inhalte vom InternetExplorer geblockt werden, selbst wenn der User alle Sicherheitsschranken auf minimal stellt.
    Du solltest deshalb auf eine Browserunabhängige Lösung umstellen. Bin da nicht der Experte, aber über ein php-Skript sollte sich dein Vorhaben besser regeln lassen.

  • Text Field Value Wird Nicht Gesetzt!!!

    • BugFix
    • 19. März 2013 um 16:43

    Hier herrscht keine Zensur, sondern es gelten Forenregeln, gegen die du damit verstoßen hast.
    Also mäßige dich oder (was ich im Moment als besser erachte) verlaß freiwillig dieses Forum. Auf deine Gesellschaft legen wir keinen gesteigerten Wert.
    Sorry, wenn ich so direkt bin - aber Diplomatie liegt mir nicht.

  • Text Field Value Wird Nicht Gesetzt!!!

    • BugFix
    • 19. März 2013 um 16:39

    Letzter Aufruf!

    Entferne sofort die Links aus deiner Signatur, anderenfalls wird dein Account gesperrt!

  • Umrechnung von Farbräumen

    • BugFix
    • 18. März 2013 um 20:10

    Guckst du hier: Farbraumrechner

  • kleines Keybinder

    • BugFix
    • 18. März 2013 um 13:06
    Zitat von Skilkor

    Unten Rechts ist nicht zu empfehlen da einei Antivieren programme "Avast Glaub" und Avira sowieso Unten rechts ihre "Mitteilungs Boxen" hat


    [OT]
    Wie kommt ihr eigentlich darauf, dass man die Taskbar unten hat? Bei mir ist sie entweder links oder oben - je nach Monitorgröße (Widescreen-links, sonst oben). ;)
    [/OT]

  • Doppelklick bei mehreren Listviews ?

    • BugFix
    • 17. März 2013 um 16:56
    Zitat von Lottich

    Kann man das auch so umschreiben, dass ich das gleiche Ergebnis auch mit einem einfachen Linksklick erreichen kann?


    Steht doch alles in der Hilfe (UDF _GUICtrlListview_Create )
    Dort findest du in der $iCode-Auswertung etwa dieses:

    [autoit]

    Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[12] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "lParam"), _
    DllStructGetData($tInfo, "KeyFlags")]

    [/autoit]
  • Schnellere Filterung einer ListView + Zuordung

    • BugFix
    • 15. März 2013 um 11:14

    Lies aus der Exceldatei in eine StringVariable in der Form:

    Code
    Zeile1-Spalte1 & "|" & Zeile1-Spalte2 & "|" & ....Zeile1-letzteSpalte & @CRLF
    Zeile2-Spalte1 & "|" & Zeile2-Spalte2 & "|" & ....Zeile2-letzteSpalte & @CRLF
    .....
    .....
    Zeile_n-Spalte1 & "|" & Zeile_n-Spalte2 & "|" & ....Zeile_n-letzteSpalte & @CRLF

    Dann kannst du den Filter mit einem RegEx-Pattern auf diese Variable anwenden und nur die erforderlichen Ereignisse selektieren und dann im Listview anzeigen.
    Das kannst du ja beim Start gleich für alle Filtervarianten durchführen und dann nur das entsprechende Ergebnisarray des gewünschten Filters zur Anzeige bringen. Geht dann fix beim Umschalten. Um es noch mehr zu beschleunigen kannst du ja auch für jeden Filter ein eignes Listview erstellen und jedes sofort beim Start befüllen, und dann nur das gewünschte zur Anzeige bringen.

  • Ftp Updater

    • BugFix
    • 13. März 2013 um 12:12

    Da krieg ich doch gleich 'nen Hals!
    Wer nicht möchte, dass seine Beiträge (Schandtaten) nachvollziehbar sind, sollte lieber vor dem Schreiben nachdenken! Das Löschen von geposteten Threads dulden wir in der Regel nicht. Damit wird eine Postfolge aus dem Zusammenhang gerissen.

    [Postings wiederhergestellt - CLOSED]

  • Control trotz wechselnder INSTANCE finden

    • BugFix
    • 10. März 2013 um 17:40

    Wenn kein Eindeutigkeitsmerkmal vorhanden ist, hast du wenig Chancen auf einen sicheren Zugriff.
    Bei wechselnden Instanzen aber z.B. eindeutigem Text des Controls kann man in einer Schleife die Instanzen hochzählen und mit ControlGetText() nach dem eindeutigen Text suchen.
    Wie gesagt: ein Alleinstellungsmerkmal ist zwingend erforderlich.

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™