Hallo Freunde/Innen,
ich habe ein kleines Luxusproblem. Ich will zu den String.Helpern gerne die Funktion RPos hinzu fügen. Ich habe mir Folgendes gedacht:
Delphi-Quellcode:
unit RPos_2_h;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TMyString=
record
private
s:
string;
public
function RPos(
const SubStr:
string): Integer;
property STRI:
string read s
write s;
end;
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TMyString.RPos(
const SubStr:
string): Integer;
var
po: Integer;
begin
Result:=-1;
po:=s.IndexOf(SubStr,0);
while po >= 0
do begin
Result:=po;
po:=s.IndexOf(SubStr,po+(Length(SubStr)));
end;
Inc(Result);
//falls nicht gefunden 0!
end;
Das klappt auch, nur hat TMyStzring nicht die anderen Helper-Eigenschaften vom Original-String (z.B. ToInteger u.a.m.) Records lassen sich ja nicht ableiten - war hier im Forum schon mal Thema. Gibt es trotzdem eine Möglichkeit?
Gruß Willie.