Avatar billede thomas_theis Nybegynder
06. september 2003 - 01:36 Der er 7 kommentarer og
1 løsning

STRINGGRID farver

Jeg har et stringgrid der er alignet til klienten (her formen). Det bliver oprettet med 100x100 celler. Det meste af tiden vil jeg imidlertid kun benytte de første 10x10 celler. Derfor ville jeg gerne kunne farve alle de celler som jeg ikke bruger i en kedelig grå farve for klart at vise at de 'ikke gælder'. Hvordan gør jeg det...?
Avatar billede Slettet bruger
06. september 2003 - 09:25 #1
Prøv det her:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  dx: Integer;
begin
  with (Sender as TStringGrid) do
  begin
    // Don't change color for first Column, first row
    if (ACol = 0) or (ARow = 0) then
      Canvas.Brush.Color := clBtnFace
    else
    begin
      case ACol of
        1: Canvas.Font.Color := clBlack;
        2: Canvas.Font.Color := clBlue;
      end;
      // Draw the Band
      if StringGrid1.Cells[ACol, ARow] = '' then
        Canvas.Brush.Color := $00AAAAAA
      else
        Canvas.Brush.Color := $00FFFFFF;
      Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]);
      Canvas.FrameRect(Rect);
    end;
  end;
end;
Avatar billede x-masman Nybegynder
08. september 2003 - 00:23 #2
ja, vel uden variablen dx. :=)
Avatar billede thomas_theis Nybegynder
08. september 2003 - 00:35 #3
Jammen det virkede jo fint når først man gennemskuer at canvas også virker for stringgrids. Jeg er nu stadig ikke sikker på at jeg forstår linjen Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]), men det gør ikke så meget så længe det virker.

Men nu er jeg allerede stødt ind i næste problem. Jeg vil gerne finde ud af om det er nødvendigt at have scrollbars på mit stringgrid (samme situation som overfor), Jeg har derfor lavet en linje der hedder noget i retning af

if stringgrid1.visiblecolcount>max_cols then
  Stringgrid1.ScrollBars=ssNone

Når jeg forsøger at kompilere denne linje får jeg at vide at ssNone er en undeclared identifier. Det fatter jeg ikke helt - skulle det ikke være en synlig egenskab for grid'et. Den burde være en TScrollStyle som skulle være en del af GRIDS, men det vil altså ikke have med det at gøre... Hvad er det der er galt her...?
Avatar billede Slettet bruger
08. september 2003 - 07:24 #4
Ups.. glemte lige at skrive, hvor jeg havde fået det fra :)

http://www.swissdelphicenter.ch/torry/showcode.php?id=273


Men virker det her:

if StringGrid1.VisibleColCount >= StringGrid1.ColCount then
  Stringgrid1.ScrollBars := ssNone;
Avatar billede Slettet bruger
08. september 2003 - 13:19 #5
Hvorfor tog du egentlig pointene selv??
Avatar billede thomas_theis Nybegynder
08. september 2003 - 13:28 #6
Jeg har fundet ud af hvad der var galt... ssNone kommer fra stdctrl og ikke fra Grids. Så ingen problemer alligevel. Men tak for hjælpen.

Hvorfor tog jeg pointene selv....? Fodi jeg er et fæ og ikke rigtigt har gennemskuet hvordan det fungerer. Det var mit første spørgsmål på dette forum. Nu har jeg forsøgt at finde ud af om jeg kan gøre min brøde god igen, men det kan jeg ikke gennemskue. Hvis du kan fortælle mig hvordan jeg gør det skal jeg straks gøre det.
Avatar billede Slettet bruger
08. september 2003 - 13:37 #7
Havde ik set du var ny :-)... du kan læse hvordan man bruger eksperten på:
http://www.ebruger.dk/faq/

Der står hvordan man kan give point til en bruger her:
http://www.ebruger.dk/faq/#giv_flere_point
Avatar billede thomas_theis Nybegynder
08. september 2003 - 15:34 #8
så skulle den være der... Jeg har lavet et ny indlæg der hedder point til hejhej.
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