Verwendung von PascalScript

Rund um die LCL und andere Komponenten
petwey
Beiträge: 83
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Verwendung von PascalScript

Beitrag von petwey »

Hallo Forum,

ACHTUNG: Alle Fragen beziehen sich auf PascalScript. Unter Lazarus ist mir klar was ich machen muss.

Habe das Beispiel unter lazarus/components/PascalScript/Samples/Debug zum Laufen gebracht und erste Tests durchgeführt. Ist recht vielversprechend, aber...
  • Gibt es eine gute Beschreibung was man mit PascalScript alles anstellen kann (if then; Klassen; etc)?
  • Läßt sich der Code aufteilen (Benutzung von uses - zur Not geht auch die Formulierung mit include; siehe testdefine.rops)?
  • Wie lassen sichFormular-Komponenten definieren. Denn immer wenn ich ein Formular erzeugt habe und ein Button oder Label darauf erzeugen will kommt eine Fehlermeldung. Beispiel:
    Program test;
    var
    F: TForm;
    L: TLabel;
    s: string;
    begin
    Writeln('hallo');
    F:= TForm.CreateNew(nil);
    F.Caption := 'Hey';
    L:= TLabel.Create(F); //Ohne diese Zeile wird die Form ordnungsgemäß angezeigt.
    F.Show;
    Readln(s);
    F.Hide;
    end.

    Fehlermeldung: [Error] ... (11:24): Type mismatch
  • Falls sich die Sache mit dem Formular-Komponenten realisieren läßt - kann man den Komponenten bespielsweise Ereignisse zuordnen z.B. auf ein OnClick reagieren?

Vielen Dank schon mal im voraus.

Lazarus: 1.4.4
FPC: 2.6.4
Linux: x86_64-linux-gtk 2
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: Verwendung von PascalScript

Beitrag von Dragon »

Gibt es eine gute Beschreibung was man mit PascalScript alles anstellen kann (if then; Klassen; etc)?

http://www.remobjects.com/ps.aspx

Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

Re: Verwendung von PascalScript

Beitrag von Epcop »

Kann das sein das du bei deinem Code was vermischt? writeln/readln und Form?

petwey
Beiträge: 83
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Verwendung von PascalScript

Beitrag von petwey »

Hallo Dragon, hallo Epcop,

Danke für Eure Antwort.

@Dragon: Dieser Link
http://www.remobjects.com/ps.aspx
ist mir bekannt. Ich dachte hier an eine mehr ausführliche Beschreibung der Fähigkeiten, sonst muss man sie aus dem Code rauslesen.

@Epcop: Ich habe in dem Code nichts vermischt. Readln und writeln sind innerhalb der erwähnten Beispielanwendung definiert worden. Mit writeln wird ein Text in einem Fenster ausgegeben und Readln liest einen Text aus einem Dialogfeld ein. Die writeln-Zeile könnte entfallen, damit hab ich nur diese Funktion getestet und Readln ist nur drin um die erzeugte Form offenzuhalten sonst wird sie direkt nach dem anzeigen wieder verborgen. Wie gesagt - der Script-Code funktioniert nur wegen
L:= TLabel.Create(F);
nicht.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Verwendung von PascalScript

Beitrag von Christian »

Ich benutzer Pascal Script aktuell recht viel, schau mal in der Promet Doku:
http://www.free-erp.de/wiki/Admin-Book/ ... ls/scripts

Alles was dirt beschrieben ist wird mit PascalScript gemacht
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Dragon
Beiträge: 162
Registriert: Mi 31. Jul 2013, 15:07
OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80

Re: Verwendung von PascalScript

Beitrag von Dragon »

Wie schnell ist PS eig im vergleich mit anderen scriptsprachen. Und gibs nen weg die scripte zu profilen.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Verwendung von PascalScript

Beitrag von Christian »

Für die meissten Anwendungszwecke spielt das keine Rolle.
Im Vergleich z.b. mit Python oder Perl relativ langsam, da es nicht auf Geschwindigkeit optimiert ist.
Profiulen kannst du wie immer mit Zeitmessung. Eine fertige Umgebung gibts dazu meines Wissens nicht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

petwey
Beiträge: 83
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Verwendung von PascalScript

Beitrag von petwey »

Hallo Forum,
@Christian:
Christian hat geschrieben:Ich benutzer Pascal Script aktuell recht viel, schau mal in der Promet Doku:
http://www.free-erp.de/wiki/Admin-Book/ ... ls/scripts

