(1) private Variable in KLassen sollten mit einem F beginnen
(2) es sollte so aussehen
Delphi-Quellcode:
type
TPeg = class
private
FCode: integer;
function GetCode: integer;
procedure SetCode(newCode: integer);
public
property Code: integer read GetCode write SetCode;
//oder wenn in GetCode nichts weiter gemacht wird ausser Result := FCode
// geht bei SetCode auch!
property Code: integer read FCode write SetCode;
end;
Zugriff
NeueFigur.Code:=strtoint(StrArr[j])
(3) in TField ebenso
(4) natürlich muss du für jedes Feld eine neue Instanz erzeugen, sonst hättest Du nur eine Klasse und würdest mit jeder Variablenänderung dies in allen TPeg erhalten
(5) ich würde es allerdings so machen:
Delphi-Quellcode:
type
TPeg = class
private
FCode: integer;
public
property Code: integer read FCode write FCode;
procedure Assign (ASource (TPeg);
end;
procedure TPeg.Assgin;
begin
FCode := ASource.FCode;
end;
TField = class(TPanel)
private
FPeg: TPeg;
VPos: integer;
HPos: char;
Image: TImage;
orgColor: TColor;
procedure setPeg(NewPeg: TPeg);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure init();
procedure setPos(h:Char; v: integer);
procedure HighlightField(state:integer);
procedure SetNewPeg (ACode: integer); //alternativ
end;
constructor TField.Create(AOwner: TComponent);
begin
...
FPeg := TPeg.Create;
end;
destructor TField.Destroy; override;
begin
FPeg.Free;
...
end;
procedure TField.SetPeg(NewPeg: TPeg);
begin
FPeg.Assign (NewPeg);
end;
procedure SetNewPegCode (ACode: integer); //alternativ
begin
FPeg.Code := Value;
end;