Checkbox i Stringgrid

Tags:    delphi

Hejsa,
Jeg vil gerne have placeret en checkbox i en kolonne i et stringgrid. Jeg placerer checkboxene med følgende kode:


for j:= 0 to stringgrid.RowCount-1 do
begin
checkbox:= TCheckBox.Create(self);
rect:= stringgrid.CellRect(0,j);
checkbox.BoundsRect:= rect;
checkbox.Parent:= stringgrid;
checkbox.Caption:= stringgrid.Cells[0, j];
checkboxDoubleArray[i, j]:= checkbox;
end;

... men desværre bliver de ikke opdateret, når jeg scroller op og ned i stringgrid'et.
Jeg arbejder med en "OnCellDraw"-metode, men kan ikke få den rigtig...
Er der nogen, der kan hjælpe mig med en opdater-metode, således at checkboxene er synlige, når jeg scroller? Metoden skal naturligvis være sådan at der ikke er "flimmer" i stringgrid'et, når man kører den.



1 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
OK, jeg er selv kommet tæt på et brugbart svar ved at bruge
OnTopLeftChanged Event'en fra stringgrid'et.
Kommer andre i samme situation kan nedenstående måske hjælpe frem mod en løsning... koden er blot taget fra mit eget program, så ikke alt er relevant. Overordnet søger jeg for at checkbox'ne bliver "genmalede" hver gang der bliver scrollet...


procedure TForm1.OnStringgridTopLeftChanged(Sender: TObject);
var
R:TRect;
stringgrid:TStringgrid;
i, j:integer;
checkbox:TCheckBox;
begin
with Sender as TStringGrid do
begin
stringgrid:= TStringGrid (Sender);
for i:= 0 to length(checkboxDoubleArray) -1 do
begin
if 'StringGrid'+inttostr(i) = stringgrid.Name then
begin
for j:= 0 to stringgrid.RowCount-1 do
begin
R:= stringgrid.CellRect(0, j);
checkbox:= CheckboxdoubleArray[i, j];
checkbox.BoundsRect:= R;
checkbox.BringToFront;
end;

end;
end;
end;
end;




t