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

  • Control relativ positionieren

    • BugFix
    • 29. Oktober 2020 um 20:53

    Danke. :thumbup:

  • Control relativ positionieren

    • BugFix
    • 29. Oktober 2020 um 12:32

    Jeder kennt das:

    Entwicklung eines Projektes, es kommen immer mehr Control hinzu und die Gui muss angepasst werden, was auch bedeutet, dass alle(viele) Controlpositionen angepasst werden müssen.

    Das war mir jetzt zu blöd und deshalb habe ich diese kleine Funktion zum Positionieren der Control geschrieben. Somit kann die Änderung bei Controls deutlich minimiert werden.

    AutoIt: _CtrlPosRelative( )
    ;-- TIME_STAMP   2020-10-29 12:22:58
    
    #include <WinAPISysWin.au3>
    #include <WinAPIDlg.au3>
    
    Opt('MustDeclareVars', 1)
    
    
    GUICreate('Test')
    Local $bt1 = GUICtrlCreateButton('Test Button 1', 0, 0, 150, 25)
    _CtrlPosRelative(-1, -10, -10)   ; 10px Rand rechts und unten
    Local $bt2 = GUICtrlCreateButton('Test Button 2', 0, 0, 150, 25)
    _CtrlPosRelative(-1, 10, -10)    ; x ist fix, y relativ mit 10px Rand unten
    
    GUISetState()
    
    ; Größe der Gui ändern und Ctrl verschieben an relative Position
    Sleep(5000)
    WinMove('Test', '', 100, 50, 800, 600)
    _CtrlPosRelative($bt1, -10, -10)
    _CtrlPosRelative($bt2, 10, -10)
    
    
    Do
    Until GUIGetMsg() = -3
    
    
    Func _CtrlPosRelative($_iID, $_x, $_y, $_w=-1, $_h=-1)
        Local $hCtrl = IsHWnd($_iID) ? $_iID : GUICtrlGetHandle($_iID)
        Local $hParent = _WinAPI_GetParent($hCtrl)
        Local $iID = _WinAPI_GetDlgCtrlID($hCtrl)
        Local $aSize = ControlGetPos($hParent, '', $iID)
        If $_w = -1 Or $_w = Default Then $_w = $aSize[2]
        If $_h = -1 Or $_h = Default Then $_h = $aSize[3]
        Local $clientW = _WinAPI_GetClientWidth($hParent)
        Local $clientH = _WinAPI_GetClientHeight($hParent)
        If $_x < 0 Then $_x = $clientW - $_w - Abs($_x)
        If $_y < 0 Then $_y = $clientH - $_h - Abs($_y)
        ControlMove($hParent, '', $iID, $_x, $_y, $_w, $_h)
    EndFunc
    Alles anzeigen
  • Deutsche Hilfe auf 3.3.14.5 updaten - mitmachen

    • BugFix
    • 27. Oktober 2020 um 12:18
    Zitat von Tweaky

    Neue Dateien 06


    [RESERVIERT: BugFix]

    erledigt

    Dateien

    _Excel_Print.zip 1,8 kB – 412 Downloads _Excel_RangeCopyPaste.zip 2,94 kB – 387 Downloads _Excel_RangeDelete.zip 1,3 kB – 425 Downloads _Excel_RangeFind.zip 2,87 kB – 392 Downloads _Excel_RangeInsert.zip 1,91 kB – 492 Downloads _Excel_RangeLinkAddRemove.zip 1,54 kB – 452 Downloads _Excel_RangeRead.zip 2,06 kB – 464 Downloads _Excel_RangeReplace.zip 1,37 kB – 546 Downloads _Excel_RangeSort.zip 2,1 kB – 472 Downloads _Excel_RangeValidate.zip 2,73 kB – 438 Downloads
  • "Sitzung abgelaufen" - Nachricht selbst senden

    • BugFix
    • 26. Oktober 2020 um 10:41

    Wir kennen alle zur Genüge von unserer Forensoftware die Mitteilung: Ihre Sitzung ist abgelaufen, bitte melden Sie sich neu an.

    Diese Meldung basiert in der Regel aber nicht auf Problemen des Forums, sondern auf der Tatsache, dass der Browser selbst Änderungen am User-Agent vornimmt, was die Zertifizierung der Sitzung aufhebt.

    Aber das nur am Rande.

    Ich möchte für das automatische Laden lokaler Webseiten dieses Ereignis selbst auslösen. Also: Message an Server - Sitzung ist abgelaufen.

    Denn diese Nachricht kann ich in der Browsereinstellung als Trigger für automatisches Neuladen nutzen.

    Ich habe aber keinen Plan, wie ich selbst (per Programmbefehl) diese Nachricht auslösen kann. Hat da jemand Erfahrung?

  • einfaches Hilfefenster(GUICtrlEdit) - Einfügen von "formatiertem" Text

    • BugFix
    • 24. Oktober 2020 um 10:48
    Zitat von oh-ha

    Die letzte mir bekannte war die 12USB Version von Opera wo man über die skin.ini Anpassungen machen konnte. Geht das auch mit den neueren USB Versionen?

    Ich verwende die Version 12.18.1872.0, da ich neben Portabilität auch Wert auf geringe Dateigröße lege. Früher war portabel in der Regel auch ein Garant für kleine Dateien - aber das interessiert heute scheinbar keinen mehr, da USB-Datenträger immer größer werden. Während die v12.18 nur 31 MB auf dem Datenträger belegt, braucht die aktuelle Version v72.0 64,5 MB!

    Aktuelle Versionen sind für offline Nutzung auch nicht erforderlich. Alles was da an Neuigkeiten drin ist betrifft im Wesentlichen Online-Sicherheit, also für meine Offline-Nutzung völlig uninteressant. Am Liebsten würde ich ja die Uraltversion des K-Meleon Browsers nehmen, der hatte nicht mal 2 MB, kann aber leider die neuesten Stylings nicht umsetzen.

    Falls jemand Bedarf hat, die Version kann hier herunter geladen werden.

  • einfaches Hilfefenster(GUICtrlEdit) - Einfügen von "formatiertem" Text

    • BugFix
    • 22. Oktober 2020 um 17:57
    Zitat von Bitnugger

    werden die _IE-Funktionen dann sicher auch nicht mehr funktionieren..

    IE war hier nur zu Demozwecken. Ich packe eine abgespeckte Opera Portable Version bei und öffne darin die Hilfedatei. Der Browser lässt sich so konfigurieren, dass keinerlei Menü, Adresszeile etc. sichtbar ist, sieht dann wie ein Editierfenster aus.

  • einfaches Hilfefenster(GUICtrlEdit) - Einfügen von "formatiertem" Text

    • BugFix
    • 22. Oktober 2020 um 12:44

    Oder verwende Html (bevorzuge ich):

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>
    
    OnAutoItExitRegister('_exit')
    
    
    Local $sHtml = _
    '<!DOCTYPE html>' & @CRLF & _
    '<html>' & @CRLF & _
    '    <head>' & @CRLF & _
    '        <meta charset="utf-8">' & @CRLF & _
    '        <title>Using inline CSS styles</title>' & @CRLF & _
    '        <style>' & @CRLF & _
    '        body {' & @CRLF & _
    '            font-family: sans-serif;' & @CRLF & _
    '        }' & @CRLF & @CRLF & _
    '        h2 {' & @CRLF & _
    '            color: rgb(230, 107, 0);' & @CRLF & _
    '        }' & @CRLF & @CRLF & _
    '        </style>' & @CRLF & _
    '    </head>' & @CRLF & _
    '    <body>' & @CRLF  & @CRLF & _
    '    <h1>Hilfe</h1>' & @CRLF & _
    '    <h2>Vorwort</h2>' & @CRLF & _
    '    <p>Diese Hilfe wird dich unterstützen bei der Nutzung des Programms</p>' & @CRLF & _
    '    <h2>Inhalt</h2>' & @CRLF & _
    '    <ul>' & @CRLF & _
    '        <li>A</li>' & @CRLF & _
    '        <li>B</li>' & @CRLF & _
    '        <li>C</li>' & @CRLF & _
    '        <li>D</li>' & @CRLF & _
    '    </ul>' & @CRLF & _
    '    </body>' & @CRLF & _
    '</html>' & @CRLF
    
    Global $HelpHtml = StringReplace(@TempDir & "\help.html", '\', '/')
    FileWrite($HelpHtml, $sHtml)
    
    GUICreate("Embedded Html", 640, 580, _
            (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
            $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    Local $oIE = _IECreateEmbedded()
    GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    
    GUISetState(@SW_SHOW)
    
    _IENavigate($oIE, "file:///" & $HelpHtml)
    
    While 1
        Local $iMsg = GUIGetMsg()
        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                ExitLoop
        EndSelect
    WEnd
    
    GUIDelete()
    
    Exit
    
    Func _exit()
        FileDelete($HelpHtml)
    EndFunc
    Alles anzeigen
  • Auflösung und Positionen von mehreren Bildschirmen verwalten

    • BugFix
    • 16. Oktober 2020 um 13:18
    Zitat von Tyzer

    Scheint so als wäre das wirklich mal was wo keiner eine Lösung weis

    Weil es keine (native) Lösung gibt.

    Windows stellt keine Möglichkeit bereit, die Bildschirmauflösung per Kommandozeile zu ändern. Es gibt ein Tool: QRes, mit dem das möglich ist. Aber Vorsicht - das Tool prüft nicht, ob die übergebenen Werte von der Hardware realisierbar sind. Man muss also wissen, was man tut.

  • Merkwürdiges Verhalten von Tooltips (ANFÄNGER)

    • BugFix
    • 14. Oktober 2020 um 12:25
    Zitat von kilo

    die ich mittig auf dem Bildschirm platzieren möchte. Dafür nutze ich den Optionsparameter "2" (Center the tip at the x,y coordinates instead of using them for the upper left corner) und es klappt wie erwartet.

    Das hast du total falsch verstanden.

    Das Zentrieren bezieht sich auf den Text IM TOOLTIP!! und nicht auf die Platzierung auf dem Bildschirm, dafür sind Koordinaten erforderlich. Mit dem Default-Keyword statt der Koordinaten wird der Tip in der Nähe des Mauszeigers angezeigt.

    Edit: Nochmal deutlicher:

    Normal: die linke untere Ecke des Tooltip wird auf die x,y - Koordinaten gesetzt.

    $TIP_CENTER: die Mitte des Tooltip wird an die x,y - Koordinate gesetzt

    Edit_2:

    Mit einer eigenen (gekapselten) ToolTip Funktion kann man das recht elegant lösen:

    $TIP_FORCEVISIBLE wird außer bei Anzeige in der Mitte immer benötigt. Falls die Option $TIP_CENTER verwendet wird, könnte sonst der Tip ausserhalb des Bildschirmes dargestellt werden. Das wird so verhindert.

    AutoIt
    Global Enum Step *2 $TT_LEFT, $TT_RIGHT, $TT_TOP, $TT_BOTTOM, $TT_VCENTER, $TT_HCENTER
    
    _ToolTip('LEFT TOP', '', BitOR($TT_LEFT,$TT_TOP))
    Sleep(2000)
    
    _ToolTip('LEFT VCENTER', '', BitOR($TT_LEFT,$TT_VCENTER))
    Sleep(2000)
    
    _ToolTip('LEFT BOTTOM', '', BitOR($TT_LEFT,$TT_BOTTOM))
    Sleep(2000)
    
    _ToolTip('HCENTER TOP', '', BitOR($TT_HCENTER,$TT_TOP))
    Sleep(2000)
    
    _ToolTip('HCENTER VCENTER') ; default: BitOR($TT_VCENTER, $TT_HCENTER)
    Sleep(2000)
    
    _ToolTip('HCENTER BOTTOM', '', BitOR($TT_HCENTER,$TT_BOTTOM))
    Sleep(2000)
    
    _ToolTip('RIGHT TOP', '', BitOR($TT_RIGHT,$TT_TOP))
    Sleep(2000)
    
    _ToolTip('RIGHT VCENTER', '', BitOR($TT_RIGHT,$TT_VCENTER))
    Sleep(2000)
    
    _ToolTip('RIGHT BOTTOM', '', BitOR($TT_RIGHT,$TT_BOTTOM))
    Sleep(2000)
    
    Func _ToolTip($sText, $sTitle="", $iPosition=BitOR($TT_VCENTER, $TT_HCENTER), $iIcon=0, $iOptions=0)
        Local $x = @DesktopWidth/2, $y = @DesktopHeight/2 ; $TT_HCENTER, $TT_VCENTER
        Local $iOptForceVisible = BitOR(BitXOR($iOptions, 4), 4)
        If BitAND($iPosition, $TT_LEFT) Then
            $x = 0
            $iOptions = $iOptForceVisible ; $TIP_FORCEVISIBLE muss gesetzt sein
        EndIf
        If BitAND($iPosition, $TT_RIGHT) Then
            $x = @DesktopWidth
            $iOptions = $iOptForceVisible ; $TIP_FORCEVISIBLE muss gesetzt sein
        EndIf
        If BitAND($iPosition, $TT_TOP) Then
            $y = 0
            $iOptions = $iOptForceVisible ; $TIP_FORCEVISIBLE muss gesetzt sein
        EndIf
        If BitAND($iPosition, $TT_BOTTOM) Then
            $y = @DesktopHeight
            $iOptions = $iOptForceVisible ; $TIP_FORCEVISIBLE muss gesetzt sein
        EndIf
        ToolTip($sText, $x, $y, $sTitle, $iIcon, $iOptions)
    EndFunc
    Alles anzeigen
  • SciTE - Toggle Block Comment -- NEU!! ​​ Zum Aufheben eines Kommentarblocks ist keinerlei Markierung notwendig!

    • BugFix
    • 13. Oktober 2020 um 17:39
    Zitat von Bitnugger

    zumindest für Python bräuchte ich es auch... obwohl es da ja keinen echten Multi-Line-Kommentar gibt... da mache ich es mit Multi-Line-String

    Jo, wird ja auch so empfohlen.

    Werde ich mal noch einpflegen. Mal sehen, wie das am Besten geht, denn da muss ja der Einzug berücksichtigt werden.

  • SciTE - Toggle Block Comment -- NEU!! ​​ Zum Aufheben eines Kommentarblocks ist keinerlei Markierung notwendig!

    • BugFix
    • 13. Oktober 2020 um 09:29
    Zitat von Bitnugger

    habe dazu was getippt, um an den Style zu kommen

    Da hast du mich falsch verstanden. Den Style an einer bestimmten Position des Editors kann man mit den Api-Funktionen auslesen:

    editor.StyleAt[position]

    Aber man kann nicht abfragen, welchen Style au3 oder lua für comment.box verwenden (bei AutoIt: 2, bei Lua: 1).

    Sofern das nur für AutoIt und Lua genutzt wird, ist das OK. Vielleicht mache ich das, indem ich die Togglefunktion nur für SciTE und Lua aktiv schalte.

  • SciTE - Toggle Block Comment -- NEU!! ​​ Zum Aufheben eines Kommentarblocks ist keinerlei Markierung notwendig!

    • BugFix
    • 12. Oktober 2020 um 10:55
    Zitat von Bitnugger

    Wenn nichts markiert wurde, sollte es egal sein, wo das Caret steht, solange es sich in einer Start-/Endzeile oder sonstwo innerhalb eines Kommentarblocks befindet, um den Kommentarblock wieder zu entfernen.

    Das halte ich nicht für sehr sinnvoll. Wenn zuviel Möglichkeiten sind, sind zuviel Fehlinterpretationen möglich. "Der Cursor muss in seiner Zeile oder einer der folgenden Zeilen comment.start finden". Das entspricht auch unserem visuellen Vorgehen: Von oben nach unten.

    Die Position innerhalb eines Kommentarblocks zu erkennen, kann ich zwar sicher für Lua und AutoIt (weil ich da weiß, welcher Style jeweils verwendet wird), aber eben nicht allgemeingültig, weil nirgendwo ausgelesen werden kann, welchen Style der jeweilige Dateityp für Blockkommentare nutzt. Das ist in der Lexer.dll definiert. In den Properties sieht man das nur anhand der Kommentare, die aber auch unterschiedlich und somit nicht zuverlässig sind.

    Wo ich noch mitgehen könnte: Cursor vor/in comment.start Zeile oder in comment.end Zeile

    Allerdings wäre das nicht mehr kongruent in der Anwendungsweise, dann sollte man lieber sagen: in comment.start Zeile oder in comment.end Zeile

    Was meinst du?

    Zitat von Bitnugger

    Wenn sich in der Selektion eine Start-/Endzeile befindet, jedoch kein Gegenstück dazu, sollte das als Fehler gewertet und kein Kommentarblock erzeugt werden.

    Ähm, der Anwender hat also ohne Sinn und Verstand ein einzelnes #cs oder #ce in sein Skript geklatscht und das soll ich abfangen? In kleinen Skripten könnte man das tun, aber stell dir mal ein paar tausend Zeilen Code vor. Es muss das gesamte Skript vom Anfang bis zur Cursorposition gescannt werden um die korrelierenden start-end Zuordnungen zu erhalten. Das halte ich nicht für erstrebenswert. Etwas an Denkprozessen darf man ruhig auf den Anwender übertragen. :whistling:

    Zitat von Bitnugger

    Ich denke, comment.box.middle ist nicht dazu gedacht, um Einrückungen zu definieren, sondern um dem Kommentar ein oder mehrere druckbare Zeichen voranzustellen.

    OK, da kann ich mitgehen.

    Zitat von Bitnugger

    Anhand folgender Properties kann bestimmt werden, ob bzw. wie comment.box.middle eingerückt wird:

    Ja OK. Doch trotzdem muss an irgendeiner Stelle definiert werden: Ja, ich will (auch Kommentarblöcke) einrücken oder eben nicht. Denn ich kann ja nicht vom Anwender unabhängig einfach festlegen, dass eingerückt wird. Also ist zumindest eine weitere Property erforderlich, z.B. comment.box.indent.filepattern=0/1

  • SciTE - Toggle Block Comment -- NEU!! ​​ Zum Aufheben eines Kommentarblocks ist keinerlei Markierung notwendig!

    • BugFix
    • 11. Oktober 2020 um 11:39
    Zitat von Bitnugger

    comment.box.tab.alternation=@Tab ; <== Für diese Variable erkenne ich auch bei aller Anstrengung keinen Mehrwert!

    Da nur sichtbare Zeichen als Property gesetzt werden können, muss der Anwender über ein Ersatzzeichen mitteilen, dass ein Tab zur Anwendung kommen soll.

    Ich hätte auch festschreiben können: Soll ein Tab als box.middle verwendet werden so muss als Zeichen dafür "T" verwendet werden. In diesem Fall wäre die Property tatsächlich überflüssig.

    Da ich aber dem Anwender freie Wahl bei der Definition für seine Tab-Variable ermöglichen will ("@TAB", "tab", "BunteKuh",...) muss für den Fall, dass Tab verwendet werden soll das/die entsprechende/n Zeichen dort definiert werden und in box.middle wird darauf verwiesen: comment.box.middle.au3=$(comment.box.tab.alternation)

    Im Skript prüfe ich:

    comment.box.middle. nicht-leer ? --> comment.box.middle == comment.box.tab.alternation ? --> OK, TAB soll als box.middle verwendet werden.

    Zitat von Bitnugger

    ...und das passiert dann damit... das Exit hinter #CE ist zu viel und das Exit darüber dürfte nicht mit im Kommentarblock sein!

    Du hast sowas von Recht, und ich bin froh dich als Tester zu haben. :thumbup:

    Ich hatte zwar im Vorfeld alle möglichen (und vor allem unmöglichen :D ) Markierungsvarianten überlegt, aber dann 2 vergessen umzusetzen:

    Das ist nun korrigiert. (poste es gleich)

    NEU v 0.8 - s. Post #1

    - Start-/Endmarkierung mitten in der jeweiligen Zeile (Zeile gehört zum Block)

    - Endmarkierung in nicht leerer Zeile am Anfang (Zeile gehört nicht zum Block)

  • Context Menu Button mit Scrollbar oder vergrößern

    • BugFix
    • 11. Oktober 2020 um 00:56
    Zitat von Speedy86

    Meinst du das hier BuxFix:

    Nein, sondern das hier.

  • SciTE - Toggle Block Comment -- NEU!! ​​ Zum Aufheben eines Kommentarblocks ist keinerlei Markierung notwendig!

    • BugFix
    • 11. Oktober 2020 um 00:52

    NEU v 0.7 - s. Post #1

  • Lua - Grundkenntnisse

    • BugFix
    • 9. Oktober 2020 um 18:16
    Zitat von Professor Bernd

    Wie heißen denn Lua-Dateien, in die man Funktionen schreibt, die dann in anderen Lua-Dateien mit "requiere" eingebunden werden

    Das kommt drauf an. Schreibst du ein Modul, dann ist es ein Modul. Schreibst du eine Library, dann ist es eine Library.

    Die Unterscheidung ist auf den ersten Blick nicht so deutlich.

    Eine Bibliothek stellt i.A. eine Funktionssammlung dar (OHKfuncs.lua ist eine Bibliothek mit dem Globalen Table OHK, auf das nach dem Laden aus allen Skripten zugegriffen werden kann). Die Funktionen können aber ebensogut einzeln in der Datei vorhanden sein (nicht in einem Table)

    Ein Modul ist an sich auch eine Bibliothek - aber mit einem Unterschied: Alle Funktionen werden in einem lokalen Table erstellt. Dieses Table wird dann am Ende der Datei exportiert:

    -- z.B. "MeinModul.lua"

    local MeinModul = {

    f1 = function() .... end,

    f2 = function() .... end,

    f3 = function() .... end,

    ...

    }

    return MeinModul

    Schau mal ins Modul-Tutorial.

    Zitat von Professor Bernd

    Können Funktionen in anderen Lua-Scripts mit "requiere" benutzt werden, die in der eingebundenen Bibliothek mit "local" deklariert wurden?

    Nur wenn sie als Modul erstellt wurden. Alles was lokal ist, kann in anderen Dateien nicht erkannt werden, wenn es nicht exportiert wird.

    Übrigens nicht unwichtig: Im Gegensatz zu AutoIt sind Schleifenvariablen auch lokal. Man braucht sie zwar nicht deklarieren, aber ausserhalb der Schleife existieren sie nicht mehr.

    Zitat von Professor Bernd

    Was ist der Unterschied zwischen requiere "MyModule", LoadLuaFile("MyModule.lua") und LoadUserLuaFile('MyModule.lua')?

    LoadLuaFile und LoadUserLuaFile machen beide dasselbe: dofile

    Die beiden Funktionen verwenden nur einen vordefinierten Pfad (bzw den Pfad als Zusatzparameter mit Default-Wert), sodass nur der Dateiname übergeben werden muss.

    LoadUserLuaFile hatte ich erstellt um damit direkt eigene Dateien nur mit Angabe des Dateinamens aus dem Lua.User.Scripts.Path zu laden.

    Der Unterschied zu require? - Lies selbst:

    Zitat von Lua-Doku: The require function


    Lua offers a higher-level function to load and run libraries, called require. Roughly, require does the same job as dofile, but with two important differences. First, require searches for the file in a path; second, require controls whether a file has already been run to avoid duplicating the work. Because of these features, require is the preferred function in Lua for loading libraries.

  • Context Menu Button mit Scrollbar oder vergrößern

    • BugFix
    • 9. Oktober 2020 um 00:09

    Oder du machst das Menü mehrspaltig. Ich kann mich schwach erinnern, dass ich vor vielen Jahren dazu etwas gepostet hatte. Musst du mal suchen.

  • SciTE - Toggle Block Comment -- NEU!! ​​ Zum Aufheben eines Kommentarblocks ist keinerlei Markierung notwendig!

    • BugFix
    • 8. Oktober 2020 um 08:50
    Zitat von Bitnugger

    Setzte ich das Caret aber an den Anfang der zweiten Zeile, dann wurde ja eigentlich nur eine Zeile markiert.

    Eigentlich ist ein schönes Wort. :D

    Denn eigentlich hast du zwei Zeilen markiert - kann ja interpretiert werden als: da gehört jetzt noch eine Leerzeile in den Block und nur wenn die Markierung hinter dem Text endet, ist diese Zeile allein gemeint. ;)

    Ich will aber sowieso noch ein paar Erweiterungen vornehmen, kümmere ich mich am WE drum.

  • Lua - Grundkenntnisse

    • BugFix
    • 7. Oktober 2020 um 19:39
    Zitat von Professor Bernd

    Meinst du damit, es ist besser ein Table lokal zu deklarieren? Z.B. in "MeinModul.lua" local MyMod = {}?

    Ja. Was du nicht als lokal deklariert hast, landet in _G, dem Globalen Table. Die Suche nach Variablen, Funktionen ist immer:

    - im aktuellen Chunk (Funktion oder do... end - Bereich)

    - im Skript

    - in eingebundenen Modulen

    und zum Schluß im Globalen Table. Somit werden lokale Deklarationen am Schnellsten gefunden.

    Du wirst in vielen Skripten z. B. die Lokalisierung nativer Funktionen finden. lokal string = string

    Das bringt wieder ein paar Millisekunden. ;)

  • Lua - Grundkenntnisse

    • BugFix
    • 7. Oktober 2020 um 18:45
    Zitat von Professor Bernd

    Wofür ist denn "OHK = {}" am Anfang er OHKfuncs.lua? In anderen Scripts habe ich z.B. "F = {}" gesehen.

    Mal noch als Hintergrund:

    Lua besteht intern ausschließlich aus Arrays - in Lua: Tables.

    Alle Funktionen und Werte sind darin gespeichert. Daraus resultiert auch, dass Lua extrem davon profitiert, wenn Funktionen/Variablen explizit lokal deklariert werden.

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™