Avatar billede x-masman Nybegynder
12. august 2003 - 13:03 Der er 12 kommentarer og
1 løsning

Farvede celler i TStringGrid

Hej

Er det ikke muligt at ændre baggrundsfarven i enkelte celler i en TStringGrid?

Er det ikke muligt at ændre baggrundsfarven for enkelte linier i en TListbox?

Hvis ikke findes der så en component, hvor dette kan lade sig gøre?
Avatar billede snowball Novice
12. august 2003 - 13:07 #1
Avatar billede x-masman Nybegynder
12. august 2003 - 16:50 #2
Ok. Jeg er lidt ny til det her så: Hvordan får jeg disse to flettet ind i min String grid og list box?

Farven skal kunne ændres dynamisk således at hvis der er en streng i [1,3] skal denne være grøn. Hvis strengen så flyttes til [2,5] skal denne celle være grøn og ikke [1,3].
Avatar billede x-masman Nybegynder
12. august 2003 - 18:15 #3
Er du der?
Avatar billede snowball Novice
12. august 2003 - 18:23 #4
Prøver lige at lave et eksempel til dig.

Snowball
Avatar billede snowball Novice
12. august 2003 - 19:04 #5
Prøv og kig lidt på http://home1.inet.tele.dk/j-cgeert/386530.zip

Snowball
Avatar billede x-masman Nybegynder
02. september 2003 - 20:20 #6
Undskyld den lange vente tid, men jeg har været på ferie.

Ok Jeg kan godt se dit eksempel. Men jeg forstår det stadig ikke. :( Endvidere arbejder jeg i Delphi 4 og kan ikke bruge Variants.

TStringGrid
Det første jeg ikke forstår er parametrerne til funktionen. Sender er min TstringGrid, Acol og Arow er den celle der skal farves(ikke?), men hvad er Rect og staten?

Jeg har denne funktion:
function TOpgaveMainForm.TegnOpgave(ansTid : integer; tid : String;
                                  Ansat : String; output : string) : integer;
var r,k,i : integer;
begin
  r := PlacOpgR(ansat,tid);
  k := PlacOpgK(ansat,tid);
  for i:=1 to (ansTid*2) do
  begin
    TidGrid.Cells[k,r] := output;
    inc(r);
  end;
end;

Kan man ikke ved hver celle bruge canvas til at farve baggrunden i cellen. Eller hvordan får jeg præcis denne celle farvet?
Avatar billede snowball Novice
03. september 2003 - 10:04 #7
x-masman: Du kan bare fjerne Variants under Uses. Det skulle gerne virke alligevel.

Rect er det "areal" som der skal tegnes. State er jeg ikke helt sikker på, men det er vist noget med om cellen er selected eller noget i den stil.

Snowball
Avatar billede x-masman Nybegynder
03. september 2003 - 11:53 #8
men hvordan kalder jeg så funktionen fra tegnopgave?
Avatar billede snowball Novice
03. september 2003 - 11:57 #9
Det er ikke noget du selv skal gøre. Funktionen bliver automatisk kaldt hver gang du ændrer indholdet af en celle i dit stringgrid.

Snowball
Avatar billede x-masman Nybegynder
03. september 2003 - 12:04 #10
ok. Men så forstår jeg det stadig ikke. :) sorry, jeg er ikke helt inde i hvordan componenter benyttes i delphi. Burde det virke hvis jeg bare indsatte din funktion i mit program? (med ændrede navne selvfølgelig). Altså kalder min TStringGrid selv funktionen?
Avatar billede snowball Novice
03. september 2003 - 12:16 #11
Hvis du på dit stringgrid opretter en OnDrawCell procedure, så kan du bare indsætte det kode jeg bruger i mit eksempel. Så burde det virke.

Snowball
Avatar billede x-masman Nybegynder
03. september 2003 - 12:22 #12
Ok. Så forstår jeg det. Skide godt. Jeg prøver det lige når jeg kommer hjem.
Avatar billede x-masman Nybegynder
04. september 2003 - 11:56 #13
Så. Nu virkede det sgu!!!!! Du er lidt sej til delphi:) tak for hjælpen!
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