Ja, so funktioniert es noch besser.
Beiträge von H.Brill
-
-
Funktioniert mit einem Timer super :
CodeSetTimer 8000 WhileNot ende WaitInput If %wmtimer SetRelMouseCursorPos(%HWnd, 40, 60) WhileLoop 1, 60000 : EndWhile SetRelMouseCursorPos(%HWnd, 330, 30) EndIf Case %Key = 27 : ende = 1 EndWhile
Das SLEEP wollte nicht so, wie ich. Deshalb die Zählschleife.
Nochmals danke. Kann man ja auch für mehrere Sachen verwenden.
-
Oh danke, da muß ich mich erst mal durchfuchsen. Dachte jetzt nicht, daß so eine Menge Code nötig ist.
-
Jetzt müßte ich nur noch rausfinden, wie man einen Mauszeiger zu vorgegebenen Koordinaten automatisch bewegt, damit man nicht immer händisch mit dem Zeiger drüber fahren muß. Halt so ähnlich, wie man es bei einem Fernwartungssystem sieht.
Damit könnte man dann die die Koordinaten zu den einzelnen Bildern ansteuern.
-
SpiderBasic ist auch mehr für web/browser basierte Apps zu schreiben gedacht. Zwar geht es auch mit dem Cordova - Unterbau, aber so richtig gefiel mir das auch nicht. Da bleibe ich lieber bei meinem kostenlosen B4A, das auch ständig aktualisiert wird.
Wie sieht es bei SpiderBasic aus mit den Restriktionen. Google hat Android ja offenbar bei den letzten Versionen die Schreibrechte beschnitten. Macht das SpiderBasic auch mit ?
-
Nett gemacht. Sieht gut aus.
-
Da spricht auch viel Firmen-Philosophie mit. Mittlere und größere Firmen, die eine Entwicklungsabteilung haben, werden wohl kaum XProfan verwenden. Da wird schon das genommen, was z.Zt. aktuell und sehr bekannt ist. Vielleicht kleinere Firmen, die was von XProfan-Programmierern angeboten bekamen, nutzen das. Damals, vor ca. 25 - 30 Jahren, sprach man dann auch von 'mittlerer Datentechnik'. Und als dann die ersten SQL-Datenbanken rauskamen, verlor dBase immer mehr an Bedeutung. Zwar reicht dBase für kleine/mittlere Betriebe von der Datenmenge her immer noch aus, ist aber leider nicht netzwerkfähig.
Das Ziel von XProfan ist eher für den 'Hausgebrauch' zu programmieren, bzw. Neueinsteigern mit evtl. gewissen Programmierhintergrund (BASIC) den Einstieg zu erleichtern.
-
Von daher verstehe ich RGH bzw. seine Beweggründe, Profan zu entwickeln.
Ist schon ein Unterschied. RGH nutzte ja auch Delphi jahrzentelang in seinem Beruf. Da ist er mit dem manchmal umständlichen Coding doch mehr vertraut.
Daher sage ich ja : für meine kleinen Tols ist XProfan und PB unschlagbar. Solche Boliden, wie Latarus und Delphi brauche ich gar nicht. Und für Neueinsteiger, die erst mal Variablen, Arrays und Kontrollstrukturen usw. erlernen müssen, ist XProfan allemal sehr zu empfeheln. Einfacher kann man es nicht erlernen.
-
Oh, nächste Woche ist ja schon Karwoche.
Vielleicht hat ja RGH ein 'easter egg' für uns ?
-
Hier habe ich noch einen Vorschlag :
Verwendung des Edge Controls (WebView2-Control), das bei Windows 10 + 11 schon vorinstalliert ist, bei :
Könnte bei Parameter N (N = 5) erweitert werden. Halt so ähnlich, wie beim RichEdit der Modus. Standardmäßig könnte dann das ältere vom Internetexplorer verwendet werden.
-
Als erste Konsequenz freunde ich mich gerade mit Lazarus und parallel dazu mit PureBasic an.
Pascal und Delphi bzw. Lazarus war noch nie so mein Ding. Damit konnte ich mich damals schon nicht anfreunden. Ist halt auch Geschmackssache.
Wenn du mal einigermaßen in Lazarus fit bist, vielleicht könntest du ja auch RGH etwas behilflich sein. Sei es nun mit den von dir eingebrachten Ideen oder Code, den du zur Verfügung stellen könntest. Die Anhebung auf 64 Bit von XProfan X3 auf X4 bzw. auf eine neue X5 gelingt ja zur Zeit nur mit Lazarus. Mit reinem Delphi scheint RGH ja viel Probleme (Strings) zu haben bzw. ist es nicht so einfach möglich.
-
Mit PureBasic habe ich noch keinerlei Erfahrung gemacht. Evtl. sollte ich mich damit mal befassen.
Ja, unbedingt. Ich fahre da auch zweigleisig. Je nach Anforderungen entweder mit XProfan oder mit PureBasic. Es gibt halt Sachen, die PureBasic besser kann, aber auch andere Sachen, wo man es leichter mit XProfan hat. Also ruhig mal über den Tellerrand schauen. Und irgendwann soll es für PureBasic keine lebenslange Lizenz mehr geben, sondern kostenpflichtige Updates. Wobei die Besitzer einer lebenslangen Lizenz davon nicht betroffen sein werden. Da lohnt sich noch schnell ein Kauf, da die Mehrkosten nach 2 - 3 Updates wieder eingespielt sind und man nacher die kostenlosen Updates genießen kann.
Du kannst ja mal die Demo probieren. Die ist nur beschränkt auf 1000 Zeilen (wer schafft schon sowas am Anfang oder auch später ?) und die Windows-API ist nicht nutzbar, was einen Anfänger sowieso erstmal nicht stört.
PureBasic ist da ein klein wenig anders, was die Ereignisschleife betrifft und man hat halt nur das Debug-Fenster, wenn es darum geht schnell mal eine Funktion auszuprobieren. Ist aber ansonsten auch gut zu gebrauchen.
-
Hier vertrete ich eine andere Sichtweise. Ich persönlich wäre bereit, für eine aktualisierte 64-Bit Version auch einen Betrag jenseits von 200 Euronen zu legen.
Damit stehst du aber hier ziemlich alleine. Ich hatte oben auch noch andere 'Nischensprachen' im Kopf und weiß, was für Preise so gängig sind. Also, 200 €, die du als einziger zahlst, wären für den Autor noch weniger rentabel. Wenn aber sagen wir mal 20 Personen für ein 64-Bit-Update 25 € zahlen, wird es wieder viel interessanter. Und bei einem günstigen Preis können das noch mehr Leute werden. In diesem Kontext sehe ich das mal.
Die Version X4 auch als Freeware anzubieten ist auch nicht gut. Schließlich ist diese Version noch aktuell und der Riesensprung von X3 zu X4 sollte auch entlohnt werden. Besser ist dann, nur den Interpreter freizugeben, damit möglichst viele Leute ausprobieren können. Deshalb halte ich auch von einer 'kastrierten Version' nichts. Sowas hätte schon damals mit der Version X2 + X3 gemacht werden müssen. Besser wäre, wie bei PureBasic, daß man als Nutzer, der eine der letzten Versionen auch bezahlt hat, Zugang zum Museum erhält, wo er die älteren Versionen immer wieder downloaden kann.
Auch der Bekanntheitsgrad ist ja nicht sonderlich hoch. Etwas Werbung würde da schon helfen. Früher hatte man solche Shareware - Versionen des öfteren auf der CD von PC-Zeitschriften und eine kurze Erwähnung im Heft selber gefunden. Ich selber kam damals so zu Profan. Leider ist dieser Markt auch eingebrochen. Auch das allgemeine Interesse, zu programmieren, ist leider gesunken.
Was RGH betrifft : der ist hier im Unterforum ziemlich oft lesend zugegen. Der müßte das sogar auswendig können. Es wäre halt mal schön, wenn er mal schreiben würde, wie es denn nun weiter geht oder ob sogar Schluß ist. Die letzte Aussage von ihm war, daß er wenigstens noch weiter Support leisten würde.
-
Was ich noch vorschlagen möchte, falls RGH eine neue Version plant :
Wie wäre es, wieder so eine Subscription zu machen ?
Und zwar diesmal kostenlos nur mit Interpreter. Den XProfed kann man sich ja im anderen Forum kostenlos downloaden, sodaß man da nur den Interpreter nach der Installation rein kopieren müßte. Somit könnten ja auch viel mehr Leute die neuen Funktionen / Befehle ausprobieren und das Interesse würde steigen. Den Interpreter könnte er ja hier als Download anbieten. Rückmeldungen bzw. Vorschläge zu den neuen Funktionalitäten laufen dann hier, wie gehabt, alle zusammen. Das hätte dann auch den Vorteil, daß RGH nicht immer jedem einzelnen den Interpreter mit zunehmend neuer Funktionalität zusenden muß und somit nur den neusesten Stand des Interpreters hier reinzusetzen braucht.
Alles zusammen (Interpreter, Compiler, Runtime) gibt es dann am Ende der Subscription, wie gehabt als kostenpflichtiges Update bzw. kostenpflichtige Vollversion. Und vielleicht später obendrein noch eine 64-Bit Version für die Käufer.
Was auch noch in diesem Zusammenhang interessant wäre :
RGH bzw. der Autor des XProfEd könnte den Editor insofern verändern, daß die Compiler-Funktion bzw. Erstellen der .exe ausgegraut werden, sodaß man nur den Interpreter laufen lassen kann. Könnte man auch selber machen, aber es gibt ja auch Leute, die das (noch nicht) können oder auch nicht am Code rumfummeln möchten. Da könnte RGH auch mal den Interpreter von X4 zusätzlich anbieten.
Auch finde ich das Marketing von XProfan (zu teure Preise für Updates und Vollerversionen) nicht mehr zeitgemäß. Außerdem ist es ja auch kein echter Compiler und es fallen auch noch weitere Kosten für Updates an. Auch darüber sollte sich RGH mal Gedanken machen. Auch die älteren Versionen bis X3 gehören meiner Ansicht nach schon ins Museum bzw. als Freeware.
-
Aber vielleicht kann ja RGH hier noch einmal aktiv werden und der RegEx Option bzw. der Datenstruktur der Verzeichnisliste auf die Sprünge helfen. Wäre ein große Hilfe!!
Bleibt dennoch die Frage, ob es eine Möglichkeit gibt, ein Verzeichnis gleich mittels RegEx auf das Vorhandensein von unterschiedlichen Dateinamen zu durchsuchen. Ohne den gesamten Inhalt zuvor in ein Array oder eine Stringlist einzulesen, und dann zu suchen.
Matthias
Sowas ähnliches hatte ich schon vor Jahren RGH vorgeschlagen. Soll heißen, bei welchen Stringfunktionen man noch RegEx unterstützen könnte. Speziell ging es um die Funktion SubStr$(), wo man demTrennzeichen (S2) einen regulären Ausdruck unterschieben könnte. Das ist vor allem bei .CSV - Dateien interessant, wo das Komma nicht unbedingt als Standard eingehalten wird und stattdessen oft ein Semikolon verwendet wird. Da muß man immer schon vorher wissen, welches Trennzeichen denn nun verwendet wird, um mit SubStr$() zu arbeiten. Besser wäre da ein
Damit könnte man dann direkt besser rausfischen, egal ob jetzt ein Komma oder Semikolon als Trenner vorhanden ist. Bei AddFiles kann ich mir das auch gut vorstellen, wenn man nicht nur mit "*.pdf" alle .pdf sondern spezieller unterscheiden könnte.
Ich denke, da gäbe es bestimmt auch noch mehr Sachen.
-
Hallo Professor Chaos,
Da findet man aber nur diejenigen, die ein Blank hinter den ersten zwei 00 haben.
Was bedeutet das
dazwischen ? s ist doch KEIN Metazeichen.
Probier mal das :
Code
Alles anzeigenDeclare String result[] Cls Set("RegEx", 1) chdir "F:\Files" addFiles "*.*",0 Move("ListToArr", result[]) WhileLoop 0, SizeOf(result[]) - 1 If match$("([0-9]{2} ?[0-9]{2}~.(?i)pdf)", result[&LOOP]) <> "" Print $Match EndIf EndWhile Waitkey
Das Blank und ? da drin prüft halt, ob ein Blank 0 mal oder einmal drin vorkommt. Damit ist abgedeckt, daß auch alle Dateien, die kein Leerzeichen beinhalten, gefunden werden.
Die Dateinamenserweiterung habe ich mal auf Gleichheit der Groß-und Kleinschreibung eingestellt, falls mal ein z.b ".Pdf" auftaucht. Schaden tut es ja nichts.
-
Mit Instr() + RegEx scheint es zu funktionieren. Da ich keine PFs hatte, habe ich mir .txt gemacht und in einen Ordner geschrieben.
CodeMove("ListToArr", result[]) WhileLoop 0, SizeOf(result[]) - 1 If Instr("([0-9{2}~s+[0-9]{2}~.txt)",result[&LOOP]) <> 0 Print $Match EndIf EndWhile
Ist schon manchmal seltsam.
-
Ob nun hart kodiert oder Variable. Das dürfte keinen Unterschied machen.
Zeigt denn Listbox$("",2) die entsprechende Datei an ?
Und gibt IndexOf() den Fund zurück ?
Manchmal muß man halt von Grund auf vorgehen, um dem Problem zu Leibe zu rücken.
-
Da kann man auch schöne Comics machen.
Code
Alles anzeigenDeclare Long hTip1, htip2, st1, st2, bmp1, bmp2, hicon, ende Declare String Title1, Title2 hIcon = 0 Title1 = "Hallo Pluto ! Wie geht es dir ?" Title2 = "Bestens. Danke. Und dir ?" Window 600, 400 bmp1 = Create("hPic", -1, "F:\Micky.png") st1 = Create("Static", %HWnd, 10, 10, %BmpX, %BmpY) StartPaint st1 DrawPic bmp1, 0, 0; 0 EndPaint bmp2 = Create("hPic", -1, "F:\Pluto.png") st2 = Create("Static",, %HWnd, 300, 10, %BmpX, %BmpY) StartPaint st2 DrawPic bmp2, 0, 0; 0 EndPaint hTip1 = Create("Tooltip", %hWnd, st1, " ") hTip2 = Create("Tooltip", %hWnd, st2, " ") SendMessage(hTip1, 1056, hicon, Addr(Title1)) SetStyle hTip1, GetStyle(hTip1) | $40 SendMessage(hTip2, 1056, hicon, Addr(Title2)) SetStyle hTip2, GetStyle(hTip2) | $40 WhileNot ende WaitInput EndWhile End
Bitte Pfad entsprechend ändern und angehängte Bilder laden.
-
Und getestet :
Code
Alles anzeigenDeclare Long hTip1, htip2, htip3, btn1, btn2, btn3, hicon, ende Declare String Title hIcon = Create("hIcon", "GESICHT") Title = "INFO" Window 600, 400 btn1 = Create("Button", &HWnd, "Info 1", 10, 10, 60, 25) btn2 = Create("Button", &HWnd, "Test 1", 100, 10, 60, 25) btn3 = Create("Button", &HWnd, "Ende", 200, 10, 60, 25) hTip1 = Create("Tooltip", %hWnd, btn1, "Info 1") hTip2 = Create("Tooltip", %hWnd, btn2, "Info 2") hTip3 = Create("Tooltip", %hWnd, btn3, "Info 3") SendMessage(hTip1, 1056, hicon, Addr(Title)) SetStyle hTip1, GetStyle(hTip1) | $40 SendMessage(hTip2, 1056, hicon, Addr(Title)) SetStyle hTip2, GetStyle(hTip2) | $40 SendMessage(hTip3, 1056, hicon, Addr(Title)) SetStyle hTip3, GetStyle(hTip3) | $40 WhileNot ende WaitInput If Clicked(btn3) ende = 1 EndIf EndWhile End
Also reicht im Grunde genommen ein API-Befehl und ein SetStyle - Befehl :
Das könnte RGH doch einbauen. Dann gerät es auch nicht so leicht in Vergessenheit.
Das mag ich gerade an den eingebauten Sachen in XProfan. Man kann es in der Hilfe, die man sowieso immer auf hat, schnell mal nachschlagen / schauen und hat es stets 'auf dem Schirm'.