Beiträge von H.Brill

    Mein Compiler hat das Datum 11.05.2018.


    Beim Patch damals sollte man ja auch nur die

    Profan.exe und Prfrun32.exe in den Patchordner

    kopieren, um diese zu korrigieren.


    Klar ist, daß die Kunden, die danach die Vollversion kauften,

    auch den korrigierten Compiler hatten. Ich, sowie auch ein

    paar andere waren aber Subscriptionskunden. Wir hatten

    auch immer nur den Interpreter und die Runtime mit den neuen

    Funktionen zum Download gehabt.


    Vielleicht liegt es ja daran.

    Hallo Roland.

    Bei der Verwendung von UNITS kommen beim Compilieren

    immer noch die Debugfenster. Diese muß man umständlich

    wegklicken. Bei kleinen Units ist das kein Problem, aber bei

    größeren doch schon nervig.


    Die erstellte .exe scheint nicht davon betroffen zu sein.

    Ich hatte damals nur im Interpreter getestet.


    Könntest du das noch beheben ?

    Bei Icons weiß ich es nicht. Bei BMP siehe in der Profanhilfe :


    Aber vielleicht könnte man bei der Imageliste mit Sendmessage was machen.

    Code
    DEF &ILC_MASK $0001
    DEF &ILC_COLOR32 $0020
    SendMessage(imglist, &ILC_MASK|&ILC_COLOR32, 0, 0)

    Oder mit einer BMP mit DrawPic im Kopiermodus (-1).

    Vielleicht hilft dir das weiter :

    Soll die DLL das Handle des Icons bekommen ?

    Schiebe das Icon mal in eine ImageListe und lese

    das Handle mit ImageList("GetIcon", imglist&, 0)


    so etwa :

    Code
    Cls
    Declare Handle img
    img = Create("ImageList", 32, 32)
    ImageList("AddIcon", img, Create("hIcon", "Gesicht"))
    
    DrawIcon img, 0, 100, 100
    Print "Handle des Icons : ", ImageList("GetIcon", img, 0)
    
    Waitkey
    DeleteObject img

    Hallo,

    früher spielten wir das mit 21 Groschen in der Kneipe.

    Es dürfen maximal 7 Groschen verschoben werden.

    Dann muß die Spitze des Dreiecks nach unten zeigen.

    Das Dreieck muß aber wieder komplett sein.

    Zwei Probleme habe ich noch :

    Wie bekomme ich das Icon als Cursor beim Drag&Drop an die richtige Stelle ?

    Hab hier mal UseCursor verwendet.

    Wie kann ich ein Icon beim Drop einrasten lassen, damit es schöner aussieht ?

    Also gerade Zeile der Icons und gleicher Abstand zueinander ?


    Muß dann nur noch rausfinden, wenn das Spiel gewonnen (also die Icons richtig sitzen)

    ist, um eine Meldung auszugeben.

    Hier habe ich gesehen das es ein Xprofan x64 gibt. Könnte man davon eine aktuelle Fassung haben?

    Eine Version, die den Funktionsumfang (mit ein paar Ausnahmen) von X3 hat, bekommst du hier :


    https://xprofan.net/intl/de/xprofan/freeprofan/


    War wohl die letzte Version. Eine 64-Bit Version mit Delphi geschrieben, wird es auch nicht geben.
    Dazu ist die 64Bit Version von Delphi schweineteuer, somit fällt das auch flach.


    An eine Version 5 glaube ich eigentlich nicht mehr. Dafür nutzen es momentan nur wenige, sodaß sich
    der Aufwand nicht lohnt. Es ist auch abhängig, ob Roland genügend Freizeit daür hat. Schließlich gehen
    Arbeit und Familie vor.


    Was ich mir noch wünschen würde, wäre noch eine weitere Subscription.
    Da wären ja noch einige Baustellen, die bereits schon in den anderen 2 Foren angesprochen wurden,
    fertig zu stellen. Etwa Drag & Drop, mit dem auch Anfänger zurecht kommen, mehr Netzwerkfunktionalität
    und das eine oder andere noch. Da käme bestimmt noch eine gut bestückte Liste mit kleinen Wünschen,
    für die es sich lohnen würde. Lohnen würde sich das nicht geldlich sondern rein arbeitstechnisch und um
    XProfan noch etwas am Leben zu halten.


    Ich hatte ja gehofft, daß in der CORONA - Zeit, ein paar mehr neue Leute, die zuhause bleiben müssen,
    Interesse daran hätten.

    Im Netz habe ich von dem Problem ein paar mal gelesen.
    Als Antwort wurde dann, als Admin anmelden und einige
    Zeilen im cmd schreiben, geschrieben.


    Weile dies auch nicht immer klappte, bin ich halt
    auf diese Idee gekommen.

    Hat schon jemand das Problem gehabt, daß nach einem Windows-Update der Browser
    EDGE nicht mehr lief ?
    Nach dem Dezember update (64Bit) zeigte Edge nur noch
    Falsche Version.dll
    an und startete auch nicht mehr. Da ich im Netz nichts richtiges fand, ging ich selbst
    mal auf die Suche.
    Die richtige Version.dll befindet sich im Ordner
    C:\Windows\SYSWOW64\
    In C:\Programme(x86)\Microsoft\Edge\Application\
    muß die alte Version.dll zuerst gelöscht werden und dann
    die neue reinkopiert werden.
    Und schon läuft der Browser wieder. :thumbsup:


    Ich denke mal, daß MS mit dem Update die DLL falsch kopiert hatte.

    Aber wie würdest du damit alle Ebenen (also rekursiv) anzeigen, damit alle Dateien des LWs gelistet werden?

    Na, mit einem Treeview.
    Mein obiges Beispiel funktioniert ja auch mit einer unsichtbaren Listbox (Create("List", 0) ).
    Die Unterordner [...] kann man ja leicht ermitteln. Dann halt mit einer weiteren Liste
    durchhangeln, bis es kein Unterordner mehr gibt. Mußt halt bei jedem Unterordner dein
    Treeview erweitern.

    Man kann es sich ja auch direkt in eine Listbox
    schreiben lassen :


    Da könnte man ja auch noch mehr draus machen :
    https://www.wbrnet.info/db/0550.html

    Naja, ist wohl klar. Scheint russisch zu sein. Wenn du das in eine Variable schreibst,
    kommen statt den russischen Buchstaben auch nur Fragezeichen. Genauso verhält
    es sich auch mit den Dateibefehelen wie BlockRead usw. Da wird die API-Funktion
    in der ANSI-Version verwandet. Da müßte dann CreateFileW als API Funktion
    verwendet werden.


    Siehe auch MessageBoxA und MessageBoxW.


    Am besten nennst du die Datei vorher um. Dann klappt es auch.

    Hallo Roland,
    Könnte man den Befehl Copy noch etwas aufbohren ?
    z.B.: wenn S2 nur ein Pfad mit abschließendem \ ist,
    wird von S1 der Dateiname übernommen und in den
    Ordner S2 kopiert. Hier kommt im Moment ja eine
    Fehlermeldung.
    Oder, wenn S1 und S2 nur Ordner mit \ sind, werden
    alle Dateien von S1 nach S2 kopiert.


    Da gäbe es auch noch mehrere Optionen.
    Natürlich kann man auch mit


    Code
    WinExec(GetEnv$("COMSPEC") + " /c " + prg$, 0)

    arbeiten, wobei prg$ den CMD Copy - Befehl darstellt.
    Aber anders rum wäre es schöner.

    Ich hatte eher ein schlankes Profan ohne die Sachen, die man nicht immer braucht,
    gemeint. Da könnte z.b. die dBase funktionen, das OGL, Multimedia u. Sound, SQL usw.
    extern gehalten werden.

    So ein Gedanke hatte ich schon vor ein paar Jahren geäußert :
    Daß man den Interpreter und die Runtime nur mit dem Wesentlichen
    (Kontrollstrukturen, usw.) bestückt.
    Alles andere, auch das Neue, was hinzu kommt, könnte in sogen.
    Libraries (ähnlich $L und $U) Platz finden. Der Interpreter bzw. Compiler/
    Interpreter sucht sich im Ordner die Lib raus und startet/ compiliert
    das Programm. Damit der Compiler/Interpreter die Funktionen besser
    findet, könnte man ja auch Headerdateien, die die Funktionen im Klartext
    nochmals speichern, anlegen.
    Vielleicht, daß ein paar Grundlibrarys standarmäßig eingebunden werden,
    um z.B. ein Fenster (CLS), ein Print und Waitkey/Waitinput zu gwährleisten.


    Damit wären die Programme noch schlanker. Auch die Schnelligkeit müßte
    dann noch etwas höher sein, da das gesamte 'Paket' nicht im Speicher
    gehalten werden muß.


    Auch die Wartbarkeit für Roland wäre besser, besonders was Fehler usw. anbetrifft.
    z.b. ist der Fehler im Interpreter behoben, aber in der Runtime schlichtweg vergessen
    worden. Ist ja auch schon ein paarmal vorgekommen. Aber niemand ist ja unfehlbar.


    Wer sich dafür interessiert, sollte sich mal B4J unter
    http://WWW.B4X.COM
    ansehen. Das gefällt mir auch sehr gut, wo man die LIBS einfach anhaken kann,
    und somit die Funktionen darin verfügbar sind. Auch in der IDE wird dann die
    Syntax der einzelnen Funktionen angezeigt.


    Es gibt auch andere Sprachen, die das so ähnlich mit dem Einbinden handhaben.

    Pascal und Delphi schreiben bekanntlich P-Code. Von P-Code kann man theoretisch in verschiedenste Zielplattformen compilieren. Wie ist das eigentlich bei XProfan?

    Bei Win32 und Win64 geht das ja noch einigermaßen gut, da ja dort nur die
    64Bit beachtet werden müssen. Bei der API gibt es ja passend Pendants dazu.


    Anders sieht es dann bei Linux, MAC und Android aus. Da müssen dann auch
    z.B. Root - Rechte usw. und bei MAC die DevelopperLizenz zusätzlich beachtet
    werden. Da kommt schon einiges zusammen, was dann doch anders ist, als bei
    den Windows - Betriebssystemen.


    Das wärs auch schon bei den häufig verwendeten Betriebssystemen. Nicht umsonst wird
    bei Android ein Unterbau von JAVA gerne benutzt, da dies a) weitverbreitet und ausgebaut
    ist und b) dann auch auf den gängigen Versionen läuft.
    Das ist genauso, wie die .PDF Dateien, die von den 3 BS gelesen werden können.

    Abt. Stärken und Schwächen von XProfan
    ===========================

    Da wäre auch mal eine Liste schön, in die jeder noch nicht
    gelistete Stärken/Schwächen eintragen kann. Wäre interessant
    für User, die sich vor allem für XProfan entscheiden wollen.


    Ein Kriterium könnte auch sein, daß man schnelle Ergebnisse
    beim Ausprobieren von Funktionen/Befehlen sehen kann, und
    nicht erst mühsam ein Fenster aufbauen muß. Ein Cls, Print und
    ein Waitkey reichen ja schon.