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

Beiträge von Oscar

  • Label automatisch vergrößern

    • Oscar
    • 15. Dezember 2010 um 19:03

    Man kann aber auch das Feld dynamisch verändern (mit ControlMove).

    Dazu kann man auch die Größe des Textes automatisch ermitteln lassen. Funktioniert allerdings nur bei Arial,11 zufriedenstellend:

    Spoiler anzeigen
    [autoit]


    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WinAPI.au3>

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

    $Form1 = GUICreate("Form1", 615, 440, 192, 124)
    $Label1 = GUICtrlCreateLabel("Label1", 60, 32, 60, 60, $SS_LEFT)
    GUICtrlSetFont(-1, 11, 0, 0, 'Arial')
    GUICtrlSetBkColor(-1, 0xFFFF88)

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

    $Sprache = GUICtrlCreateCombo("Sprache", 290, 32, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "Deutsch|Englisch")
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Sprache
    _Sprache()
    EndSwitch
    WEnd

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

    Func _Sprache()
    Switch GUICtrlRead($Sprache)
    Case "Deutsch"
    _ControlSetTextSize($Form1, $Label1, "Text in deutsch")
    Case "Englisch"
    _ControlSetTextSize($Form1, $Label1, "This is an english text for you?")
    EndSwitch
    EndFunc ;==>_Sprache

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

    Func _ControlSetTextSize($hWnd, $hControl, $sMsg)
    Local $hDC, $tSize, $iX, $iY, $aPos
    $hDC = _WinAPI_GetDC($hWnd)
    $tSize = _WinAPI_GetTextExtentPoint32($hDC, $sMsg)
    $iX = DllStructGetData($tSize, 'X')
    $iY = DllStructGetData($tSize, 'Y')
    $aPos = ControlGetPos($hWnd, '', $hControl)
    ControlMove($hWnd, '', $hControl, $aPos[0], $aPos[1], $iX, $iY)
    GUICtrlSetData($hControl, $sMsg)
    _WinAPI_ReleaseDC($hWnd, $hDC)
    EndFunc

    [/autoit]


    Hier mal mit gelbem Hintergrund um die Abmessungen besser sehen zu können.

  • FileCommander

    • Oscar
    • 15. Dezember 2010 um 16:36

    Ein neuer Tag, eine neue Version. ;)

    Es ist einiges hinzugekommen und ein paar Bugs mussten noch dran glauben. Siehe Post #1.

  • FileCommander

    • Oscar
    • 14. Dezember 2010 um 12:43

    So, noch eine neue Version (siehe Post #1).

    Ich habe die Sortierfunktion hinbekommen. :)
    Es wird nun die Dateiliste nach Klick auf die Spaltenüberschrift sortiert. Und zwar Verzeichnisse und Dateien jeweils für sich (das war mir wichtig).

  • FileCommander

    • Oscar
    • 14. Dezember 2010 um 09:14

    Raupi : Ok, Fehler behoben. Danke!

    @progandy: Ich bleib jetzt bei meiner eigenen Funktion. Habe die jetzt auch noch um eine Geschwindigkeits- und Restzeitanzeige erweitert.

    Außerdem wird nun abgefragt, was passieren soll, wenn die Quelldatei im Zielverzeichnis bereits vorhanden ist.
    Zur Auswahl stehen dann:
    - Abbrechen
    - Überschreiben
    - Alle Überschreiben
    - Überspringen
    - Alle Überspringen

    Neue Version in Post#1.

  • Dateianzahl auslesen

    • Oscar
    • 13. Dezember 2010 um 15:43

    DirGetSize mit Flag 1 gibt ein Array zurück mit der Größe und der Anzahl der Dateien/Verzeichnisse (siehe Hilfe).

  • System Errorcode UDF

    • Oscar
    • 13. Dezember 2010 um 15:31

    @progandy: Coole Funktion! :thumbup:
    Wieder was dazugelernt. Da schreibe ich die ganze Zeit immer eigene Meldungen und dabei gibt es das alles schon. :rolleyes:

  • FileCommander

    • Oscar
    • 12. Dezember 2010 um 17:51

    Mist! Da habe ich mir doch extra eine kleine Funktion "_AddTrailingBackslash" geschrieben und dann vergesse ich die dort anzuwenden. :rolleyes:
    Fehler ist in der nächsten Version beseitigt. Danke für die Meldung!

    Edit: Hat mir keine Ruhe gelassen. Hab die Überprüfung gleich mal überall eingefügt. Neue Version in Post #1.

  • FileCommander

    • Oscar
    • 12. Dezember 2010 um 17:26

    Raupi : Ja, das ist natürlich noch besser! Habe ich übernommen. Danke!

    Es gibt auch eine neue Version (siehe Post #1).

    Das Kopieren/Verschieben per FileCopy/FileMove war mir zu blöd. Da sieht man nicht so gut den Fortschritt.
    Also wollte ich meine Funktion "MultiFileCopy" verwenden, aber die führt unter Win7 dazu, dass das Progressfenster immer "einfriert". Nachdem ich einige Stunden mit der Fehlersuche verbracht hatte und zu keinem brauchbaren Ergebnis kam, habe ich die Kopierfunktion einfach per FileOpen/FileRead bzw. FileWrite geschrieben. Ich benutze dort (Zeile 864) einen 256 KB Puffer. Das hat sich bei mir als die schnellste Variante herausgestellt. Wenn das bei euch anders ist, dann bitte mal melden. Dann mache ich die Puffergröße einstellbar.
    Beim verschieben erkennt meine Funktion, wenn Quelle und Ziel auf dem gleichen Laufwerk liegen. In dem Fall benutze ich FileMove (am schnellsten), ansonsten wird erst kopiert und dann gelöscht.

  • FileCommander

    • Oscar
    • 11. Dezember 2010 um 23:14

    Ah! Du benutzt die Listenbearbeitung zum anlegen neuer Einträge!
    Das hatte ich so gar nicht vorgesehen, aber eigentlich eine gute Idee. :D
    Habe ich gleich mal eingebaut. Kommt mit der nächsten Version.

  • FileCommander

    • Oscar
    • 11. Dezember 2010 um 22:47

    Hmm...kann ich bei mir nicht nachvollziehen.
    Kannst Du mal das Skript starten und das ausprobieren? Da ist die Fehlermeldung aussagekräftiger.

  • FileCommander

    • Oscar
    • 11. Dezember 2010 um 20:27

    Raupi : Du hattest Recht, das war noch ein Bug. Beim Klick auf die Eingabezeile sollte diese auch blau werden bzw. das Listview entsprechend aktiviert. Das habe ich so von Dir übernommen. Danke!

    Es gibt aber auch sonst noch einige Neuerungen. Die Wichtigste (war mir jedenfalls am wichtigsten) sind die Verzeichnislisten (Favoriten). Damit kann man beliebige Verzeichnisse in eine Liste aufnehmen und von dort dann wieder abrufen (wie die Favoriten im Browser). Das machte natürlich noch eine Listenverwaltung (zum ändern und löschen der Einträge) notwendig. Ich hoffe, dass ich das einigermassen intuitiv bedienbar hingekriegt habe.

    Deinen Vorschlag zum anpassen der Spaltenreihenfolge habe ich auch umgesetzt (im Einstellungsmenü).

    Außerdem wird ShellExecute jetzt mit entsprechendem WorkingDir aufgerufen, was die Probleme beim Start mancher Programme behebt.

    Neue Version in Post #1.

  • FileCommander

    • Oscar
    • 9. Dezember 2010 um 19:22
    Zitat von progandy

    Die Listview hat schon die nötige Funktionalität, um die Spaltenreihenfolge zu ändern. Der Spaltenindex bleibt dabei erhalten: _GUICtrlListView_SetColumnOrder(Array)

    Wenn der Index erhalten bleibt, brauch ich ja an meinen Funktionen nichts verändern!? Na, dann ist das kein Problem. Danke! Wieder was gelernt. :)

    Raupi : Ok, Du hast mich überzeugt. Also wird $NM_CUSTOMDRAW doch nicht nur beim ändern der Spaltenbreite ausgelöst!? Auf meinem schnellen Rechner hier fiel das gar nicht so auf, aber als ich das auf meinem Notebook getestet habe...
    Also nochmal ein Update (Post #1).

  • FileCommander

    • Oscar
    • 9. Dezember 2010 um 16:52

    Oh verdammt! Da habe ich eine falsche Version wiederhergestellt. Den Fehler mit dem ändern des nicht aktiven Listviews hatte ich schon längst behoben. :pinch:
    Das war bloss ein Denkfehler, aber ich hatte danach noch an einer anderen Funktion rumprobiert und weil das nicht klappte, hatte ich die alte Version wiederhergestellt und nicht mehr daran gedacht, dass da noch der Fehler mit der Spaltenbreite drin war. :rolleyes:

    Zum Thema "Reihenfolge der Listviewspalten frei ändern": Da müsste ich mein ganzes Konzept (alles basiert auf eine feste Spaltenreihenfolge) über den Haufen werfen. Ob ich das einbauen werde, bleibt abzuwarten. Muss ich mir erstmal einen Plan über die Größe der Änderungen machen.

  • FileCommander

    • Oscar
    • 8. Dezember 2010 um 21:42

    So, die nächste Version ist fertig (siehe Post #1).

  • Happy Birthday "AutoIt.de"

    • Oscar
    • 8. Dezember 2010 um 04:36

    Oh, glatt den Geburtstag von AutoIt.de vergessen. Happy Birthday, AutoIt.de! :party:

    Etwas besonderes ist das Forum hier auf jeden Fall. Schon beinahe familiär. Erinnert mich immer an die schöne alte Mailbox-Zeit.
    Deshalb: Vielen Dank an die Admins und allen aktiven Usern, die dieses Forum zu dem machen, was es ist. :thumbup:

    P.S.: Im November/Dezember kommt man aus dem Feiern ja gar nicht mehr raus. ;)

  • Änderung der Spaltenbreite eines Listviews erkennen

    • Oscar
    • 8. Dezember 2010 um 04:20

    Super, damit wäre das jetzt auch geklärt. :thumbup:

    Das mit "-12" ($NM_CUSTOMDRAW) ist genau so, wie ich es haben will. Perfekt! Danke!

  • Greenhorn hat Geburtstag.

    • Oscar
    • 8. Dezember 2010 um 04:11

    Von mir auch alles Gute nachträglich. :party:
    Bei der Drittel-Theorie können wir ja noch lange von Deinem (AutoIt-)Wissen profitieren. :D

  • FileInstall problem

    • Oscar
    • 7. Dezember 2010 um 20:25

    Dann liegt bei Dir das Skript im Hauptpfad (z.B. "C:\"). Dort liefert @ScriptDir das Ergebnis "C:\", wenn das Skript aber in einem Unterverzeichnis liegt (z.B. "C:\Programme\"), dann gibt @ScriptDir nur "C:\Programme" (ohne abschließenden Backslash) zurück und es würde zu einem Fehler kommen.

  • Änderung der Spaltenbreite eines Listviews erkennen

    • Oscar
    • 7. Dezember 2010 um 20:18

    Cool! Das funktioniert! :thumbup:

    Aber was ist "-12"?

    Trotzdem schonmal vielen Dank! Ist eigentlich damit schon gelöst, aber vielleicht weiss ja noch jemand, was diese "-12" für ein Notify-Code darstellt.

  • Tastendruck in Textfeld schreiben

    • Oscar
    • 7. Dezember 2010 um 19:21

    autoBert: Nein, die Variante mit _IsPressed würde ich nicht als Keylogger bezeichnen.

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™