Ich würde kein echtes Drag&Drop Verhalten probieren. Ein Bild ziehen (es bleibt also sichtbar, die Bewegung ist live) scheint mir etwas zu aufwändig.
Ich würde so vorgehen:
- Deiner Tabellenstruktur, die die Bilder anzeigt, liegt ein 2D-Array zugrunde. (Bild 2 in Zeile 2 = Index[1][1] - dort der kpl. Dateipfad
- Klick auf ein Bild umrahmt es (das Bild ist markiert, über Klickposition erhältst du den Index)
- Klick auf den Seitenstreifen - prüft ob in der Tabelle ein Bild markiert ist - JA: Anhand des Index ist Bilddatei bekannt, Bild kann im Seitenstreifen angezeigt werden und Dateipfad wird in Seitenstreifen-Array übernommen. Dann wird das Bild an Tabellenposition und im Tabellen-Array gelöscht
- Ziehen von Seitenstreifen auf Tabelle: exakt entgegengesetzt
Beiträge von BugFix
-
-
Das ist hier in etwa, was @AspirinJunkie vorschlug. Ich habe jedoch nicht zeilenweise in die Ausgangsdatei geschrieben, sondern mit einem Schreibbefehl am Ende:
AutoIt
Alles anzeigen#cs Datei "LinesToDelete.cfg" (oder wie auch immer) - jede Zeile eine Zeilennummer, aufsteigend sortiert!! 12 14 123 124 ... #ce Local $sFileLineNumbers = "....\PFAD\LinesToDelete.cfg" ; Pfade anpassen Local $sFileToClean = "....\PFAD\Sollmietenoriginal.txt" Local $sFileOutput = "....\PFAD\SollmietenBereinigt.txt" Local $sToWrite = "" ; Nummern zu löschender Zeilen einlesen aus Datei in Array Local $aLinesToDelete _FileReadToArray($sFileLineNumbers, $aLinesToDelete) Local $fH = FileOpen($sFileToClean) ; Datei zum zeilenweise Lesen öffnen Local $sRead ; Variable für Zeileninhalt Local $iLineCounter = 0 ; Zähler für aktuelle Zeile Local $iIndexNextToDel = 1 ; Arrayindex für Ablesen der zu löschenden Zeilennummern While True $iLineCounter += 1 $sRead = FileReadLine($fH) If @error Then ExitLoop ; Dateiende erreicht If $iLineCounter <= $aLinesToDelete[$aLinesToDelete[0]] Then ; Zeilennummer < oder gleich letzter zu löschender Zeilennummer If $iLineCounter = $aLinesToDelete[$iIndexNextToDel] Then ; Zeilennummer gleich nächste zu löschender Zeilennummer $iIndexNextToDel += 1 ; Index des Arrays mit zu löschenden Zeilennummern um 1 erhöhen ContinueLoop ; Zeileninhalt wird nicht benötigt, Schleife fortsetzen mit nächster Zeile EndIf EndIf $sToWrite &= $sRead & @CRLF ; Zeileninhalt wird übernommen WEnd FileClose($fH) ; Dateihandle schliessen ; in Variable übernommene Zeilen, die nicht zu löschen waren, in Ausgabedatei schreiben FileWrite($sFileOutput, $sToWrite) -
OK, greifen wir mal deine Interpretation auf und bieten auch diese Lösung:
AutoIt
Alles anzeigen; Exel ist offen $oExcel = ObjGet('','Excel.Application') If Not IsObj($oExcel) Then Exit MsgBox(0, 'Fehler', 'Kein Objekt') $oExcel.Range('A1').Value = "Hallo" ; 3.tes bis letztes Zeichen formatieren _Excel_CharactersFormatFont($oExcel, 'A1', 3, -1, "Fett Kursiv Unterstrichen Durchgestrichen", 0x40AE00, "Comic Sans MS", 11) ; oder statt String mit Zelle, Range der Zelle übergeben ;~ $oA1 = $oExcel.Range('A1') ;~ _Excel_CharactersFormatFont($oExcel, $oA1, 3, -1, "Fett Kursiv Unterstrichen Durchgestrichen", 0x22AEFF, "Comic Sans MS", 11) ; #FUNCTION# ==================================================================================================================== ; Name ..........: _Excel_CharactersFormatFont ; Description ...: Sets formatting for one or more contiguous characters in a given cell ; Syntax ........: _Excel_CharactersFormatFont($_oExcel, $_sCellRC, $_iStart[, $_iLen = 1[, $_sStyle = Default[, $_iColorBGR = Default[, ; $_sFont = Default[, $_iSize = Default]]]]]) ; Parameters ....: $_oExcel - The Excel object ; $_soCell - Cell name (e.g. "A1") or cell-range-object ; $_iStart - Character position inside the cell (1-based) ; $_iLen - [optional] The count of contiguous characters to format. -1=up to the end, Default is "1". ; $_iColorBGR - [optional] The character color as BGR. Default is xlAutomatic - "Default" (-1 will also accepted). ; $_sStyle - [optional] The style, one or combined with space ("Bold"; "Bold Italic Underline"). Default is none - "Default" (-1 will also accepted). ; $_sFont - [optional] The character font name. Default is "Arial" - "Default" (-1 will also accepted). ; $_iSize - [optional] The character font size. Default is "10" - "Default" (-1 will also accepted). ; Return values .: Success 1 ; ...............: Failure 0 @error = 1 ($_oExcel is'nt object), = 2 (formatting range exceeds string length) ; Author ........: BugFix ; =============================================================================================================================== Func _Excel_CharactersFormatFont(ByRef $_oExcel, $_soCell, $_iStart, $_iLen=1, $_sStyle=Default, $_iColorBGR=Default, $_sFont=Default, $_iSize=Default) If Not IsObj($_oExcel) Then Return SetError(1,0,0) Local $oRange = IsObj($_soCell) ? $_soCell : $_oExcel.Range($_soCell) Local $iLen = StringLen($oRange.Value) If $_iStart > $iLen+1 Then Return SetError(2,0,0) If $_iLen = -1 Then $_iLen = $iLen+1 - $_iStart If ($_iStart + $_iLen) > $iLen+1 Then Return SetError(2,0,0) $_sStyle = ($_sStyle = Default Or $_sStyle = -1) ? "" : $_sStyle $_iColorBGR = ($_iColorBGR = Default Or $_iColorBGR = -1) ? "xlAutomatic" : $_iColorBGR $_sFont = ($_sFont = Default Or $_sFont = -1) ? "Arial" : $_sFont $_iSize = ($_iSize = Default Or $_iSize = -1) ? 10 : $_iSize With $oRange.Characters($_iStart, $_iLen).Font .Bold = (StringInStr($_sStyle, "Bold") Or StringInStr($_sStyle, "Fett") ? True : False) .Italic = (StringInStr($_sStyle, "Italic") Or StringInStr($_sStyle, "Kursiv") ? True : False) .Underline = (StringInStr($_sStyle, "Underline") Or StringInStr($_sStyle, "Unterstrichen") ? True : False) .Strikethrough = (StringInStr($_sStyle, "Strikethrough") Or StringInStr($_sStyle, "Durchgestrichen") ? True : False) If $_iColorBGR = "xlAutomatic" Then .ColorIndex = -4105 ; xlAutomatic Else .Color = $_iColorBGR EndIf .Name = $_sFont .Size = $_iSize EndWith Return 1 EndFunc ;==>_Excel_CharactersFormatFont -
Sicher, dass er nicht in einer Zelle einige Zeichen fett und einige nicht möchte?
Er sprach vom gesamten Inhalt der Zelle, nicht von einzelnen Zeichen. - Man kann auch mehr hineininterpretieren, wenn man will...

-
-
Vor vielen Jahren hab ich auch mal ein Skript erstellt um Listview-Item (und SubItem) per Doppelklick on-the-fly zu bearbeiten. Vielleicht kannst du es brauchen: https://autoit.de/index.php/Thre…49074#post49074
-
Aber was ist, wenn so ein sinnfreier Schwachsinn wie TuneUp&Co. auf dem Rechner des Endbenutzers ist, der alle naselang mal die Temp files löscht?
Nun, "C:\Users\USER\AppData\Local" ist aber kein Temp-Ordner. Unter AppData kann man beruhigt Dinge ablegen, die der User nicht versehentlich einfach mal wegsemmeln soll. Mit Standardeinstellungen ist dieser Ordnerzweig für den User nicht sichtbar (er wird auch nicht in die Windows-Suche einbezogen).
-
Ich meinte, dass die Registry sicherer ist als eine INI. Wo soll man die dann sinnvoll speichern?
Dafür gibt es das: C:\Users\USER\AppData\Local

-
jedoch wenn man diese Koordinaten hier errechnen will bekommt man ein falsches Ergebnis raus
Da kann niemals ein "richtiges" Ergebnis rauskommen, ist einer der Sonderfälle. Die Berechnung von atan beinhaltet eine Division durch 0.
-
Verwende Run - da bekommst du die PID und kannst damit das zugehörige Fenster ermitteln. Hast du das Fensterhandle, kannst du es ganz normal ausblenden.
-
Wende dich am Besten an den Autor der UDF im engl. Forum. Wenn beim händischen Eintragen ein falscher Wert kommt, scheint das Verarbeitungsproblem innerhalb der UDF zu liegen.
Passiert das auch, wenn du mal den PC neu startest und dann mit Wert 2 die Funktion aufrufst? - Wenn es dann klappt, wäre es ein Hinweis, dass intern die Variable mit der OID nicht änderbar ist, wenn sie einmal gesetzt ist (wäre ganz schön sinnfrei).
-
Eventuell die komplette Verzeichnisstruktur ein mal einlesen und dann die vorhandenen Ordnerzahlen durchgehen?
Genau, mach das. Und beim Bewegen zwischen den Ordnern nutzt du dann den Array-Index des Arrays mit allen Pfaden. Vereinfacht auch die Fehlerabfragen: kein If FileExists notwendig, Anfang und Ende sagen dir Index=0 (oder 1, je nachdem, ob du die Pfadanzahl an [0] führst oder nicht) und Ubound.
-
1. Klappt es, wenn du die Befehlsaufrufe einzeln schreibst und nicht in einer Schleife?
2. Setze doch mal ein ConsoleWrite('$snmpOID = ' & $snmpOID & @CRLF) in die UDF, direkt unter den Funktionskopf von _SNMPBuildPacket um zu prüfen, ob der korrekte Wert in der Funktion landet. Wenn dem so ist (wovon ich eigentlich ausgehe), mußt du der internen Funktionsverarbeitung folgen um zu sehen, wo der Fehler auftritt. -
Ich habe die Beispiele von der AutoIt.de online Hilfe genommen.
Irgendwie fühle ich mich veräppelt.
Wie schon gesagt, habe ich keine Einwände, wenn Beiträge/Tutorials von mir auch von anderen publiziert werden. Aber ein Verweis auf den Autor ist ein absolutes Muss.
Und wie im Folgenden zu sehen, hast du sowohl Beschreibung als auch Bsp. 1:1 aus meinem Tutorial entnommen. Wenn du die Bilder siehst kannst du dich eventuell auch wieder daran erinnern. -
offenbar kann kann die SNMP-UDF insbesondere _SNMPBuildPacket offenbar (laut Kommentaren in der UDF) an der ersten Stelle (OID) kein Array nutzen... mache ich genau dieses wie vin BugFix vorgeschlagen, erhalten ich auch tatsächlich immer die selbe Ausgabe, obwohl eine andere OID übergeben wird.
Kann ich nicht nachvollziehen, den Gedanken.
In deinem Skript führst du die OID in einem Array, aber an den Aufruf der Funktion _SNMPBuildPacket übergibst du doch kein Array, sondern nur den Inhalt des jeweiligen Array-Elements, einen String.
Der Kommentar in der UDF verweist nur darauf, dass keine Unterstützung (mehr) für ein Array als Parameter für OID besteht. -
ich habe keine Beispiele von water genommen.
Nein (hat auch nie wer behauptet) - aber von mir.
-
Kleine Ergänzung: Alle Attribute per Klick abrufbar.
-
Ich muß relativ häufig an Dateien das Erstelldatum ändern, weil dieses bei Speichervorgängen zwischen verschiedenen OS manchmal verändert wird (Datum auf NAS ist z.B. nach Spannungsausfall auf Werkseinstellung - Wird ein Dokument direkt dort abgelegt, bekommt es das falsche Datum).
Bei Dokumenten, die einer Revision unterliegen kommt es natürlich seltsam, wenn in der Fußzeile steht "Rev. 6 vom 05.03.2017" und das Erstelldatum sagt "01.01.2010"
Bisher habe ich dann schnell die Codezeile für FileSetTime händisch befüllt und die Daten korrigiert.
Nun habe ich das mal in eine kleine Oberfläche gepackt.
- Ordner wird ausgewählt (Dateien darin werden in ein Listview geladen mit Anzeige DateCreate, DateModified)
- Dateien mit den Attributen: Hidden, ReadOnly, System werden gleich rot eingefärbt - bei R und S ist das Ändern des Datums sowieso nicht möglich und versteckte Dateien sind sicher nicht umsonst versteckt. Falls diese Dateien doch markiert sind, werden sie vom Tool ignoriert.
- In den Datumsfeldern werden die gewünschten Datumswerte(+ Uhrzeit) gewählt und mit "Datum Setzen" für alle markierten Dateien (selektive Mehrfachauswahl ist möglich) angewendet. Anschliessend wird das Listview neu geladen - die Änderungen sind also sofort sichtbar.EDIT: [v0.2] Da ich die Attribute sowieso auslese, speichere ich sie zwischen und mit Klick auf eine Datei werden deren Attribute als Tooltip gezeigt.
EDIT: [v0.3]
- NEU: (optional) automatische Übernahme Erstellungsdatum auch als Änderungsdatum
- NEU: Datum aus markierter Datei in Datums-Control übernehmen
- FIXED: Bisher keine Fehlermeldung bei versuchter Änderung einer offenen Datei. Jetzt [FILE-IN-USE] Meldung.AutoIt
Alles anzeigen;-- TIME_STAMP 2017-03-30 10:51:41 v 0.3 ;-- charset=UTF-8 #include <DateTimeConstants.au3> #include <EditConstants.au3> #include <File.au3> #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <ListViewConstants.au3> #include <StructureConstants.au3> #include <WindowsConstants.au3> Global $hListView, $iIndexClicked = -1, $aAttrib, $fSameDate = False _Main() Func _Main() Local $hGui = GUICreate('Erstellungs- /Änderungsdatum setzen', 600, 480) GUICtrlCreateLabel('Verzeichnis', 15, 18, 60) Local $idPath = GUICtrlCreateInput('', 80, 15, 478, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY)) GUICtrlSetBkColor(-1, 0xFFFFFF) Local $idSelect = GUICtrlCreateButton('...', 563, 14, 22, 22) GUICtrlCreateLabel('Erstellt', 15, 48, 40) Local $idDateCreate = GUICtrlCreateDate(StringFormat('%s/%s/%s %s:%s:%s', @Year, @Mon, @MDay, @Hour, @Min, @Sec), 55, 45, 140, 22, $DTS_SHORTDATEFORMAT) GUICtrlCreateLabel('Geändert', 215, 48, 45) Local $idDateChange = GUICtrlCreateDate(StringFormat('%s/%s/%s %s:%s:%s', @Year, @Mon, @MDay, @Hour, @Min, @Sec), 265, 45, 140, 22, $DTS_SHORTDATEFORMAT) Local $sStyle = "dd.MM.yyyy HH:mm:ss" GUICtrlSendMsg($idDateCreate, $DTM_SETFORMATW, 0, $sStyle) GUICtrlSendMsg($idDateChange, $DTM_SETFORMATW, 0, $sStyle) Local $idSet = GUICtrlCreateButton('Datum Setzen', 435, 75, 150, 22) Local $idCurrentDate = GUICtrlCreateButton('Dateidatum übernehmen', 15, 75, 180, 22) Local $idSameDate = GUICtrlCreateCheckbox(' Datum Änderung == Erstelldatum', 215, 75) Local $idListview = GuiCtrlCreateListView('Datei|Erstellt|Geändert', 15, 105, 570, 360, _ BitXOR(BitOR($GUI_SS_DEFAULT_LISTVIEW,$LVS_SHOWSELALWAYS),$LVS_SINGLESEL), _ BitOR($LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT,$LVS_EX_DOUBLEBUFFER)) _GUICtrlListView_SetColumnWidth($idListview, 0, 340) _GUICtrlListView_SetColumnWidth($idListview, 1, 100) _GUICtrlListView_SetColumnWidth($idListview, 2, $LVSCW_AUTOSIZE_USEHEADER) $hListview = GUICtrlGetHandle($idListview) Local $sSelect, $sDateCreate, $sDateChange, $iIndex Local $sPattern = '(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2}):(\d{2})' Local $sRepl = '$3$2$1$4$5$6' GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; bei Left-Click auf Item werden Attribute als Tooltip gezeigt GUISetState() While True Switch GUIGetMsg() Case -3 Exit Case $idSelect $sSelect = FileSelectFolder('Bitte einen Ordner auswählen', @HomeDrive & '\' & @HomePath) If $sSelect <> '' Then GUICtrlSetData($idPath, $sSelect) If __FillListview($idListview, $sSelect) = 0 Then MsgBox(16, 'Fehler', 'Der gewählte Ordner enthält keine Dateien!') EndIf Case $idSet $sDateCreate = StringRegExpReplace(GUICtrlRead($idDateCreate), $sPattern, $sRepl) $sDateChange = StringRegExpReplace(GUICtrlRead($idDateChange), $sPattern, $sRepl) ; Plausibilität Create<=Change prüfen (nur wenn beide Daten gesetzt werden) If Number($sDateCreate) > Number($sDateChange) And (Not $fSameDate) Then MsgBox(16, 'Fehler', 'Änderungsdatum liegt vor Erstellungsdatum!') Else __SetDate(GUICtrlRead($idPath), $idListview, $sDateCreate, $sDateChange) __FillListview($idListview, GUICtrlRead($idPath)) EndIf Case $idCurrentDate Local $aSel = _GUICtrlListView_GetSelectedIndices($idListview, True) If $aSel[0] = 0 Then MsgBox(16, 'Fehler', 'Es wurde keine Datei ausgewählt!') Else _SetDateCtrl($idDateCreate, _GUICtrlListView_GetItemText($idListview, $aSel[1], 1)) _SetDateCtrl($idDateChange, _GUICtrlListView_GetItemText($idListview, $aSel[1], 2)) EndIf Case $idSameDate If BitAND(GUICtrlRead($idSameDate), $GUI_CHECKED) Then $fSameDate = True GUICtrlSetState($idDateChange, $GUI_DISABLE) Else $fSameDate = False GUICtrlSetState($idDateChange, $GUI_ENABLE) EndIf EndSwitch WEnd EndFunc Func _SetDateCtrl($iID, $sDate) $sDate = StringRegExpReplace($sDate, '(\d{2})\.(\d{2})\.(\d{4}) (.+)', '$3/$2/$1 $4') GUICtrlSetData($iID, $sDate) EndFunc Func __FillListview($idLV, $sPath) Local Static $aColor[2] = [0xE5EEFF,0xBCC3FF], $iColWarning = 0xFF93B4 If Not FileExists($sPath) Then Return Local $aFiles = _FileListToArray($sPath, '*', 1) If @error Then Return 0 _GUICtrlListView_BeginUpdate($idLV) _GUICtrlListView_DeleteAllItems($idLV) Local $sItem, $sPatt = '(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})', $sAttrib Local $aAttr[$aFiles[0]] For $i = 1 To $aFiles[0] $sItem = StringFormat('%s|%s|%s', $aFiles[$i], _ StringRegExpReplace(FileGetTime($sPath & '\' & $aFiles[$i], 1, 1), $sPatt, '$3.$2.$1 $4:$5:$6'), _ StringRegExpReplace(FileGetTime($sPath & '\' & $aFiles[$i], 0, 1), $sPatt, '$3.$2.$1 $4:$5:$6')) GUICtrlCreateListViewItem($sItem, $idLV) $sAttrib = FileGetAttrib($sPath & '\' & $aFiles[$i]) $aAttr[$i-1] = $sAttrib If StringInStr($sAttrib, 'H') Or StringInStr($sAttrib, 'R') Or StringInStr($sAttrib, 'S') Then GUICtrlSetBkColor(-1, $iColWarning) Else GUICtrlSetBkColor(-1, $aColor[Mod($i,2)]) EndIf Next $aAttrib = $aAttr _GUICtrlListView_EndUpdate($idLV) Return $aFiles[0] EndFunc Func __SetDate($sFolder, $idLV, $sCreate, $sChange) If $sFolder = '' Then Return Local $aSel = _GUICtrlListView_GetSelectedIndices($idLV, True) If $aSel[0] = 0 Then Return MsgBox(16, 'Fehler', 'Es wurde keine Datei ausgewählt!') Local $sFile, $sAttrib, $sErr = '', $iOK For $i = 1 To $aSel[0] $sFile = $sFolder & '\' & _GUICtrlListView_GetItemText($idLV, $aSel[$i]) $sAttrib = FileGetAttrib($sFile) If StringInStr($sAttrib, 'R') Then $sErr &= '[READONLY] ' & $sFile & @CRLF ContinueLoop ElseIf StringInStr($sAttrib, 'S') Then $sErr &= '[SYSTEM] ' & $sFile & @CRLF ContinueLoop ElseIf StringInStr($sAttrib, 'H') Then $sErr &= '[HIDDEN] ' & $sFile & @CRLF ContinueLoop EndIf $iOK = 0 $iOK += FileSetTime($sFile, $sCreate, 1) $iOK += FileSetTime($sFile, ($fSameDate ? $sCreate : $sChange), 0) If $iOK < 2 Then $sErr &= '[FILE-IN-USE] ' & $sFile & @CRLF Next If $sErr <> '' Then Return MsgBox(16, 'Fehler', 'Folgende Dateien wurden nicht bearbeitet:' & @CRLF & $sErr) EndFunc Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) If HWnd(DllStructGetData($tNMHDR, "hWndFrom")) = $hListView And _ DllStructGetData($tNMHDR, "Code") = $NM_CLICK Then Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) $iIndexClicked = DllStructGetData($tInfo, "Index") AdlibRegister('__TipAttrib') EndIf Return $GUI_RUNDEFMSG EndFunc Func __TipAttrib() If $iIndexClicked = -1 Then Return AdlibUnRegister('__TipAttrib') Local $sText = $aAttrib[$iIndexClicked] _ToolTipMouseExit($sText, 1700, -1, -1, 'Attribute', 1, 1) $iIndexClicked = -1 EndFunc Func _ToolTipMouseExit($TEXT, $TIME=-1, $x=-1, $y=-1, $TITLE='', $ICON=0, $OPT='') ; Standard ToolTip, ergänzt um Schließen nach Zeit oder bei Mausbewegung If $TIME = -1 Then $TIME = 3000 Local $start = TimerInit() Local $pos, $pos0 = MouseGetPos() If ($x = -1) Or ($y = -1) Then ToolTip($TEXT, $pos0[0], $pos0[1], $TITLE, $ICON, $OPT) Else ToolTip($TEXT, $x, $y, $TITLE, $ICON, $OPT) EndIf Do Sleep(50) $pos = MouseGetPos() Until (TimerDiff($start) > $TIME) Or _ (Abs($pos[0] - $pos0[0]) > 10 Or _ Abs($pos[1] - $pos0[1]) > 10) ToolTip('') EndFunc ;==>_ToolTipMouseExit -
Wenn du eine dynamische Anzahl an Controls verwendest, ist es durchaus sinnvoll, die GUI auch dynamisch anzupassen. Hier mal ein Bsp. dafür:
AutoIt
Alles anzeigenGlobal $GUI, $aInput[2] = [1], $btAdd $GUI = GUICreate('Test', 400, 50) $aInput[1] = GUICtrlCreateInput('', 10, 10, 300, 21) GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL $btAdd = GUICtrlCreateButton('Add Input', 320, 10, 70, 21) GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL GUISetState() While 1 Switch GUIGetMsg() Case -3 Exit Case $btAdd _NewCtrl() EndSwitch WEnd Func _NewCtrl() Local $iDiff = 31 ; == Abstand + Höhe ==> 10 + 21 Local Static $iY = 10 ; == Startwert vom ersten Ctrl $iY += $iDiff $aInput[0] += 1 ReDim $aInput[$aInput[0]+1] Local $aWin = WinGetPos($GUI) WinMove($GUI, '', $aWin[0], $aWin[1], $aWin[2], $aWin[3] + 31) $aInput[$aInput[0]] = GUICtrlCreateInput('', 10, $iY, 300, 21) GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL EndFunc -
Grundsätzlich habe ich nichts dagegen, wenn du Passagen aus meinem Array-Tut wortwörtlich verwendest. Aber es gehört zum guten Ton, dies vorab mit dem Ersteller zu klären, ebenso wie das Anbringen entsprechender Quellenangaben.
Wenn dir sowas mit anderen Veröffentlichungen passiert, kannst du mal schnell Post vom Abmahnanwalt bekommen. Also sei vorsichtig mit C&P.