22. september 2005 - 11:52Der 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?
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;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.