Alles was dirt beschrieben ist wird mit PascalScript gemacht

Das sieht gut aus Danke.

Aber nochmal zurück zu dem Problem mit den Formular-Komponenten. Wie ich mittlerweile festgestellt habe müssen die Typ-Konventionen genau beachtet werden. Der folgende PascalScript-Code wird erfolgreich kompiliert.
    Program test;

    Var
    F: TForm;
    L: TLabel;
    i,j: integer;
    begin
    F := TForm.CreateNew(nil);
    L := TLabel.Create(TComponent(F));
    L.Parent := TWinControl(F);
    F.Show;
    for i:= 0 to 1000 do
    begin
    for j:= 0 to 1000 do
    begin
    end;
    writeln(IntToStr(i));
    end;
    F.Hide;
    end.
Aber bei der Ausführung komme ich auf eine Access Violation die ihre Ursache in der /usr/lib64/lazarus/lcl/include/customlabel.inc hat.
    ....
    constructor TCustomLabel.Create(TheOwner: TComponent);
    begin
    inherited Create(TheOwner);
    ControlStyle := [csCaptureMouse, csSetCaption, csClickEvents, csDoubleClicks, csReplicatable];
    with GetControlClassDefaultSize do
    SetInitialBounds(0, 0, CX, CY);
    FShowAccelChar := True;
    FInternalSetBounds := False;
    Color := clNone;
    AutoSize := True;
    // Accessibility
    AccessibleRole := larLabel;
    end;
    ....
Der Fehler soll dort bei end; des Constructors sein. Wenn ich einen Haltepunkt auf das inherited lege bringt mich das auch nicht weiter. Im Fehlerfall wird immer end; als Ursache angegeben, aber der Haltepunkt ist nicht wirksam.

Hat jemand eine Idee woran das liegen kann??
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

petwey
Beiträge: 83
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Verwendung von PascalScript

Beitrag von petwey »

Hallo Forum,.

ich habe gerade auf Lazarus 1.6.0 und FPC 3.0.0 upgedatet und zwar unter Linux x64 und WinXP 32-Bit und dort nochmals Pascal-Script getestet.

Unter Linux-x64 kommt eine Exception "External: SIGSEV" in include/customform.inc Zeile 1998 (erste Zeile des Constructors TCustomForm.CreateNew)
Unter WinXP 32-Bit ähnliches Verhalten.

Verwendeter Script:
    Program test;

    Var
    F: TForm;
    s: string;
    begin
    F := TForm.CreateNew(TComponent(self));
    // L := TLabel.Create(TComponent(F));
    // L.Parent := TWinControl(F);
    // F.Show;
    readln(s);
    // F.Hide;
    end.

Dampf ablassen hat leider keinen Sinn. Aber ich hab bewußt Lazarus wegen Cross-Plattformfähigkeit und auch wegen Pascal-Script gewählt. Pascal-Script sollte eigentlich die gewünschten Fähigkeiten besitzen, aber es kommen immer wieder andere Fehler, bei gleichem Script-Code. Was ist da los?? Gibt es vernüftige Alternativen? Ich glaub langsam aufs falsche Pferd gesetzt zu haben.

Bitte um Hilfe. Es kann doch nicht sein das ich der einzige bin der hier Probleme hat. (iformtest.rops zeigt die gewünschte Performance und liegt als Beispiel für PascalScript bei, aber ich glaub langsam nicht, das das jemals gelaufen ist)
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Verwendung von PascalScript

Beitrag von mschnell »

Logischerweise muss die API zwischen dem Script und dem Haupt-Programm für 64 Bit angepasst werden. Das hat möglicherweise noch niemand gemacht.

petwey hat geschrieben:Es kann doch nicht sein das ich der einzige bin der hier Probleme hat.

Ich glaube nicht, dass PascalScript sehr häufig benutzt wird. Es ist ja nur sinnvoll, wenn man dem End-User die Möglichkeit geben will Pascal Code einzutippen. Das ist echt was für Spezialisten. Ein Bekannter von Mir hat es vor einiger Zeit aber tatsächlich mal verwendet.

