Ich sammle all eure Tipps und werde Anfang Januar (dann bin ich wieder vor Ort) mal testen, ob ich es hinbekomme. Danke euch.
Beiträge von BugFix
-
-
Ich habe leider kein MySQL, hoffe aber dir vom Ansatz her helfen zu können. "$sql_query_hnum = _SQLQuery($sql, "Select dbo.xxx......" - Was gibt dieses Query zurück? Ich verwende nach Möglichkeit Execute für das Query um ein Recordset zu erhalten. Das hat den Vorteil, dass bei einer erfolglosen Abfrage dann halt ein leeres Recordset zurückgegeben wird. Und das kannst du dann leicht abfragen.
Hier mal noch die kpl. Errorfunktion:
Spoiler anzeigen
[autoit]Global $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
[/autoit]
;...
;...
Func MyErrFunc()
Msgbox(0,"AutoItCOM Test","Ein COM-Fehler ist aufgetreten !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & hex($oMyError.number,8) & @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext )
Local $err = $oMyError.number
If $err = 0 Then $err = -1
Local $g_eventerror = $err
Endfunc -
@r1fLeX: Sicherlich war der Kommentar von anno2008 nicht unbedingt angebracht (anno2008, reiß dich bitte zusammen) - das sollte aber nicht heißen, dass du darauf in unflätiger Weise reagierst. Und da ich keine Lust auf solchen Kinderkram habe und auch nicht unbedingt Verwarnungen vergeben möchte, schließe ich hiermit dieses Kapitel!
[Thread closed]
-
Spoiler anzeigen
[autoit]$strComputer = "."
[/autoit] [autoit][/autoit] [autoit]
$objWMIService = ObjGet("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")$colItems = $objWMIService.ExecQuery _
[/autoit] [autoit][/autoit] [autoit]
("Select * from Win32_DisplayControllerConfiguration")For $objItem in $colItems
[/autoit]
ConsoleWrite( "Bits Per Pixel: " & $objItem.BitsPerPixel & @CRLF)
ConsoleWrite( "Color Planes: " & $objItem.ColorPlanes & @CRLF)
ConsoleWrite( "Device Entries in a Color Table: " & _
$objItem.DeviceEntriesInAColorTable & @CRLF)
ConsoleWrite( "Device Specific Pens: " & $objItem.DeviceSpecificPens & @CRLF)
ConsoleWrite( "Horizontal Resolution: " & $objItem.HorizontalResolution & @CRLF)
ConsoleWrite( "Name: " & $objItem.Name & @CRLF)
ConsoleWrite( "Refresh Rate: " & $objItem.RefreshRate & @CRLF)
ConsoleWrite( "Setting ID: " & $objItem.SettingID & @CRLF)
ConsoleWrite( "Vertical Resolution: " & $objItem.VerticalResolution & @CRLF)
ConsoleWrite( "Video Mode: " & $objItem.VideoMode & @CRLF)
Next -
[autoit]
WinActivate($Form1)
[/autoit]
-
Hi,
[autoit]
bin auf eine weitere Methode zum Durchsuchen von Ordnern/Unterordnern gestoßen. Hat selbst bei einer Suche im Root mit Datei in 4 Ebenen Tiefe nur 30 s gebraucht.
Local $ret = _SearchTreeForFile('C:\', 'qmark.acs')
[/autoit][autoit][/autoit][autoit]
If $ret Then
MsgBox(0, 'Gefunden', $ret)
Else
MsgBox(0, 'Nicht Gefunden', 'Datei nicht im Suchpfad')
EndIf;===============================================================================
[/autoit]
; Function Name: _SearchTreeForFile($sRootPath, $sFileName)
; Description:: Dateisuche in einem Pfad und allen Unterpfaden
; Parameter(s): $sRootPath Startpfad der Suche
; $sFileName Name der gesuchten Datei
; Return Value(s): gefunden Pfad der gesuchten Datei
; n. gefunden 0
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;===============================================================================
Func _SearchTreeForFile($sRootPath, $sFileName)
If StringRight($sRootPath, 1) <> '\' Then $sRootPath &= '\'
Local $sOutputPathBuffer = ''
Local $aRet = DllCall("imagehlp", 'long', 'SearchTreeForFile', 'str', _
$sRootPath, 'str', $sFileName, 'str', $sOutputPathBuffer)
If $aRet[0] = 1 Then
Return $aRet[3]
Else
Return 0
EndIf
EndFunc ;==>_SearchTreeForFile -
Direkt im Edit-Ctrl kannst du das gewünschte Zeichen markieren ( _GUICtrlEdit_SetSel ) und dann ersetzen ( _GUICtrlEdit_ReplaceSel ).
-
So, noch eine (wohl letzte) Änderung.
Parameter für Schrift- und Hintergrundfarbe hinzugefügt. s. Post 1 -
Du könntest noch eine Redraw-Parameter hinzufügen
Der Tipp ist gut - werde ich gleich umsetzen und aktualisieren. -
Wenn man ein '&' eingibt wird es nicht dargestellt. Erst '&&' stellt ein '&' dar. 3x& ergibt '&', 4x& ergibt dann '&&'
Habe ich jetzt korrigiert - wird als normales Schriftzeichen dargestellt.Danke für den Tipp mit dem Löschen. Habe das Bsp. umgestellt - aber Kombination 'normale' Schrift od. Italic + unter/durchgestrichen.
(s. 1. Post) -
Hi,
nachdem ich Dank kräftiger Unterstützung von progandy (
) das Bsp. aus dem Api-Guide zum "RotateText" umsetzen konnte, habe ich daraus mal eine Funktion erstellt, damit es auch allgemeingültig verwendet werden kann. Ich denke, das könnte von größerem Interesse sein.
Im angehängten Bsp. findet ihr eine Oberfläche, in der ihr die verschiedenen Parameter der Funktion ausprobieren könnt.Eine Möglichkeit, den geschriebenen Text zu löschen, habe ich noch nicht gefunden (außer mit Leerzeichen überschreiben
). Vielleicht habt ihr ja eine Idee.
Danke funkey für den Tipp zum Löschen.Edit: Habe auf Anregung von funkey noch den Parameter zum Neuzeichnen (und somit Löschen alter Beschriftung) der GUI mit Standardwert TRUE eingefügt.
Edit: Nun noch Parameter für Schriftfarbe/Hintergrundfarbe eingefügt. Jetzt sollte es aber wirklich kpl. sein.

Spoiler anzeigen
[autoit]; ver 3.2.12.1
[/autoit] [autoit][/autoit] [autoit]
#Include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <StructureConstants.au3>
#include <WindowsConstants.au3>Global $GUI = GUICreate('Test Rotation')
[/autoit] [autoit][/autoit] [autoit]
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()
[/autoit] [autoit][/autoit] [autoit]
Global $RectDo
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
If $msg = $bt Then
Local $type = 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;==================================================================================================
[/autoit]
; 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,
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)
_WinAPI_SelectObject($hdc, $rFont)
_WinAPI_DrawText($hDC, $sWrite, $tRect, BitOR($DT_NOCLIP,$DT_NOPREFIX))
_WinAPI_ReleaseDC($hWnd, $hDC)
EndFunc ;==>_WriteRotateTextEdit: Hier mal eine Ansicht
http://www.bilder-space.de/show.php?file=…19cXqB3AiTr.JPG -
ich bracuh für jedes Feld eine unterschiedliche... Wie krieg ich sowas hin? muss ich also doch einzelne Grafiken erstellen

Für jedes Kasterl ein Bild??? Was sollen das für Bilder sein - bei 5 x 5 Pixel siehst du doch eh nichts, selbst bei 20 x 20 ist ein Bild noch nicht erkennbar.
Ja, das ist klar. Das weiß ich ja...
Ich meine, wie kommt der Computer darauf, sich für eine Zahl zu "entscheiden"?Ich glaube, es wird eine Rechenoperation auf Basis der aktuellen Zeit ausgeführt.
-
Wie funktioniert Random eigentlich? Der Computer kann sich doch keine Zahl aus 1 und 0 "aussuchen", oder etwa doch

Du gibst den Bereich an, aus dem die 'Zufallszahl' ausgesucht wird. Hier in dem Bsp.
[autoit]Random(1,4,1)
[/autoit]Eine Integerzahl zwischen 1 und 4 wird ermittelt.
-
Sag nochmal genau, wie dein Feld sein soll.
- fixe Anzahl von quadratischen Flächen ?
- dadrauf ein Bild legen ?Etwas OT:
Beim Spielen mit der Grafik ist mir aufgefallen, dass es tatsächlich kein Random gibt
Schau dir mal dieses Ergebnis an - trotz zufälliger Farbwahl entsteht ein regelmäßiges Muster.
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $aCol[5] = [0, 0x0000FF, 0xFFD700, 0x00FF00, 0xFF0000]$Form = GUICreate("Form", 800, 600)
[/autoit] [autoit][/autoit] [autoit]
$grafik = GUICtrlCreateGraphic(10, 10, 780, 580)
For $x = 0 To 780 Step 5
For $y = 0 To 580 Step 5
GUICtrlSetGraphic($grafik, $GUI_GR_COLOR, 0xFFFFFF, $aCol[Random(1,4,1)])
GUICtrlSetGraphic($grafik, $GUI_GR_RECT, $x, $y, 5, 5)
Next
NextGUISetState()
[/autoit] [autoit][/autoit] [autoit]Do
[/autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSE -
allgemein wäre es schöner wenn man statt dem ersten listview eine art browser hätte mit dem man durch die verzeichnisse seines computer browsen kann.
Dan verwende doch Treeview. -
Ich hab LRS

Ja, und soll das jetzt etwa ein Freibrief für dich sein, deinen Text vor dem Posten nicht auf Fehler zu kontrollieren?
Gerade wenn du um dieses Problem weißt, sollte es doch kein großes Problem darstellen, deine Posts z.B. in Word mit aktivierter Rechtschreibprüfung zu erstellen und anschließend per Copy&Paste in dein Posting einzufügen. Sonst läufst du Gefahr, dass aufgrund der schlechten Lesbarkeit niemand mehr deine Fragen beantwortet. -
und manchmal ist es eben so das dort werte sein können aber nicht müssen.
[autoit]
Das Problem stellt sich doch gar nicht, da du einen Standardwert in der INIRead-Funktion übergeben MUSST.$a = IniRead($INI, 'section', 'key', 'STANDARDWERT!!')
[/autoit]
If $a = 'STANDARDWERT!!' Then ; keine Wertübergabe aus INI -
Ich möchte eine Function schreiben die mir prüft ob eine Variable gesetzt ist oder nicht.
Verwende lieber
[autoit]Opt('MustDeclareVars', 1)
[/autoit]Dann zwingst du dich von Anfang an, deine Variablen sauber zu deklarieren.
ist das erste mal das ich objekt orientiert arbeite und ich denke das ist ein guter anfang
AutoIt ist keine objektorientierte Sprache. Es besteht die Möglichkeit auf vereinzelte Objekte zuzugreifen bzw. bestimmte Objekte zu erstellen, aber die typischen Merkmale von OOP, wie Erstellen eigener Klassen, Vererbung etc. findest du hier nicht.
Zitat von micneuist $a gesetzt?
dann mache die und die funktion
Einfach deine Variablen mit Startwerten vorbelegen. -
M.E. ist die Aktivierung/Deaktivierung des Flash-Plugins an deinen Browser gebunden. Dein Embedded-Browser nutzt ja dieselben Einstellungen.
Somit mußt du schauen, wie du per Hand die Deaktivierung vornehmen würdest und dafür ein Makro/Skript erstellen, dass du dann bei Bedarf aufrufst. -
Der erste Eintrag im Google-Ergebnis mit Suchbegriff "dll +erstellen +panoramabild" führt sofort zu einer brauchbaren Info (http://freenet-homepage.de/martin_wehner/…l/panorama.html).
Es gilt wie immer: gidf
