![]() |
Pascal Script: Delphi Functionen nutzen
Hi, möchte gern die beiden Stringfunktionen StringReplace und PosEx in Pascal Script hinzufügen, aber irgendwie klappt das nicht. Habe folgendes versucht:
Delphi-Quellcode:
Klappt aber nicht, da kommt folgende Exception:
function ExStringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
begin StringReplace(S, OldPattern, NewPattern, Flags); end; procedure TfrmMain.ceCompile(Sender: TPSScript); begin Sender.AddFunction(@ExStringReplace, 'function ExStringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;'); end; raised exception, unable to register function function ExStringReplace... |
Re: Pascal Script: Delphi Functionen nutzen
1.versuch das mal ohne "const" bei deinen Parametern
2. versuch anstatt
Delphi-Quellcode:
mal
x,y,z : string
Delphi-Quellcode:
3. versuch dir Function als public bei TFrmMain zu deklarieren und als ersten Parameter dann Self anzugeben.
x : string;y : string;z : string
|
Re: Pascal Script: Delphi Functionen nutzen
StringReplace hat einen Returnwert:
Delphi-Quellcode:
function ExStringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
begin Result := StringReplace(S, OldPattern, NewPattern, Flags); end; |
Re: Pascal Script: Delphi Functionen nutzen
:wall:
Warum hab ich das nicht gleich gesehen... meines Wissens akzeptiert Pascal Script nur "gewöhnliche" Datentypen (String, Integer, usw.) und nicht sowas wie TReplaceFlags Edit: heisst soviel wie das es nicht geht, da PS den Typ nicht kennt und somit nicht importieren kann. |
Re: Pascal Script: Delphi Functionen nutzen
Du musst vorher mit Sender.AddType TReplaceFlag und TReplaceFlags registrieren ;)
Delphi-Quellcode:
(ungetestet)
Sender.AddType('TReplaceFlag = (rfReplaceAll,rfIgnoreCase);');
Sender.AddType('TReplaceFlags = set of TReplaceFlag'); Eventuell heisst es nicht AddType sonder AddTypeS oder so und eventuell ist die Reihenfolge bei TReplaceFlag falschrum. Aber ansich klappt es. Man muss nur die Typen vorher bekannt machen. |
Re: Pascal Script: Delphi Functionen nutzen
Delphi-Quellcode:
ist korrekt. Danke für die Antworten.
Sender.Comp.AddTypes('TReplaceFlag', '(rfReplaceAll,rfIgnoreCase);');
Sender.Comp.AddTypes('TReplaceFlags', 'set of TReplaceFlag'); |
Re: Pascal Script: Delphi Functionen nutzen
gehts jetzt?
|
Re: Pascal Script: Delphi Functionen nutzen
Jojo geht, das Result hat natürlich auch noch gefehlt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz