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

  • Listview mit iteminput?

    • BugFix
    • 10. Juni 2010 um 21:43
    Zitat von Alizame

    (oder GUIRegisterMsg akzeptiert da nur eins^^)


    Da mußt du in der Msg-Funktion nach den Listviewhandeln unterscheiden. Dann geht es auch für mehrere LV.

  • Listview mit iteminput?

    • BugFix
    • 10. Juni 2010 um 18:51

    Schau mal hier nach: ListView - Editieren aller SubItems

  • Scite für C(++)

    • BugFix
    • 6. Juni 2010 um 15:09
    Zitat von Ubuntu

    Wo finde ich die SciTEUser.properties

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dateien

    user.propertiespng.png 9,17 kB – 0 Downloads
  • Scite für C(++)

    • BugFix
    • 6. Juni 2010 um 14:54

    Oder:
    - BVRDE
    - cppIDE leider nur ungarisch
    - Quincy

  • Excel Inhalte kopieren

    • BugFix
    • 6. Juni 2010 um 13:59

    Du mußt beim Einfügen per Flag festlegen ob Formel oder Wert eingefügt wird. Du hast richtigerweise 'xlPasteValues' verwendet - aber als String! Hier mußt du natürlich den Wert der Konstanten einfügen ( $xlPasteValues = 0xFFFFEFBD ).
    Die Konstanten bekommst du, wenn du in Excel den VBA-Editor öffnest (Alt+F11) und dort den Objektkatalog öffnest (in der Rebar das Symbol, wie ein Pappkarton mit bunten Fetzen drüber ;) ). Dann einfach in das Suchfeld den Namen der Konstanten eingeben.
    In der Range-Auswahl hast du noch einen Fehler - du kopierst A1:A3. Das kannst du natürlich nicht in eine Zelle einfügen.
    So sollte es funktionieren:

    [autoit]


    Local Const $xlPasteValues = 0xFFFFEFBD
    $oExcel.ActiveSheet.Range("A1").Copy
    $oExcel.ActiveSheet.Range("B1").PasteSpecial($xlPasteValues)

    [/autoit]
  • Gui nicht außerhalb des Desktops

    • BugFix
    • 6. Juni 2010 um 13:08

    Einen Style gibt es nicht.
    Verwende WM_MOVE um auf eine Bewegung des Fensters reagieren zu können. Dann kannst du prüfen ob links/rechts/oben/unten die Maße des Desktops überschreitet und das Fenster dann zurückbewegen auf Grenzposition.

  • WM-Tippspiel

    • BugFix
    • 6. Juni 2010 um 10:07

    Ich mach mal aus Jux mit. Fußball interessiert mich nicht sooo unbedingt. ;)
    Habe aber bereits durchgetippt. Mein Weltmeister steht fest. :D

  • Problem mit DLL Funktion

    • BugFix
    • 6. Juni 2010 um 08:55
    Zitat von FunH@cker

    als array in
    einer funktion in der dll übergeben


    Da vertue ich mich auch meist bei. Es ist sicherlich als Pointer zu übergeben - aber nicht als Pointer-Array, sondern als 'normales' Byte-Array. Versuch mal selbst, ob dir mein Beitrag hier weiterhilft. Ansonsten melde dich wieder (und bitte poste dann mal die Original Funktions- / Parameterbeschreibung).

  • Coordinate errechnen

    • BugFix
    • 6. Juni 2010 um 08:45

    Hier mal mit Funktion:

    [autoit]

    Local $x1 = 20, $y1 = 10, $x2 = 170, $y2 = 130

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

    ; === Steigung ermitteln:
    Local $m = ($y2 -$y1) / ($x2 -$x1) ; = 0,8

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

    ; === Prüfen ob Punkt auf Linie
    ; === x1, y1 und Anstieg sind nun bekannt
    ; === ein Punkt ist dann auf der Linie, wenn er dieselbe Steigung besitzt ausgehend von denselben Ausgangskoordinaten

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

    Local $testX = 40, $testY = 26
    MsgBox(0, '', $testX & ', ' & $testY & ' auf der Linie?' & @CRLF & _PointOnLine($x1, $y1, $x2, $y2, $testX, $testY))

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

    Func _PointOnLine($x1, $y1, $x2, $y2, $PointX, $PointY)
    Local $m = ($y2 -$y1) / ($x2 -$x1)
    Local $mP = ($PointY -$y1) / ($PointX -$x1)
    If $mP = $m Then
    Return True
    Else
    Return False
    EndIf
    EndFunc

    [/autoit]
  • Listview klicken

    • BugFix
    • 5. Juni 2010 um 21:06

    Hier ein Bsp., beachte den Style, wenn du SubItem-Klicks auswerten möchtest.

    Spoiler anzeigen
    [autoit]

    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>

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

    $gui = GUICreate('test')
    ; === $LVS_EX_FULLROWSELECT zwingend für Itemnotifikation bei SubItemklick!
    $hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200, -1, BitOR($LVS_EX_TRACKSELECT,$LVS_EX_FULLROWSELECT))
    _GUICtrlListView_SetColumnWidth($hListView, 0, 146)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 1 To 10
    GUICtrlCreateListViewItem('Zeile ' & $i & ' Spalte 1|Zeile ' & $i & ' Spalte 2', $hListView)
    Next
    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

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

    Func _LeftClick($Info)
    MsgBox(0, 'Text in Spalte', _GUICtrlListView_GetItemText($hListView, $Info[0], $Info[1]) )
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    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[2] = [DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem")]
    _LeftClick($aInfo)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • Complementary Komplementärfarbe berechnen

    • BugFix
    • 5. Juni 2010 um 19:46
    Zitat von RR04

    Die Komplementärfarbe von blau ist orange.


    Jein. ;)
    Komplementärfarben unterliegen keiner wirklichen Gesetzmäßigkeit sondern einem Harmonieempfinden. Datenbanken mit Komplementärfarben sind daher auch nicht frei erhältlich und werden von den Firmen (vor allem im Printbereich) geschützt wie der Augapfel.
    Aber dein Ansatz ist ganz praktikabel. :thumbup:

  • DLL Problem

    • BugFix
    • 3. Juni 2010 um 19:41

    Versuchs mal so:

    [autoit]

    Func UsbInit()
    Local $ret = DllCall('USB2.dll', 'boolean', 'UsbInit', 'byte', 0)
    If Not @error Then
    Return $ret[0]
    Else
    Return SetError(@error,0,0)
    EndIf
    EndFunc

    [/autoit]
  • DLL Problem

    • BugFix
    • 3. Juni 2010 um 18:47
    Zitat von FunH@cker

    der DevNum muss 0 sein und Byte auch aber das geht nicht so wie ich denke


    ..und wie hast du es dir gedacht? Ich sehe kein Skript von dir.

  • GPIPlus

    • BugFix
    • 3. Juni 2010 um 18:34

    Eine Möglichkeit:
    Den Bereich in einer RECT-Struktur speichern. (Left,Top,Right,Bottom)
    Mit _WinAPI_PtInRECT kannst du abprüfen, ob deine X,Y -Koordinaten innerhalb dieses RECT liegen.

  • TaskManager sperren

    • BugFix
    • 3. Juni 2010 um 18:26
    Zitat von oOBecksOo1337

    aber mein taskmanager geht noch


    Aus dem Snippet kann ich nichts herauslesen. :P
    Und wie du aus den vorigen Posts entnehmen kannst, scheint es nicht auf allen PC zu laufen (warum auch immer).

  • Free AutoIt Object

    • BugFix
    • 3. Juni 2010 um 10:51

    Anmerkung von mir:

    Bitte wähle eine vernünftige Schriftgröße in deinem Post! Du hast auch in der SB einen generellen Hang groß zu schreiben. Dieses wird aber als "Schreien" empfunden und sollte somit nur in Ausnahmen (z.B. um einen Begriff hervorzuheben) genutzt werden.

    Wenn du Funktionen als UDF bezeichnest, sollten sie auch annähernd diesem Standard entsprechen. Dazu gehört u.A. auch eine treffende Funktionsbezeichnung. "AutoIt" davor zu setzen ist völlig überflüssig und wie bereits angeführt ist der Begriff "Objekt" auch fehl am Platze.
    Ich möchte deinen Tatendrang nicht bremsen, aber es macht schon Sinn, erst mal die Forumssuche zu nutzen und nachzusehen ob etwas in der Form schon existiert.
    Ich hatte dafür mal ein Skriptbeispiel gepostet (auf WinAPI basierend) und in dem Thread findest du auch noch Links zu anderen gleichartigen Lösungen. Auch GDI+ Varianten sind schon als Skript hier im Forum aufgetaucht, einfach mal ein bischen suchen.
    Also nicht immer das Fahrrad erneut erfinden. ;)

  • Breite eines Controls (Label) herausfinden

    • BugFix
    • 2. Juni 2010 um 21:36
    Zitat von Ahnungslos

    Hier mal ohne Gdi

    [autoit]


    $Label = GUICtrlCreateLabel("Dies ist ein Test", 10, 10)
    $a = WinGetPos(GUICtrlGetHandle($Label))
    $Breite = $a[2]

    [/autoit]


    Damit kannst du definitiv NICHT die tatsächliche Breite des Textes im Label ermitteln, sondern nur die Breite des Labels.
    Und das ist im seltensten Fall genauso breit, wie der gesetzte Text. ;)

  • _GUICtrlListView und GUICtrlSetOnEvent

    • BugFix
    • 31. Mai 2010 um 18:25
    Zitat von sl4y3r

    Mein Problem dabei ist... dass das Skript es nicht erkennt wenn man auf ein Item drückt... (guictrlsetonevent - verwendet)

    ... nach möglichkeit bitte kein WM_NOTIFY


    Da wirst du aber nicht um WM_NOTIFY herumkommen.

  • Fettes Problem

    • BugFix
    • 30. Mai 2010 um 08:56
    Zitat von m-obi

    Edit: Wieso machen wir das eigentlich nochmal immer mit BitAND und nicht so?

    [autoit]

    If GUICtrlRead($hCheck) = $GUI_CHECKED Then

    [/autoit]

    Weil der mit GUICtrlRead($hCheck) ausgelesene Wert nicht NUR $GUI_CHECKED oder $GUI_UNCHECKED sein kann, sondern ein Statuswert ist der noch andere Werte enthalten kann. Um also aus einem Summenwert einen speziellen abzuprüfen ist BitAND(Status, gesuchter_Wert) erforderlich.

  • Maximieren

    • BugFix
    • 30. Mai 2010 um 07:32

    Schau dir mal: GUICtrlSetResizing() an.
    Funktioniert allerdings nicht mit allen Ctrls zuverlässig.

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™