Soweit ich weiß, gibt es auch mehrere alternative Implementationen von Pascal als Script-Sprache. Ich habe da aber wenig bis keine Erfahrung :(

-Michael

petwey
Beiträge: 83
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Verwendung von PascalScript

Beitrag von petwey »

Hallo Forum,

Ich geb hier nicht so schnell auf und hab was neues herausgefunden. Da die Erzeugung von Formularen nicht wie beschreiben geklappt hat und ich nicht so tief in den Source-Code von Pascalscript einsteigen kann und will, hab ich mir ein kleines Workaround ausgedacht.

Ich hab den Source-Code des ide-editors (Lazarus-Code) um zwei Funktionen erweitert und dem PascalScript-Compiler bekanntgegeben.
    function Teditor.CreateForm : TForm;
    begin
    result := TForm.CreateNew(nil);
    end;

    procedure TEditor.SetOnClick(ACtrl : TControl; ANotifyEvent: TNotifyEvent);
    begin
    ACtrl.OnClick:=ANotifyEvent;
    end;

    procedure Teditor.ceCompile(Sender: TPSScript);
    begin
    Sender.AddMethod(Self, @TEditor.Writeln, 'procedure writeln(s: string)');
    Sender.AddMethod(Self, @TEditor.Readln, 'procedure readln(var s: string)');
    Sender.AddRegisteredVariable('Self', 'TForm');
    Sender.AddRegisteredVariable('Application', 'TApplication');
    Sender.AddFunction(@TEditor.CreateForm, 'function CreateForm : TForm');
    Sender.AddMethod(Self, @TEditor.SetOnClick, 'procedure SetOnClick(ACtrl : TControl; ANotifyEvent: TNotifyEvent)');
    end;

Völlig einfacher Code: CreateForm erzeugt ein neues Formular. -> Wie oben beschrieben ist der Script-Code bei der Ausführung von CreatNew ausgestiegen. Und SetOnClick, das den OnClick-Event einer Komponente setzen soll.
Der zugehörige Script-Code sieht wie folgt aus:
    Program test;

    Var
    F: TForm;
    L: TLabel;
    B: TButton;
    s: string;
    Vis: boolean;

    procedure c2(sender: TObject);
    begin
    F.Close;
    Vis:= False;
    end;

    begin
    F := CreateForm;
    L := TLabel.Create(TComponent(F));
    L.Parent := TWinControl(F);
    L.Caption := 'Hey';
    L.Left:= 10;
    L.Top:= 10;
    B := TButton.Create(TComponent(F));
    B.Parent := TWinControl(F);
    B.Caption := 'Push Me';
    B.Top:= 40;
    B.Left := 10;
    SetOnClick(TControl(B), @c2);
    // B.OnClick := @c2;
    // F.OnClick:= @c2;
    Vis:= True;
    F.Show;
    while Vis do
    begin
    Application.HandleMessage;
    end;
    readln(s);
    end.
Dieser Code läuft sauber ab, allerdings wird das OnClick-Ereignis noch nicht abgearbeitet und die Abarbeitung bleibt in der While-Schleife. Ich denke das ist kein unlösbares Problem. Vielleicht muss ich ein CreateButton basteln das auch das OnClick-Event mit einklinkt.

Vielleicht helfen meine Hinweise den für PascalScript verantwortlichen Leuten den Fehler schneller zu beseitigen.
Mein Ziel ist es einfach einem Drittanwender eine Möglichkeit zu geben kleine Eingaben selbst zu erzeugen.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Verwendung von PascalScript

Beitrag von mschnell »

petwey hat geschrieben:Ich geb hier nicht so schnell auf
Super !

petwey hat geschrieben:Dieser Code läuft sauber ab, allerdings wird das OnClick-Ereignis noch nicht abgearbeitet und die Abarbeitung bleibt in der While-Schleife.


Soweit ich weiß, Funktionieren Callback-Ereignisse in Pascal-script zumindest prinzipiell. (Wie gesagt: keine eigenen Erfahrungen.)
Versuch doch erstmal unabhängig von der GUI Programmierung einen Callback in das Script zu machen.

-Michael

petwey
Beiträge: 83
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Verwendung von PascalScript

Beitrag von petwey »

Hallo Forum,

ich möchte meine Erfahrungen mit PascalScript nochmal zusammenfassen.
So vollmundig wie RemObject die Eigenschaften von PascalScript beschreibt ist es unter Lazarus bei weitem nicht! Meiner Meinung nach sollten hier einige Komponenten aus der Palette entfernt werden, da sie falsche Hoffnung machen!

Aber jetzt zum praktischen:
Es ist mir gelungen durch erweitern des ide_editor aus PascalScript heraus ein Formular zu erzeugen und ihm einen Label und einen Button hinzuzufügen. Der OnClick des Buttons ließ sich nicht wie in den Beispielen beschrieben verwenden. Doch OnClick konnte innerhalb von ide_editor (also im Lazarus-Code) abgefangen werden und beschreibt nun die Variable ClickSender mit dem Namen der auslösenden Komponente. Da sich der Script ohnehin in einer Warteschleife befinden muss (sonst könnte man das Formular ja nicht verwenden und dort generierte Daten ans Script zurückgeben), habe ich diese Schleife genutzt um die Variable Clicksender aus dem ide_editor abzufragen. Dazu wollte ich ursprünglich wie bei RemObject in den articles beschrieben eine Klasse benutzten, aber auch das hat nicht funktioniert, da der Typ der Klasse bei der internen Typ-Prüfung von Pascalscript nicht gefunden wurde (Ich habe die Klasse wie beschrieben in OnCompile und OnExecute eingebaut; die Klasse war fast eine 1:1-Kopie von MyClass aus dem Beispiel). Also habe ich zwei weitere Prozeduren angelegt, von denen die eine ähnlich Readln den Wert von ClickSender ausliest und die andere ClickSender zurücksetzt auf einen leeren String.
Der Code sieht wie folgt aus (lassen sich hier in Forenbeiträgen eigentlich auch schön formatierte Quellcodes einfügen?):

Lazarus-Code (Erweiterung von ide_editor):

Code: Alles auswählen

function Teditor.CreateForm : TForm;
begin
  result := TForm.CreateNew(self);
end;
 
procedure TEditor.SetOnClick(ACtrl : TControl);
begin
  ACtrl.OnClick:=@ClickEvent;
end;
 
procedure Teditor.ClickEvent(Sender: TObject);
begin
//  ShowMessage('Gedrückt: '+TComponent(Sender).Name);
  ClickSender:=TComponent(Sender).Name;
end;
 
procedure Teditor.GetClickSender(var s : string);
begin
  s := ClickSender;
end;
 
procedure Teditor.ResetClickSender;
begin
  ClickSender := '';
end;
 
procedure Teditor.ceCompile(Sender: TPSScript);
begin
  Sender.AddMethod(Self, @TEditor.Writeln, 'procedure writeln(s: string)');
  Sender.AddMethod(Self, @TEditor.Readln, 'procedure readln(var s: string)');
  Sender.AddRegisteredVariable('Self', 'TForm');
  Sender.AddRegisteredVariable('Application', 'TApplication');
  Sender.AddFunction(@TEditor.CreateForm, 'function CreateForm : TForm');
  Sender.AddMethod(Self, @TEditor.SetOnClick, 'procedure SetOnClick(ACtrl : TControl)');
  Sender.AddMethod(Self, @TEditor.GetClickSender, 'procedure GetClickSender(var s: string)');
  Sender.AddMethod(Self, @TEditor.ResetClickSender, 'procedure ResetClickSender');
end;
 

Script-Code:

Code: Alles auswählen

Program test;
 
Var
 F: TForm;
 L: TLabel;
 B: TButton;
 s: string;
 Vis: boolean;
 
procedure CloseF;   // Schließt das Formular wieder.
begin
  F.Close;
  Vis:= False;
end;
 
begin
  F := CreateForm;   // Erzeugen des Formulars
  L := TLabel.Create(TComponent(F))// Erzeugen eines Labels
  L.Parent := TWinControl(F);
  L.Caption := 'Hey';
  L.Left:= 10;
  L.Top:= 10;
  B := TButton.Create(TComponent(F))// Erzeugen einse Buttons
  B.Parent := TWinControl(F);
  B.Name := 'ButMe';           // Der Name ist für das Abfangen des "Click"-Events wichtig.
  B.Caption := 'Push Me';
  B.Top:= 40;
  B.Left := 10;
  SetOnClick(TControl(B))// Einrichten des "Click"-Events für den Button
  Vis:= True;   // Flag für die Sichtbarkeit des Formulars
  F.Show;
  while Vis do // Programm-Schleife solange Vis gesetzt ist.
    begin
      GetClickSender(s)// Namen eines möglichen Click-Senders ermitteln.
      if s <> '' then
      begin
        case s of
        'ButMe': CloseF;  // Wenn der Click-Sender "ButMe" ist Formular schließen
        end;
        ResetClickSender; // Zurücksetzen des ClickSenders
      end;
      Application.HandleMessage// Abarbeiten anderer Events
    end;
end.     


@Christian
Du hast gesagt, das du PascalScript recht häufig benutzt. Hast du auch Klassen aus Lazarus-Code innerhalb von Pascal-Script freigegeben und wenn ja wie?

Noch eine Anmerkung. Ich hab mir aus lauter Verzweiflung pascalscript2 angesehen, wenn es nicht schon vier Jahre keine Neuerungen mehr gegeben hätte, scheinbar besonders für Windows gemacht wurde und noch keine Arrays kann, wäre es eine schöne Alternative gewesen und die beigefügte Doku ist allererste Sahne. Schade.
Zuletzt geändert von Lori am Di 29. Mär 2016, 16:17, insgesamt 1-mal geändert.
Grund: Highlighter
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Verwendung von PascalScript

Beitrag von Christian »

Ich muss gesehn ich hab n paar Tage nicht geschaut, und hab das Topic auch nur überflogen.
Du dürftest massiv darüber stolpern das PascalScript derzeit unter 64bit keine Pointer übergeben kann. Damit sind sämtliche deiner Ereignisse nicht funktional.
Ich selbst benutz PascalScript recht intensiv aber unter win32 (wie warscheinlich auch die meissten anderen Anwender) und ohne Visuelle Komponenten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

petwey
Beiträge: 83
Registriert: Sa 24. Nov 2012, 19:00
OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit und 64Bit

Re: Verwendung von PascalScript

Beitrag von petwey »

Hallo Forum,

@Christian: Danke für deine Info. Und sind nicht die meisten von uns ein bißchen berufstätig und damit eine verspätete Antwort entschuldigt :)

