Hallo, ich bins nochmal,
habe eben versucht, die Arrays in der Komponente private zu machen und über property zuzugreifen
Delphi-Quellcode:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
interface
uses
Windows, SysUtils, Classes, Controls, ExtCtrls, Graphics, EB_Mathe;
type
// TMatrix = array of array of single;
TDiffMat =record
PixHeight : integer;
PixWidth : integer;
PixSize : single;
SizeHeight : single;
SizeWidth : single;
Dat : TMatrix; //array of array of single;
rangeMat : array of array of boolean;
end;
TDiffBild = class(TPaintBox)
private
Pix : integer;
wSize, hSize : single;
cF : integer;
privPlan : TDiffMat;
privFilm : TDiffMat;
privDiff : TDiffMat;
privGlobDiff : TDiffMat;
privLokDiff : TDiffMat;
privGlobGamma: TDiffMat;
privLokGamma : TDiffMat;
privHoch : integer;
privWeit : integer;
function getPlan : TDiffMat;
procedure setPlan(Wert:TDiffMat);
function getFilm : TDiffMat;
procedure setFilm(Wert:TDiffMat);
function getLokDiff : TDiffMat;
procedure setLokDiff(Wert:TDiffMat);
function getGlobDiff : TDiffMat;
procedure setGlobDiff(Wert:TDiffMat);
function getLokGamma : TDiffMat;
procedure setLokGamma(Wert:TDiffMat);
function getGlobGamma : TDiffMat;
procedure setGlobGamma(Wert:TDiffMat);
protected
public
published
property Plan : TDiffMat Read GetPlan Write SetPlan;
property Film : TDiffMat Read GetFilm Write SetFilm;
property globalDiff : TDiffMat Read GetGlobDiff Write SetGlobDiff;
property lokalDiff : TDiffMat Read GetLokDiff Write SetLokDiff;
property globalGamma : TDiffMat Read GetGlobGamma Write SetGlobGamma;
property lokalGamma : TDiffMat Read GetLokGamma Write SetLokGamma;
procedure Initialisieren(PixWeit,PixHoch : integer; SizeWeit, SizeHoch, PixSize:single);
procedure Bild(vx,vy:integer;Schwelle:single);
procedure globDiffBild(Schwelle:single);
end;
procedure Register;
//##############################################################################
implementation
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function TDiffBild.getPlan : TDiffMat;
begin
Result.Dat:=privPlan.Dat;
end;
procedure TDiffBild.setPlan(Wert:TDiffMat);
begin
privPlan.Dat:=Wert.Dat;
end;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function TDiffBild.getFilm : TDiffMat;
begin
Result.Dat:=privFilm.Dat;
end;
procedure TDiffBild.setFilm(Wert:TDiffMat);
begin
privFilm.Dat:=Wert.Dat;
end;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function TDiffBild.getGlobDiff : TDiffMat;
begin
Result.Dat:=privGlobDiff.Dat;
end;
procedure TDiffBild.setGlobDiff(Wert:TDiffMat);
begin
privGlobDiff.Dat:=Wert.Dat;
end;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function TDiffBild.getLokDiff : TDiffMat;
begin
Result.Dat:=PrivLokDiff.Dat;
end;
procedure TDiffBild.setLokDiff(Wert:TDiffMat);
begin
privLokDiff.Dat:=Wert.Dat;
end;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function TDiffBild.getGlobGamma : TDiffMat;
begin
Result.Dat:=privGlobGamma.Dat;
end;
procedure TDiffBild.setGlobGamma(Wert:TDiffMat);
begin
privGlobGamma.Dat:=Wert.Dat;
end;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function TDiffBild.getLokGamma : TDiffMat;
begin
Result.Dat:=privLokGamma.Dat;
end;
procedure TDiffBild.setLokGamma(Wert:TDiffMat);
begin
privLokGamma.Dat:=Wert.Dat;
end;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mit dem Ergebnis, wenn ich ein privates Array schreiben will, kommt der Compilerfehler "Der linken Seite kann nichts zugewiesen werden"
Habe ich mir doch gedacht - was nun sprach der Zauberer
Kann man da noch helfen?
Danke E. B.
nDAU