Ahoj, potřeboval bych poradit snažím se vylepšit tvorbu reportů pomocí předdefinovaných šablon, šabloně potřebuji array nebo Tlist Objektů s property
TCellProperty = class (TObject)
private
fName : string[5];
fValue : variant;
fPosition : TPoint;
fFont : TFont;
// atd...
public
property Name : string[5] read fName write fName;
property Value : variant read fValue write fValue;
end;
TReport = class (TObject)
fCells : array of TCellProperty;
//...
public
property Cells[index : integer] : ????
end;
a nevím to naprogamovat gettery a settery abych k těm property mohl přistupovat stylem Report.Cell[X].Font.Size := Trunc(Report.cell[Y].font.size * 1.5);
Report.Cell[X].point := TPoint(X,Y); atd..
#2gna
tak Getter funguje v pohodě přes result := fCells[index];
Ale toho Setteru si nevím rady, interně nebo když bych to pole Cells dal public, tak napřímo to funguje, přes Setter to nějak nefachá, není náhodou třeba udělat setter pro každou tu vlastnost cellproperty? jako
property cellFont[index : integer] : TCellProperty write SetFont;
Leda snad vytvořit si pomocnou strukturu TCellProperty a pak jí do Cells[index] hodit celou najednou - otázkou jsou změny - znamenalo by to načíst si do pomocný stav udělat úpravy a pak to hodit zpátky.
#4MilanL
možná jsem se v původním dotazu špatně vyjádřil, jde mi o nastavování jednotlivých vlastností CellProperty, jako celek je to v pohodě, koukal jsem na zdroje, kde beru inspiraci a tam to je tedy řešený přes settery pro každou vlastnost CellProperty zvlášť. asi se na Set/Gettery vykašlu dám Cells array do základu třídy a budu přistupovat přímo, jen si musím pak v programu pohlídat indexy.
#5MilanL
Tak už mi to fachá, drobná chybička v Getteru jsem měl chybku v podmínce na kontrolu indexu. Vracelo mi to nesmyslný ukazatel EDIT: respektive ukazatel do prčíc.
Nevěděl jsem že i Setter si v podstatě pro adresu objektu sahá do Getteru.