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

  • _IsPressed in Inputbox

    • BugFix
    • 30. Juni 2015 um 21:14

    Nochwas zu HotKeys. Diese sollte man nicht mit einer GUI verwenden, da sind GuiSetAccelerator wesentlich besser geeignet, da diese von Haus aus nur für die jeweilige GUI gelten.
    HotKeys sind nur sinnvoll für systemweite Anwendungen.

  • _IsPressed in Inputbox

    • BugFix
    • 29. Juni 2015 um 12:08

    WM-Messages wertest du aus, durch registrieren einer Funktion dazu:

    AutoIt
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    
    
    $hGui = GUICreate("Test")
    GUISetOnEvent($GUI_EVENT_CLOSE, '_ende')
    $cInput = GUICtrlCreateInput('', 50, 20, 100, 20)
    GUISetState(@SW_SHOW)
    
    
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    
    
    While True
        Sleep(100)
    WEnd
    
    
    Func _ende()
        Exit
    EndFunc
    
    
    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit = GUICtrlGetHandle($cInput)
        $hWndFrom = $ilParam
        $iCode = BitShift($iwParam, 16) ; Hi Word
        Switch $hWndFrom
    		Case $hWndEdit
                Switch $iCode
    				Case $EN_CHANGE  ; Sent when the user has taken an action that may have altered text in an edit control
    					Local $sRead = ControlGetText($hWnd, '', $iIDFrom)
    					If StringRegExp($sRead, ',\Z') Then ; last Input = ','
    						ControlSetText($hWnd, '', $iIDFrom, StringTrimRight($sRead, 1)) ; Komma abschneiden
    						ControlSend($hWnd, '', $iIDFrom, '{END}') ; Cursor ans Ende setzen
    					EndIf
    			EndSwitch
    	EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_COMMAND
    Alles anzeigen
  • Zukunft für AutoIt.de - Impressionen und Ideen

    • BugFix
    • 27. Juni 2015 um 11:51

    Eigentlich gibt es nur ein einziges Problem:
    Wir sind auf eine neue Forensoftware(version) umgezogen.

    Und das ist genau, wie bei den Windows-Updates: häufig geht das erbarmungslos in die Hose.

    Mir erschließt sich bis heute nicht, warum dieser Umzug durchgeführt wurde. Ich bin der Meinung, was läuft, sollte man auch laufen lassen.
    Nun ist das aber passiert. Und wie es aussieht, sind weit intensivere administrative Eingriffe erforderlich um aus diesem Webseiten-Haufen wieder ein Forum zu machen, als im Vorfeld gedacht. Was Zeit/Lust etc. auf Adminseite angeht, kann ich nicht einschätzen, warum hier kaum etwas vorangeht. Kosten dürften wohl eher kein Problem darstellen, wenn finanzieller Bedarf war, haben wir bisher immer in kürzester Zeit diesen decken können.

    @Gun-Food - Sofern du das liest, wäre es nett, wenn du mal eine klare Ansage machen könntest, wie der aktuelle Status ist und ob ein Zeitplan zum Lösen der Probleme besteht.

  • User.calltips.api

    • BugFix
    • 23. Juni 2015 um 09:57

    OMG - ich werde echt alt. 8|
    Vergesst, was ich sagte. Ich bin mental die ganze Zeit auf "User-Abbrevs" aus gewesen anstatt auf "User-Calltips". :S
    Da ich die Calltips nicht verwende ist mir das Problem auch nie aufgekommen.
    Also Sorry für die Verwirrung, die ich gestiftet habe.

    @opaed Ich glaube aber, du hast da etwas in den falschen Hals bekommen. Meine Hinweise waren tatsächlich als Hilfe gemeint und nicht als irgendeine Form der Zurechtweisung. Das maße ich mir nicht an. Und wer lange genug dabei ist, der hat bestimmt schon mal mitbekommen, wie es aussieht, wenn ich dann mal etwas "intensiver" werde. Was im Normalfall nur beim Thema Bots passiert.
    Also frag weiter, wenn was unklar ist.

    Was die Zeichenzahl angeht:
    SciTE ist in der Größe der Dokumente nur vom verfügbaren Speicher abhängig. Das heißt, du kannst bequem 2GB-Dateien (oder mit einem 64Bit-SciTE 4GB-Dateien) öffnen. Die tatsächlich genutze Speichergröße ist dann aber deutlich größer, da Positions- und Styleinformationen sowie Folding hinzukommen.

  • User.calltips.api

    • BugFix
    • 22. Juni 2015 um 19:43

    Die SciTEUser.properties ist im Normalfall erstmal gänzlich nackich. :rolleyes:
    Sie dient nur dazu Standardeinstellungen zu überschreiben. Dazu muß man wissen, wie die Properties geladen werden.
    1. Globale Einstellungen
    2. Anwendungsspezifische Einstellungen (au3.properties)
    3. SciTEUser.properties

    Erstmal werden also alle Einstellungen aus der Globalen geladen, diese kann man dann für die jeweilige Anwendung überschreiben oder letztlich weitere Änderungen durch den User vornehmen.
    Es gibt aber auch Properties, die nur hardcodiert vorliegen aber trotzdem existieren und verändert werden können. Ist vergleichbar als ob du in einem Skript versuchst einen INI-Schlüssel zu lesen und wenn er nicht existiert diesen mit Standardwerten anlegst.

    Um das gegen zu prüfen lösche doch die Property einfach - das wird nichts am Verhalten ändern. ^^

  • User.calltips.api

    • BugFix
    • 22. Juni 2015 um 18:19
    Zitat von Einexage

    Falls du mir nicht glaubst - teste es.

    Ich habe in meinem bisherigen Schaffen schon mindestens 20 SciTE-Installationen hinter mir. In meinen Tools verwende ich auch massig die Möglichkeit von Zeilenumbrüchen die auch immer erkannt werden. Noch nie mußte ich diese Property setzen. Aber vielleicht hat meine SciTE-Installation einfach Schiß vor meiner unbändigen Rache und tut unkonfiguriert, was es soll... :rofl:

    Im Übrigen habe ich bereits 2007 ein Tool für UserCalltips geschrieben, und das setzt die Zeilenumbrüche auch sauber ein. Auch bei allen, die das Tool nutzen funktioniert es ohne Setzen einer extra Property.

    Apropos Suche: Ich gehe für Forum-Suche ausschliesslich über Google. site:autoit.de SUCHBEGRIFF

  • ImageList in ListView - Größe eines einzelnen Bildes ändern

    • BugFix
    • 22. Juni 2015 um 15:29
    Zitat von AutoTim

    Nun wollte ich wenn der Benutzer eines anklickt (markiert) das Covers größer machen.

    Dann blende es in dem Moment doch einfach in einem extra Fenster gezoomt an dieser Stelle ein.

  • String nach zeichen durchsuchen

    • BugFix
    • 22. Juni 2015 um 15:25
    Zitat von AutoMit

    Wie lange sind rückblickend Anhänge im Forum verfügbar?

    Normalerweise unbegrenzt.

    Zitat von AutoMit

    Warum wurden damals Threads wie eben genannter geschlossen?

    Das passierte im Zusammenhang mit Forenumzug auf neue Version (hier bereits beim vorletzten mal). Damals wurden nur die meisten Post geschlossen. Diesmal wurde alle Anhänge geschreddert. Ob das wiederhergestellt werden kann/wird steht noch in den Sternen.

  • Suche Programm zum Synchronisieren mit FTP Server

    • BugFix
    • 22. Juni 2015 um 11:19

    Na dann nimm doch direkt FileZilla. Damit kannst du auch synchronisieren.
    Entweder Lokal als Basis und Server wird synchronisiert oder in Gegenrichtung.
    Ich verwende ausschliesslich FZ zur FTP-Kommunikation.

    Edit:
    Falls du suchst, es gibt keinen eigenen Punkt Synchronisation. Das legst du in den Settings für Up-/Download fest. Mit "Überschreiben, wenn Quelle neuer" wird auf das Zielsystem nur kopiert, wenn die Quelle neuer ist. Es gibt auch noch andere Optionen (neuer oder unterschiedliche Größe), das kannst du dann nach Geschmack bestimmen.
    Dann einfach kpl. Ordner markieren und up- od. downloaden. Was sich nicht geändert hat wird einfach übersprungen.

  • ImageList in ListView - Größe eines einzelnen Bildes ändern

    • BugFix
    • 22. Juni 2015 um 11:14
    Zitat von AutoTim

    Ist mein Vorhaben überhaupt möglich ?

    Die max. Größe für die Images legst du beim Erstellen der Imagelist fest. Und diese Größe ist für alle Elemente bindend.
    Eine individuelle Anpassung für einzelne Elemente läßt sich möglicherweise mittels Ownerdraw realisieren. Dann mußt du aber die kpl. Verwaltung des Listview (zeichnen, Text zuweisen, Größe festlegen, etc.) auch selbst realisieren. Ein gehöriger Aufwand.
    Warum skalierst du größere Images nicht einfach auf die Standard-Höhe, ist doch der einfachste Weg?

  • Text filtern mit StringInStr bzw. Position von Wörtern herausfinden und anwählen

    • BugFix
    • 22. Juni 2015 um 09:50
    Zitat von Interlink

    Der Bindestrich "-" ist immer fix im Input woran man sich orientieren könnte

    Na dann:
    - Position Bindestrich ermitteln (StringInStr)
    - Links abschneiden bis inkl. Bindestrichposition (StringTrimLeft)
    schon fertig.

    Da braucht man nix mit RegExp.

  • User.calltips.api

    • BugFix
    • 22. Juni 2015 um 09:12
    Zitat von Einexage

    calltip.*.use.escapes=1

    Im Normallfall muß diese Einstellung nicht gesetzt werden. Gibt es diese Property nicht, ist der Default-Wert 1.
    Auch mußt du nicht zwingend diee Scintilla-Doku durchforsten. Hier im Forum findest du gerade zur SciTE-Konfiguration reichlich Hinweise und PlugIns. ;)

  • Externe Hilfedatei verlinken / aufrufen

    • BugFix
    • 19. Juni 2015 um 21:16

    Nun werde mal konkret:
    - was für eine Datei ist offen (Suffix)
    - welche Hilfedatei soll geöffnet werden

    Wenn du die AutoIt-Hilfe ersetzen willst, dann sag das bitte. AutoIt nutzt keine *.chm sondern eine *.exe als Hilfedatei, bzw. mit der exe wird die chm aufgerufen.


    Die Dateianhänge fehlen bei allen Threads, die sind bei der Forum-Umstellung geschrottet worden. ;(

  • Externe Hilfedatei verlinken / aufrufen

    • BugFix
    • 19. Juni 2015 um 17:42

    Kannst du in SciTE einbinden mit:
    command.help.FILEPATTERN=$(CurrentWord)!C:\DEINE\HILFE.chm
    FILEPATTERN = *.suffix - also *.py oder *.lua
    Ein zweiter Eintrag ist noch erforderlich:
    command.help.subsystem.FILEPATTERN=4

    Diese Hilfe wird dann automatisch über F1 angesprochen. Also eine Hilfe für ein Sprache, wo schon eine Hilfe existiert (also wie bei *.au3) geht natürlich nicht über F1.

    Achja, hatte ich vergessen zu erwähnen: Eintrag erfolgt in SciTEUser.properties Menü: <Optionen><Benutzereinstellungen>

  • Internet Explorer kann kein Hintergrundbild?

    • BugFix
    • 19. Juni 2015 um 10:43

    Also dass der IE es nicht so hat mit der Umsetzung von Normen ist ja nix Neues. Aber dass im IE sich nicht mal ein Background-Image anzeigen läßt, hat mich dann doch etwas irritiert (oder besser schockiert). Durch Zufall hatte ich ein Tut von mir im IE geöffnet und mich gewundert, dass der BG weg ist. Jetzt habe ich mal weitere Seiten im IE angeschaut -- überall dasselbe, es werden keine BG-Bilder angezeigt. ???
    Ich vermute mal, der IE ist einfach zu doof um body { background: url("pict_url") } zu verstehen. Aber auch Versuche mit body { background-image: ("pict_url") } schlugen fehl.

    Daher mal meine Frage an jene, die noch den IE nutzen: Wie kann ich dort Hintergrundbilder anzeigen? Meine Websites lassen sich inzwischen auf allen Mobilgeräten und allen Browsern ansehen - ausser dem IE. Naja - vielleicht ist das ja ein besonderes Qualitätsmerkmal. :whistling:


    EDIT:
    Ha-Ha-Ha - was für ein Ei. Auf dem PC war 'Bilder anzeigen' bei den IE-Einstellungen nicht aktiv. Also, IE ist doch nicht ganz so doof, wie gedacht. :D

  • GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

    • BugFix
    • 18. Juni 2015 um 11:16

    So, ich hab den Fehler gefunden.
    Die Imagelist muss dem Listview zugeordnet werden bevor Item hinzugefügt werden:

    AutoIt
    #include <GuiImageList.au3>
    #include <GuiListView.au3>
    
    
    _Main()
    
    
    Func _Main()
        Local $hImage, $hListView
        GUICreate("ListView: Setzt die Imagelist", 800, 620)
        $hListView = GUICtrlCreateListView("test", 2, 2, 750, 550)
    	_GUICtrlListView_SetColumnWidth($hListview, 0, 105)
    
    
        $hImage = _GUIImageList_Create(100, 150)
    ;~ 	_GUIImageList_SetIconSize($hImage, 100, 150)
    	For $i = 0 To 20
    		_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, _RandomRGB(), 100, 150))
    	Next
    	Local $hPrevImageList = _GUICtrlListView_SetImageList($hListView, $hImage, 1)  ;== ImageList muss zugeordnet werden bevor!! Item zugefügt werden
    
    
    	For $i = 0 To 20
    		_GUICtrlListView_AddItem($hListView, "Item " & $i, $i)
    	Next
        GUISetState()
    
    
        Do
        Until GUIGetMsg() = -3
        GUIDelete()
    EndFunc   ;==>_Main
    
    
    Func _RandomRGB()
    	Local $iR = Random(0,255,1), $iG = Random(0,255,1), $iB = Random(0,255,1)
    	Return "0x" & Hex($iR,2) & Hex($iG,2) & Hex($iB,2)
    EndFunc
    Alles anzeigen
  • GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

    • BugFix
    • 17. Juni 2015 um 23:29

    Mangels Bildern kann ich mit deinem Code wenig anfangen. Du solltest versuchen, ein auf jedem PC lauffähiges Musterskript zu erstellen, das deinen Fehler beinhaltet.
    Meiner Meinung nach verursachen die Images das Verhalten.
    Übrigens brauchst du die Images nicht zählen. Beim Hinzufügen zur Imagelist wird der Index für dieses Image zurückgegeben (Hilfe lesen hilft).

    AutoIt
    Global $anzahl_zeile = 0  ; Wozu??
    
    
    For $anzahl_array = 1 To UBound($array_dateien) - 1
    	_GUIImageList_AddBitmap($hImage, $array_dateien[$anzahl_array][0] & "#cover.bmp") ;Bild hinzufügen  
    	; BESSER:
    	$iNewIndex = _GUIImageList_AddBitmap($hImage, $array_dateien[$anzahl_array][0] & "#cover.bmp") ;Bild hinzufügen 
    ;~ 	$anzahl_array = $anzahl_array + 1 ;Nur wenn Film vorhanden zähle Bild eingefügt zähle eine Zeile weiter zum Film
    ;~ 	_GUICtrlListView_AddItem($idListview, "test", $anzahl_zeile) ;Leerer Text für "Cover"
    	_GUICtrlListView_AddItem($idListview, "", $iNewIndex) ;Leerer Text für "Cover"
    	; wozu soll $anzahl_zeile gut sein?
    	$anzahl_zeile = $anzahl_zeile + 1 ;Am Ende die geschriebene Zeile um eins erhöhen
    Next
    Alles anzeigen
  • DateDiff bestimmter Monat innerhalb eines Zeitraums

    • BugFix
    • 17. Juni 2015 um 20:42
    Zitat von xbl38spezial

    Und wenn ich schon mal schreibe, kann ich die Beträge auch mit 1.000 er Trennpunkt darstellen?

    AutoIt
    ; === Formatierter Währungsstring
    
    
    ; Ausgabe Euro, Standard-Währungseinstellung
    ConsoleWrite(_FormatCurrency(200*12345) & @CRLF)  ; ==> 2.469.000,00 €
    
    
    ; Ausgabe Dollar, Währungssymbol führend
    ConsoleWrite(_FormatCurrency(-200*12345, -1, -1, '
    , -1, 1) & @CRLF)  ;==> $ -2.469.000,00
    
    
    ; Ausgabe Dollar, Währungssymbol führend, negativer Wert in Klammern
    ConsoleWrite(_FormatCurrency(-200*12345, -1, -1, '
    , -1, 1, 1) & @CRLF)  ;==> [$ -2.469.000,00]
    
    
    ; Ausgabe Euro, mit Vornull
    ConsoleWrite(_FormatCurrency(4/80) & @CRLF)  ;==> 0,05 €
    
    
    ; Ausgabe Euro, ohne Vornull
    ConsoleWrite(_FormatCurrency(4/80, -1, -1, -1, 0) & @CRLF)  ;==> ,05 €
    
    
    ;===============================================================================
    ; Function Name...: _FormatCurrency
    ; Description.....: Formatiert einen Ausdruck als Währung
    ; Parameter(s)....: $iExpression     der zu formatierende Ausdruck
    ; Requirement(s)..: $iNumDigit       Anzahl Nachkommastellen, -1 = Währungseinstellung PC (Standard)
    ;                   $iGroupDig       Anzahl Zeichen für Gruppierung, -1 = 3 Zeichen (Standard)
    ;                   $sCurr           Währungszeichen, -1 = Währungseinstellung PC (Standard)
    ;                   $iLeadingZero    Führende Null anzeigen, -1 = Währungseinstellung PC (Standard), 0 = nein
    ;                   $fLeadingSign    Währungszeichen führend anzeigen, 0 = nein (Standard)
    ;                   $fNegNumInPara   Negative Werte in eckigen Klammern anzeigen, 0 = nein (Standard)
    ; Return Value(s).: Der formatierte Währungsstring
    ; Note............: Die Gruppierung ermöglicht maximal 8 Blöcke
    ; Author(s).......: BugFix (bugfix@autoit.de)
    ;===============================================================================
    Func _FormatCurrency($iExpression, $iNumDigit=-1, $iGroupDig=-1, $sCurr=-1, $iLeadingZero=-1, $fLeadingSign=0, $fNegNumInPara=0)
    	Local $sRegKey = 'HKCU\Control Panel\International', $sReturn, $aTmp, $sTmp, $sNul = '000000000', $fNeg = 0
    	Local $sDec = RegRead($sRegKey, 'sMonDecimalSep'), $sThousand = RegRead($sRegKey, 'sMonThousandSep')
    	Local $sNegative = RegRead($sRegKey, 'sNegativeSign')
    	If $iGroupDig < 0 Then $iGroupDig = 3
    	If $sCurr = -1 Then $sCurr = RegRead($sRegKey, 'sCurrency')
    	If $iNumDigit = -1 Then $iNumDigit = RegRead($sRegKey, 'iCurrDigits')
    	If $iLeadingZero = -1 Then $iLeadingZero = RegRead($sRegKey, 'iLZero')
    	If IsFloat($iExpression) Then
    		$iExpression = Round($iExpression, $iNumDigit)
    		$sReturn = String($iExpression)
    		If $iNumDigit Then
    			$aTmp = StringSplit(String($iExpression), '.')
    			$sReturn = $aTmp[1] & Chr(29) & StringLeft($aTmp[2] & $sNul, $iNumDigit)
    		EndIf
    	Else
    		$sReturn = String($iExpression)
    		If $iNumDigit Then $sReturn = String($iExpression) & Chr(29) & StringLeft($sNul, $iNumDigit)
    	EndIf
    	If Not $iLeadingZero And StringRegExp($sReturn, '^-?0' & Chr(29) & '\d*') Then $sReturn = StringReplace($sReturn, '0' & Chr(29), Chr(29), 1)
    	If $iGroupDig > 0 And StringLen(Abs($sReturn)) >= $iGroupDig Then
    		$aTmp = StringRegExp(StringReplace($sReturn, '.', Chr(29)), _
    		"(-?\d{1,"&$iGroupDig&"})(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(?:\Z|("&Chr(29)&"\d+))", 3)
    		For $i = 0 To UBound($aTmp) -1
    			If $aTmp[$i] <> '' Then $sTmp &= $sThousand & $aTmp[$i]
    		Next
    		$sReturn = StringTrimLeft(StringReplace($sTmp, $sThousand&Chr(29), Chr(29)), 1)
    	EndIf
    	If StringLeft($sReturn, 1) = '-' Then $fNeg = 1
    	$sReturn = StringReplace(StringReplace($sReturn, '-', $sNegative), Chr(29), $sDec)
    	If $fLeadingSign Then
    		$sReturn = $sCurr & ' ' & $sReturn
    	Else
    		$sReturn &= ' ' & $sCurr
    	EndIf
    	If $fNeg And $fNegNumInPara Then $sReturn = '[' & $sReturn & ']'
    	Return $sReturn
    EndFunc  ;==>_FormatCurrency
    Alles anzeigen

    Boah - das Syntaxhighlighting ist ja noch immer abartig.


    Zitat von xbl38spezial

    500,33 € * 0,5 = 250,16 € anstatt wie es richtig wäre 250,17 € oder

    Verwende Round(Expression, 2) zum kaufmännischen Runden.

  • Pixelganau zeichnen mit GDI+ / AutoIT - (wie) geht das ?

    • BugFix
    • 17. Juni 2015 um 17:51
    Zitat von myicq

    Kann aber nur Beispiele für 90-Grad text im Gui finden.

    Ich hatte mal eine kleine Oberfläche zum Testen gebastelt - Text in jedem Winkel. Probier einfach mal.

    AutoIt
    ; ver 3.2.12.1
    #Include <WinAPI.au3>
    #include <GUIConstantsEx.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    
    
    Global $GUI = GUICreate('Test Rotation')
    GUICtrlCreateLabel('Text:', 10, 13, 50, 17)
    Global $In = GUICtrlCreateInput('Hallo!', 70, 10, 150, 20)
    Global $bt = GUICtrlCreateButton('Schreibe Text', 250, 10, 100, 20)
    Global $btDel = GUICtrlCreateButton('Lösche Text', 250, 40, 100, 20)
    GUICtrlCreateLabel('Pos. X:', 10, 43, 50, 17)
    Global $inX = GUICtrlCreateInput('80', 70, 40, 30, 20)
    GUICtrlCreateLabel('Pos. Y:', 110, 43, 50, 17)
    Global $inY = GUICtrlCreateInput('280', 170, 40, 30, 20)
    GUICtrlCreateLabel('Winkel:', 10, 73, 50, 17)
    Global $inDeg = GUICtrlCreateInput('30', 70, 70, 30, 20)
    GUICtrlCreateLabel('Höhe:', 110, 73, 50, 17)
    Global $inSize = GUICtrlCreateInput('60', 170, 70, 30, 20)
    GUICtrlCreateLabel('Breite:', 10, 103, 50, 17)
    Global $inWeight = GUICtrlCreateInput('400', 70, 100, 30, 20)
    GUICtrlCreateLabel('Font:', 110, 103, 50, 17)
    Global $inFont = GUICtrlCreateInput('Comic Sans MS', 170, 100, 200, 20)
    GUICtrlCreateGroup(' Stil ', 10, 130, 280, 40)
    Global $rDef = GUICtrlCreateRadio('Standard', 15, 145, 65)
    GUICtrlSetState(-1, $GUI_CHECKED)
    Global $rIt = GUICtrlCreateRadio('Italic', 85, 145, 45)
    Global $cbUn = GUICtrlCreateCheckbox('Underlined', 135, 145, 70)
    Global $cbSt = GUICtrlCreateCheckbox('StrikeOut', 215, 145, 70)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateLabel('Farbe    Schrift:', 10, 183, 80, 17)
    Global $inCol = GUICtrlCreateInput('', 90, 180, 60, 20)
    GUICtrlCreateLabel('Hintergrund:', 160, 183, 80, 17)
    Global $inbCol = GUICtrlCreateInput('', 230, 180, 60, 20)
    
    
    GUISetState()
    Global $Rect
    
    
    Do
    	$msg = GUIGetMsg()
    	If $msg = $bt Then
    		Local $type = 1, $col = -1, $bkcol = -1
    		If BitAND(GUICtrlRead($rIt), $GUI_CHECKED) Then $type = 2
    		If BitAND(GUICtrlRead($cbUn), $GUI_CHECKED) Then $type += 4
    		If BitAND(GUICtrlRead($cbSt), $GUI_CHECKED) Then $type += 8
    		Local $readFont = GUICtrlRead($inFont)
    		If $readFont = '' Then $readFont = -1
    		Local  $col = GUICtrlRead($inCol), $bkcol = GUICtrlRead($inbCol)
    		If $col = '' Then $col = -1
    		If $bkcol = '' Then $bkcol = -1
    		_WriteRotateText($GUI, GUICtrlRead($In), GUICtrlRead($inX), GUICtrlRead($inY), GUICtrlRead($inDeg), _
    			GUICtrlRead($inSize), GUICtrlRead($inWeight), $type, $readFont, $col, $bkcol)
    	ElseIf $msg = $btDel Then
    		_WinAPI_RedrawWindow($GUI)
    	EndIf
    Until $msg = $GUI_EVENT_CLOSE
    
    
    ;==================================================================================================
    ; Function Name:   _WriteRotateText($hWnd, $sWrite, $iX, $iY, $iDeg, $iSize [, $iWeight=400 _
    ;                               [, $iType=1 [, $sFont=-1 [, $iCol=-1 [, $iBkCol=-1 [,$bRedraw=True]]]]]])
    ; Description:     Schreibt einen Text mit bestimmtem Winkel in das angegebene Fenster
    ; Parameter(s):    $hWnd	Handle des Fensters
    ;                  $sWrite	der zu schreibende Text
    ;                  $iX		x-Position auf dem Fenster
    ;                  $iY		y-Position auf dem Fenster
    ;                  $iDeg	Rotationswinkel des Textes
    ;                  $iSize	Höhe des Textes
    ;     optional:    $iWeight	Fontbreite 0 - 1000 (Standard 400)
    ;     optional:    $iType	Fonttyp		1=normal (Standard); 2=Italic; 4=Underline; 8=StrikeOut
    ;                                       1 oder 2 können mit 4 und 8 kombiniert werden (5;9 od. 6;10)
    ;     optional:    $sFont	Fontname	-1=Font der Form (Standard)
    ;     optional:    $iCol	Fontfarbe			-1=schwarz (Standard)
    ;     optional:    $iBkCol	Hintergrundfarbe	-1=Hintergrundfarbe des Fensters (Standard)
    ;     optional:    $bRedraw	True=Fenster vorher neu zeichnen (vorige Beschriftung löschen - Standard)
    ; Requirement(s):  #Include <WinAPI.au3>; #include <StructureConstants.au3>; #include <WindowsConstants.au3>
    ;==================================================================================================
    Func _WriteRotateText($hWnd, $sWrite, $iX, $iY, $iDeg, $iSize, $iWeight=400, $iType=1, $sFont=-1, $iCol=-1, $iBkCol=-1, $bRedraw=True)
    	If $bRedraw Then _WinAPI_RedrawWindow($hWnd)
    	Local $tRect = DllStructCreate($tagRECT)
    	DllStructSetData($tRect, 'Left', $iX)
    	DllStructSetData($tRect, 'Top', $iY)
    	Local $rotate = $iDeg *10
    	If ($rotate = 900) Or ($rotate = 1800) Or ($rotate = 2700) Then $rotate += 1
    	Local $RotateMe = DllStructCreate($tagLOGFONT)
    	DllStructSetData($RotateMe, 'Escapement', $rotate)
    	DllStructSetData($RotateMe, 'Height', ($iSize * -20)/_WinAPI_TwipsPerPixelY())
    	If $iWeight <> 400 Then DllStructSetData($RotateMe, 'Weight', $iWeight)
    	If BitAND($iType, 2) Then DllStructSetData($RotateMe, 'Italic', True)
    	If BitAND($iType, 4) Then DllStructSetData($RotateMe, 'Underline', True)
    	If BitAND($iType, 8) Then DllStructSetData($RotateMe, 'StrikeOut', True)
    	If $sFont <> -1 Then DllStructSetData($RotateMe, 'FaceName', $sFont)
    	Local $rFont = _WinAPI_CreateFontIndirect($RotateMe)
    	Local $hDC = _WinAPI_GetDC($hWnd)
    	If $iCol <> -1 Then _WinAPI_SetTextColor($hDC, $iCol)
    	If $iBkCol <> -1 Then _WinAPI_SetBkColor($hDC, $iBkCol) ; wenn Transparenz gewünscht, Folgezeile aktivieren
    ;~ 	_WinAPI_SetBkMode($hDC, $TRANSPARENT)
    	_WinAPI_SelectObject($hdc, $rFont)
    	_WinAPI_DrawText($hDC, $sWrite, $tRect, BitOR($DT_NOCLIP,$DT_NOPREFIX))
    	_WinAPI_ReleaseDC($hWnd, $hDC)
    EndFunc  ;==>_WriteRotateText
    Alles anzeigen
  • GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

    • BugFix
    • 17. Juni 2015 um 17:46

    Also ich kann deinen Fehler nicht erkennen. Reduziere dein Skript mal soweit, dass nur noch das Listview mit dem Verhalten übrigbleibt. Lagere erst mal nicht in eine Funktion aus, ich denke dabei entsteht das Problem. Allerdings hat mir bisher _WinAPI_RedrawWindow($hLV) jedes Listview ordentlich neu gezeichnet.
    Mit meinem Minimalskript kann ich deinen Fehler nicht abbilden.

    Spoiler anzeigen
    AutoIt
    #include <GuiListView.au3>
    _Test()
    
    
    Func _Test()
    	Local $hGui = GUICreate('Test')
    	Local $hLV = GuiCtrlCreateListView('A|B|C', 10, 10, 300, 100)
    	_GUICtrlListView_SetColumnWidth($hLV, 0, 100)
    	_GUICtrlListView_SetColumnWidth($hLV, 1, 100)
    	_GUICtrlListView_SetColumnWidth($hLV, 2, $LVSCW_AUTOSIZE_USEHEADER)
    	For $i = 1 To 50
    		GUICtrlCreateListViewItem(StringFormat('Zeile_%i - Spalte_A|Zeile_%i - Spalte_B|Zeile_%i - Spalte_C', $i, $i, $i), $hLV)
    	Next
    	GUISetState()
    	Do
    	Until GUIGetMsg() = -3
    EndFunc
    Alles anzeigen

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™