22. september 2005 - 11:52
Der er
2 kommentarer og
1 løsning
Editering i StringGrid og farvelægning?
Davs,
Kan det lade sig gøre kun at låse en bestemt række op i et stringgrid? Hvis man f.eks. har et stringgrid på 5 x 5, kan man så låse det op så kun 1,5 og 2,5 og 3,5 og 4,5 og 5,5 er åbne, og ikke de resterende celler? (Åbne = så man kan skrive i dem).
Farve:
Hvordan farvelægge man et specifikt felt med en specifik farve?
:)
22. september 2005 - 15:10
#1
Til at låse en række op, ville jeg bruge en OnSelectCell event:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
if ARow = 2 then
StringGrid1.Options := StringGrid1.Options + [goEditing]
else
StringGrid1.Options := StringGrid1.Options - [goEditing];
end;
Til at farvelægge ville jeg bruge en OnDrawCell Event:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
Tekst : string;
begin
if (ACol = 2) and (ARow = 1) then
StringGrid1.Canvas.Brush.Color := clRed;
StringGrid1.Canvas.FillRect(Rect);
Tekst := StringGrid1.Cells[ACol,ARow];
DrawText(StringGrid1.Canvas.Handle,PChar(Tekst),StrLen(PChar(Tekst)),Rect,DT_CENTER);
end;