Hallo Zusammen,
Ich hätte gerne Eure Unterstützung für ein paar prinzipielle Fragen. Einen ähnlichen Thread hat es schon einmal gegeben (
hier)
Abgesehen davon daß unsere Ansätze sich sehr ähneln, habe ich zwei Fragen bzw. Bitten:
1) Ich habe die "notwendigsten" Methoden zusammen gestellt, um eine Tlist mit Records ählich einer TStringlist zu gebrauchen. Wenn Ihr da einen groben Schnitzer entdecken solltet, dann wäre ich dankbar wenn Ihr mir den mitteilen könntet.
2) Ich würde diese "
Unit" gerne als Vorlage für weitere Units/Klassen nutzen (ergänzt um Sortierung, Suchfunktionen etc.) aber sie sollte so aufgebaut sein, das ich nach Möglichkeit nur die Record-Definition ändere und sie ist dann einsatzbereit.
Hierfür habe ich ehrlich gesagt überhaupt keinen Plan wie ich das am geschicktesten (und effizentesten) umsetzen könnte.
Im Augenblick würde ich
kopieren
die Record-Definition ändern,
und die notwendigen Umbennungen durchführen.
Und dieses Vorgehen ist irgendwie nicht das gelbe vom Ei.
Delphi-Quellcode:
unit OAM_DocInfos;
interface
uses classes;
{für tlist }
type
t_DocInfo =
record
CODDOS:
string[40];
IDE___:
string[20];
CODPAY:
string[2];
DATDEP:
string[10];
NUMDEP:
string[20];
NUMPUB:
string[10];
end;
pDocinfo = ^T_Docinfo;
t_DocInfoListe =
class(tlist)
protected
function Get(
Index: Integer): t_DocInfo;
procedure Put(
Index: Integer; satz: t_DocInfo);
function get4destroy(
index: integer):pointer;
public
destructor Destroy;
override;
procedure ADD(satz:t_DocInfo);
procedure DELETE(
index:integer);
property ITEMS[
index:integer]:t_DocInfo
read Get
write Put;
end;
implementation
destructor t_DocInfoListe.Destroy;
var
i : integer;
begin
for i:=0
to count-1
do
dispose(get4destroy(i));
inherited destroy;
end;
procedure t_DocInfoListe.Delete(
index:integer);
begin
dispose(get4destroy(
index));
inherited delete(
index);
end;
procedure t_DocInfoListe.Add(satz:t_DocInfo);
var
newrec : pDocInfo;
begin
new(newrec);
newrec^:=satz;
inherited add(newrec);
end;
function t_DocInfoListe.get4destroy(
index:integer):pointer;
var
p : pDocInfo;
begin
p:=
inherited get(
index);
result:=p;
end;
function t_DocInfoListe.Get(
index:integer):t_DocInfo;
var
p : pDocInfo;
begin
p:=
inherited get(
index);
result:=p^;
end;
procedure t_DocInfoListe.Put(
index:integer;satz:t_DocInfo);
var
p : pDocInfo;
begin
new(p);
p^:=satz;
inherited put(
index,p);
end;
end.
Könntet Ihr mir da auf die Sprünge helfen.
(Ach Ja: sollte unter Delphi 7 machbar sein)
Gruß
K-H