Avatar billede dallan2007 Nybegynder
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?

:)
Avatar billede bonzai Nybegynder
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;
Avatar billede dallan2007 Nybegynder
23. september 2005 - 09:26 #2
takker - smid et svar
Avatar billede bonzai Nybegynder
24. september 2005 - 10:35 #3
Hermed et svar ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester