1. Artikel
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forum
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Paules-PC-Forum.de
  2. Mitglieder
  3. MaZz

Beiträge von MaZz

  • Execute S

    • MaZz
    • 22. Juli 2025 um 09:47

    Hallo,

    Ich habe Execute zwar nie verwendet, halte es aber 'lediglich' für da einzeilige Pendant zu $Ifdef Interpreter, mit dem sich ja ganze Codeblöcke definieren lassen. Je Aufruf erspart das dann immerhin 2 Codezeilen. Das kann sich durchaus summieren...

    Gruß Matthias

  • %ChildMessage

    • MaZz
    • 9. Dezember 2023 um 19:16

    ...gänzlich unerwähnt zwar nicht, aber nur unzureichend und über die Referenz auch nicht direkt zu finden (im Index unter Message). Ich selbst habe es nicht verwendet...

    Gruss Matthias

  • Funktionsaufruf mit mehr als 15 Parametern

    • MaZz
    • 3. August 2023 um 10:30

    Ja, so dachte ich mir das. Parameterübergabe 'en bloc' ist natürlich auch elegant. Und um das Ganze dann noch universell zu gestalten, könnte man ja den Namen der Funktion und das beinhaltende Modul auch gleich noch per Parameter übergeben. Oder ggf. noch andere Optionen einbauen...

  • Funktionsaufruf mit mehr als 15 Parametern

    • MaZz
    • 3. August 2023 um 10:01

    Nur mal so als spontaner Gedanke... Da sich das 15er-Limit in Profan wohl nicht so ohne Weiteres umschiffen lässt, könnte man sich ggf. einen Workarround basteln, indem man den Aufruf solch einer "parameterlastigen" Funktion in eine DLL (evtl. als MemoryModul) verlagert. Man müsste dann alle Parameter häppchenweise in max. 15er-Paketen auf den Stack innerhalb der DLL packen, von dort dann wieder herunterholen und der nachfolgend aufzurufenden Funktion übergeben. Aber ob sich der Aufwand lohnt...?!

  • Dialogfont + Dialogelemente

    • MaZz
    • 3. Januar 2022 um 10:09

    Da die GridBox nicht auf dem 'sichtbaren' Dialog, sondern auf einem separaten, internen Dialog liegt, bleibt SetDialogFont hier wirkungslos. Mit 'SetFont Grid, ...' sollte es aber klappen.

    Gruß Matthias

  • Inline-Assembler

    • MaZz
    • 22. Juli 2020 um 22:13

    @p.specht: Fehlerchecks kommen von den verwendeten Windows-APImodulen selbst

    Das wird sicher auch überwiegend so sein, soweit es nicht die Profan-Syntax selbst betrifft. Da bleibt also wenig "Sparpotential" unterhalb von ErrorLevel 0. Mit dem, was die API zurückliefert, muß Profan intern ja trotzdem irgendwie umgehen, auch wenn es letztlich nicht zum Anwender durchgereicht wird.

    Im Übrigen sehe ich das auch so, daß die Abwärtskompatibilität ein ein wesentliches Pro-Argument für XProfan ist, so reizvoll der Gedanke auch sein mag, ganze Funtionalitäten optional zu inkludieren. Und nicht nur die Möglichkeit, jede beliebige PRC (auch fremder Herkunft...Hauptsache versionskonform) mit dem Runtime-Modul zu starten, wäre damit dann passe.

    Der allfällig mitgeschleppte "Rücksack" hat denn doch schon so seine Vorteile...

  • Letzte eingegebene Zeile einer bereits gefüllten GridBox sichtbar machen

    • MaZz
    • 20. Juni 2020 um 17:19

    LVM_ENSUREVISIBLE=$1013 scrollt die letzte Zeile in den sichjtbaren Bereich:

    SendMessage(gBox&,$1013,(getcount(gBox&)-1),1)

  • Proc verschachteln

    • MaZz
    • 20. Mai 2020 um 17:54

    @p.specht
    ..."logische Zugehörigkeit" angezeigt... Genau das meinte ich im Nachtrag, nur fiel mir kein klangvoller Begriff ein ;)

  • Proc verschachteln

    • MaZz
    • 20. Mai 2020 um 17:06

    Das funktionierte wohl auch schon damals bei Version 5 ohne besondere Erwähnung. Lt. Hilfe zu XProfan 11 aber auch offiziell: 'Die PROC-ENDPROC-Verschachtelung, und damit die Rekursionstiefe ist unbegrenzt...' Steht dort aber unter 'XProfan ohne Grenzen', wo man eher nicht danach sucht...

    Nachtrag: Ob sinnvoll oder nicht ? Wenn 'proc2' lediglich eine 'Unterfunktion' von 'proc1' ist (und nur von dieser !) kann es den Code eventuell übersichtlicher machen.

  • Tool zur Quelltextanalyse

    • MaZz
    • 19. Mai 2020 um 16:10

    Es gibt in der Tat schon was in dieser Richtung: 'Profan-Inspector' von Sebastian König. Die Entwicklung endete zwar nach Profan 11. Das Programm ist aber in gewissem Rahmen 'lernfähig', d.h. man kann auch Profan-Neuerungen einpflegen. Sehr zuverlässig in der Erkennung. Ich verwende es gern und regelmäßig.

    Nun geht das, was Du vor hast, z.T. über die reine Erkennung hinaus und soll auch noch so einiges anderes können. Auf jeden Fall ein interessantes und ambitioniertes Vorhaben, das ich mir dann gern mal ansehen werde, wenn es soweit ist. Ob man es braucht (und wenn wie viele...), sei jetzt mal dahin gestellt. Sowas macht ja auch irgendwie Spass. Also gutes Gelingen...!

  • Ressource auslesen

    • MaZz
    • 5. Februar 2020 um 10:59

    Das sollte für alle Eventualitäten genügen, egal, ob (eigene) EXE oder DLL:

    Code
    proc Resource2File
    parameters Path$,ResName&,ResType&,File$
    declare ResFile&,Resource#,ResSize&,ResHdl&,Res&
    ''Modul laden (statt UseDLL) oder alternativ "LoadLibraryEx"
    ResFile& = external("Kernel32","LoadLibraryA",addr(Path$))
    Res& = external("Kernel32","FindResourceA",ResFile&,ResName&,ResType&)
    ResHdl& = external("Kernel32","LoadResource",ResFile&,Res&)
    ResSize& = external("Kernel32","SizeofResource",ResFile&,Res&)
    ''in Datei schreiben, falls gewünscht
    dim Resource#,ResSize&
    Resource# = ResHdl&
    assign #1,File$
    openrw #1
    blockwrite #1,Resource#,0,ResSize&
    closerw #1
    dispose Resource#
    ''wieder freigeben (statt FreeDLL)
    external("Kernel32","FreeLibrary",ResFile&)
    endproc
    
    
    ''Bsp. ...schreibt die Manifest-Ressource in eine Textdatei
    Resource2File("PROFAN.EXE",1,24,"MANIFEST.TXT")
    Alles anzeigen


    Gruß Matthias

  • ID für Toolbarbutton herausfinden

    • MaZz
    • 26. September 2019 um 17:42

    Hallo,
    nur mal schnell zwischendurch und ohne genau zu wissen, was Du meinst...
    Die Messages
    TB_GetButton https://docs.microsoft.com/de-de/windows/…ls/tb-getbutton
    und
    TB_GetButtonInfo https://docs.microsoft.com/de-de/windows/…b-getbuttoninfo
    sollten eigentlich die relevanten Infos zurückliefern. Falls Du das nicht schon probiert hast...

    Gruß Matthias

  • BalloonTips für Statusbar und Toolbar

    • MaZz
    • 9. September 2019 um 17:38

    Nun ja, ob sinnhaft oder nicht. Die ToolBar ist einerseits entstehungsgeschichtlich deutlich älter als die ToolTips. Und auch wenn es aus Anwendersicht vielleicht anders erscheint (erscheinen soll), gegenüber dem Betriebssystem fungiert nur die ToolBar selbst als eigenständiges Control (mit eigenem Handle und, falls gewünscht, mit ToolTip), deren Unterelemente beliebiger Anzahl hingegen nicht.
    Grob vergleichbar etwa mit einer Liste, die ja auch beliebig viele Items haben kann. Für das System handlebar ist aber immer nur die Liste selbst.

    Gruß Matthias

  • BalloonTips für Statusbar und Toolbar

    • MaZz
    • 9. September 2019 um 09:19

    Nun, es ist einfach so, daß eine ToolBar nur jeweils ein assoziiertes ToolTip-Control hat (und nicht etwa jedes in der ToolBar enthaltene Element sein eigenes...). Folglich kann man auch nur dieses eine ToolTip-Control in seinen Eigenschaften verändern. Soweit dazu...

    Willst Du also ein unterschiedliches Erscheinungsbild des ToolTips für jedes einzelne Element innerhalb der ToolBar, ginge das wohl nur, wenn Du vor jedem MouseOver bzw. jedem Neuzeichnen des ToolTips die Eigenschaften des einzig vorhandenen ToolTip-Controls der ToolBar änderst.

    So jedenfalls meine Annahme, falls ich Dein Anliegen richtig verstanden habe...

    Gruß Matthias

  • Sortierbuttons für eine XProfan-Gridbox

    • MaZz
    • 15. Januar 2017 um 22:45

    Dann erstmal Danke Euch beiden...

    Dann basiert meine Info wohl auf einer veralteten Strukturdefinition. Jedenfalls haben 32bit bei mir immer ausgereicht. Wie auch immer - damit wäre auch das jetzt bereinigt.

    Gruß Matthias

  • Sortierbuttons für eine XProfan-Gridbox

    • MaZz
    • 14. Januar 2017 um 19:57

    Da ich das heute grade selbst brauchte und hier keine Option zum Editieren des Alt-Beitrags fand:

    hdi# ist mit 28 Byte doch etwas zu knapp dimensioniert...besser also 32 statt 28 Byte

    Gruß Matthias

  • WindowStyle?

    • MaZz
    • 28. Mai 2016 um 23:30

    Vielleicht wäre es mal noch eine Überlegung wert, ein Flag für WS_VISIBLE als Parameter zu übergeben (zusätzlich zu den Fenster-Koordinaten). Nicht wissend, wie aufwändig das intern umzusetzen wäre...

    Gruß Matthias

  • Was fehlt hier noch ?

    • MaZz
    • 25. Mai 2016 um 22:41

    Na ja, sieht doch gut aus !

    Vielleicht noch optionales Speichern beim Beenden...
    Platz für eine entspr. CheckBox oder "Optionen"-Button wäre ja noch neben der "Hilfe".

    Ansonsten gut gelungen und vor Allem schön übersichtlich !

    Vielleicht noch einen Plausibilitäts-Check bspw. bei den Kontodaten, da gerade hier eventuelle Eingabefehler seeehr unangenehm sein können. Aber vlt. hast Du an sowas schon gedacht. Das viel mir aus aktuellem Anlass eben noch ein...

    Gruß Matthias

  • Sortierbuttons für eine XProfan-Gridbox

    • MaZz
    • 14. Mai 2016 um 19:30

    Ach so...und zum Entfernen des Sortierpfeils (beim Wechsel der Spalte):

    Code
    proc SetHeader_RemoveArrow
    parameters LV&,column&
    declare hdi#,fmt&,hdr&,txt$
    hdr& = SendMessage(LV&,$101F,0,0)
    txt$ = space$(255)
    dim hdi#,32
    long hdi#,0 = 183
    long hdi#,8 = addr(txt$)
    long hdi#,16 = 256
    SendMessage(hdr&,$1203,column&,hdi#)
    fmt& = long(hdi#,20)
    if fmt& & 4096
    fmt& = fmt& - 4096
    endif
    if fmt& & 2048
    fmt& = fmt& - 2048
    endif
    if fmt& & 1024
    fmt& = fmt& - 1024
    endif
    if fmt& & 512
    fmt& = fmt& - 512
    endif
    long hdi#,20 = fmt&
    SendMessage(hdr&,$1204,column&,hdi#)
    dispose hdi#
    endproc
    Alles anzeigen

    na dann, viel Spass.....

  • Sortierbuttons für eine XProfan-Gridbox

    • MaZz
    • 14. Mai 2016 um 18:59

    Die Sortierpfeile bekommst Du erstmal damit:

    Code
    proc SetHeader_SetArrow ''(Par: ListView, Spalte, Sortier-Richtung)
    parameters LV&,column&,updn&
    declare hdi#,fmt&,hdr&,txt$
    hdr& = SendMessage(LV&,$101F,0,0)
    txt$ = space$(255)
    dim hdi#,28
    long hdi#,0 = 167
    long hdi#,8 = addr(txt$)
    long hdi#,16 = 256
    SendMessage(hdr&,$1203,column&,hdi#)
    fmt& = long(hdi#,20)
    ifnot fmt& & 4096
    fmt& = fmt& + 4096
    endif
    if (updn& = 0) | (updn& = 2)
    ifnot fmt& & 1024
    fmt& = fmt& + 1024
    endif
    elseif (updn& = 1)
    ifnot fmt& & 512
    fmt& = fmt& + 512
    endif
    endif
    long hdi#,20 = fmt&
    SendMessage(hdr&,$1204,column&,hdi#)
    dispose hdi#
    endproc
    Alles anzeigen

    Der Header-Style muß natürlich entsprechend gesetzt sein (Buttons...)
    Nun brauchst Du "nur" noch Abfrage Spaltenklick, Sortierfunktion etc.

    Gruß Matthias

Windows 11

  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™