Aber deine Aussage wegen der Pointer konnte ich noch nicht so richtig glauben (inzwischen muss ich Dir zustimmen), denn wie gesagt der Script- und Lazarus-Code in meinem letzten Beitrag ist voll funktionsfähig und dort gibt es die Funktion CreateForm mit dem Rückgabe-Wert TForm. Vielleicht irre ich mich da, aber meines Wissens sind Instanzen von Klassen doch auch Zeiger, und genau diese Funktion hat mir geholfen Formulare zu erstellen. Aber alles Nachforschen wie TFORM in Pascalscript verfügbar gemacht wird hat nicht geholfen um eigene Klassen zu definieren und auf deren Elemente im Script zuzugreifen. An der Stelle muss ich aufgeben.

Geholfen hat es trotzdem, denn ich weiß jetzt wo die Grenzen von PascalScript liegen und was ich tun muss um trotzdem das zu realisieren was ich tun möchte.

Mein Ziel ist es Messungen zu automatisieren, wobei das ganze System möglichst offen bleiben soll. Zentraler Punkt ist dabei die Script-Engine, die um Funktionen erweitert wird die es mir erlauben mit anderen Programm-Modulen zu kommunizieren und auf bestimmte Ereignisse zu warten, beispielsweise bis eine Position erreicht ist oder Messbereitschaft signalisiert wird. Die Module selbst sind weitestgehend autark, allerdings kennen sie keine "Hochbefehle", dazu ist die Script-Engine zuständig. Die Kommunikation zwischen Script-Engine und Modulen erfolgt über TCP/IP und dort habe ich eine Protokoll auf ASCII-Basis festgelegt. Das schöne an der Sache ist, das mit Kenntnis des Protokolls Programm-Module auf anderen Rechnern (z.B. Raspi ---> kein Ärger mehr mit der IT, die unbedingt Updates einspielen muss) und in vollkommen anderen Programmiersprachen laufen können.

Ich bin abgeschweift, aber ich bin froh dass alles was ich mit Pascalscript erreichen möchte, erreichbar ist. :D

An der Stelle möchte ich mich nochmal bei EUCH allen bedanken. Die Diskussion allein schon bringt mich auf neue Ideen. Es wäre allerdings schön wenn die Verantwortlichen für Pascalscript aufgrund der hier gemachten Erfahrungen die Komponenten überarbeiten könnten, so dass die ursprünglich beschriebene Performance irgendwann auch wieder und auf allen Plattformen funktioniert.
MfG,
petwey

Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)

Antworten