unit Stringverwaltung;
interface
uses
SysUtils, Classes, Dialogs;
type
TStringVarverwaltung =
class(TComponent)
private
{ Private-Deklarationen }
cFehler:Boolean;
type TVariable =
record
Name:
String;
Programm:
String;
Inhalt:
String;
Free:Boolean;
end;
var Variablen:
array [1..9999999]
of TVariable;
function GetFree():integer;
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
constructor Create (AOwner : TComponent) ;
override ;
published
{ Published-Deklarationen }
property Fehlermeldungen : Boolean
read CFehler
write CFehler;
public Procedure NewVar(
Name,Programm,Inhalt:
String);
public Procedure DelVar(
Name,Programm:
String);
public Procedure DelVarbyProg(Programm:
String);
public Function GetInhalt(
Name,Programm:
String):
String;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
BlueRain', [TStringVarverwaltung]);
end;
constructor TStringVarverwaltung.Create(AOwner : TComponent);
var i:integer;
begin
for i := 1
to 9999999
do begin
Variablen[i].Free:=True;
end;
end;
Function TStringVarverwaltung.GetInhalt(
Name,Programm:
String):
String;
var i:integer;
begin
for i := 1
to 9999999
do begin
if (Variablen[i].Name=Name)
and (Variablen[i].Programm=Programm)
then begin
Result:=Variablen[i].Inhalt;
end;
end;
end;
function TStringVarverwaltung.GetFree():integer;
var i, ergebnis:integer;
begin
Ergebnis:=-1;
for I := 1
to 9999999
do begin
if Variablen[i].Free=true
then begin
ergebnis:=i;
break;
end;
end;
if ergebnis=-1
then begin
if cFehler=true
then Messagedlg('
Speicherüberlauf bei 9999999+1 -TStringVarVerwaltung-',mterror,[mbok],0);
end;
Result:=Ergebnis;
end;
Procedure TStringVarVerwaltung.DelVarbyProg(Programm:
String);
var i:integer;
begin
for i := 1
to 9999999
do begin
if Variablen[i].Programm=Programm
then begin
Variablen[i].
Name:='
';
Variablen[i].Programm:='
';
Variablen[i].Inhalt:='
';
Variablen[i].Free:=true;
end;
end;
end;
Procedure TStringVarVerwaltung.DelVar(
Name,Programm:
String);
var i:integer;
begin
for i := 1
to 9999999
do begin
if (Variablen[i].Name=Name)
and (Variablen[i].Programm=Programm)
then begin
Variablen[i].
Name:='
';
Variablen[i].Programm:='
';
Variablen[i].Inhalt:='
';
Variablen[i].Free:=true;
end;
end;
end;
Procedure TStringVarverwaltung.NewVar(
Name,Programm,Inhalt:
String);
var index:integer;
begin
index:=Getfree();
Variablen[
index].
Name:=Name;
Variablen[
index].Programm:=Programm;
Variablen[
index].Inhalt:=Inhalt;
Variablen[
index].Free:=False;
end;
end.