/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Sammenligne celler og ændre baggrundsfarve~
Fra : Kurt


Dato : 03-06-05 08:24

Jeg har en StringGrid, hvor jeg ønsker at sammenligne indholdet mellem nogle
celler og hvis de ikke er ens ønsker jeg at ændre baggrundsfarven i den
celle, der er forskellig fra referencecellen.
Der har jeg problemer med:
1. at sammenligne indholdet
2. at skifte baggrundsfarven.

Er der nogen, der har prøvet det.

/Kurt



 
 
Nico de Jong (03-06-2005)
Kommentar
Fra : Nico de Jong


Dato : 03-06-05 09:00

"Kurt" <kurt_g@guldbaek.net> skrev i en meddelelse
news:42a0057b$0$228$edfadb0f@dread11.news.tele.dk...
> Jeg har en StringGrid, hvor jeg ønsker at sammenligne indholdet mellem
nogle
> celler og hvis de ikke er ens ønsker jeg at ændre baggrundsfarven i den
> celle, der er forskellig fra referencecellen.
> Der har jeg problemer med:
> 1. at sammenligne indholdet
> 2. at skifte baggrundsfarven.
>
Jeg har siddet og rodet med baggrundsfarveproblemet, indtil nu uden
resultat. Det eneste tip jeg har fået, var at man skulle kigge på Canvas

Nico




Kurt (03-06-2005)
Kommentar
Fra : Kurt


Dato : 03-06-05 10:18

"Nico de Jong" <first_name@FARUMDATA.DK> wrote in message
news:23Une.27$zn.19@news.get2net.dk...
> "Kurt" <kurt_g@guldbaek.net> skrev i en meddelelse
> news:42a0057b$0$228$edfadb0f@dread11.news.tele.dk...
> > Jeg har en StringGrid, hvor jeg ønsker at sammenligne indholdet mellem
> nogle
> > celler og hvis de ikke er ens ønsker jeg at ændre baggrundsfarven i den
> > celle, der er forskellig fra referencecellen.
> > Der har jeg problemer med:
> > 1. at sammenligne indholdet
> > 2. at skifte baggrundsfarven.
> >
> Jeg har siddet og rodet med baggrundsfarveproblemet, indtil nu uden
> resultat. Det eneste tip jeg har fået, var at man skulle kigge på Canvas
>
> Nico
jeg kunne også bruge andet, blot man kan få mærket de felter, der ikke er
end op!
Har du prøvet at lave fed skrift?

Jeg har en bog (Delphi4 fra Systime), hvor man laver et eksempel med
forskellige fonte i forskellige størrelser. Der bruger man Canvas, men det
har jeg ikke kunnet gennemskue.

/Kurt



Lars HT (03-06-2005)
Kommentar
Fra : Lars HT


Dato : 03-06-05 11:00


"Kurt" <kurt_g@guldbaek.net> wrote in message
news:42a02055$0$202$edfadb0f@dread11.news.tele.dk...
> "Nico de Jong" <first_name@FARUMDATA.DK> wrote in message
> news:23Une.27$zn.19@news.get2net.dk...
>> "Kurt" <kurt_g@guldbaek.net> skrev i en meddelelse
>> news:42a0057b$0$228$edfadb0f@dread11.news.tele.dk...
>> > Jeg har en StringGrid, hvor jeg ønsker at sammenligne indholdet mellem
>> nogle
>> > celler og hvis de ikke er ens ønsker jeg at ændre baggrundsfarven i den
>> > celle, der er forskellig fra referencecellen.
>> > Der har jeg problemer med:
>> > 1. at sammenligne indholdet
>> > 2. at skifte baggrundsfarven.
>> >
>> Jeg har siddet og rodet med baggrundsfarveproblemet, indtil nu uden
>> resultat. Det eneste tip jeg har fået, var at man skulle kigge på Canvas
>>
>> Nico
> jeg kunne også bruge andet, blot man kan få mærket de felter, der ikke er
> end op!
> Har du prøvet at lave fed skrift?
>
> Jeg har en bog (Delphi4 fra Systime), hvor man laver et eksempel med
> forskellige fonte i forskellige størrelser. Der bruger man Canvas, men det
> har jeg ikke kunnet gennemskue.
>

Jeg mener ikke, at man kan farve de enkelte celler med individuelle farver,
men prøv at søge på "colorstringgrid delphi component" på Google. Der findes
helt sikker nogle gratis-komponenter derude!

Lars



Lars HT (03-06-2005)
Kommentar
Fra : Lars HT


Dato : 03-06-05 11:22


"Lars HT" <FJERNaslaktoke@yahoo.NREJFdk> wrote in message
news:d7p9gu$9of$1@news.net.uni-c.dk...
>
> Jeg mener ikke, at man kan farve de enkelte celler med individuelle
> farver, men prøv at søge på "colorstringgrid delphi component" på Google.
> Der findes helt sikker nogle gratis-komponenter derude!
>

Fandt lige dette her:

Question/Problem/Abstract:

The standard Delphi-StringGrid can only hold one color for all cells.
How to create an multiple colored Stringgrid ?
Answer:


I's easier than you assumed. You must simply override the DrawCell and
manuelly draw some data on the canvas of the Stringgrid-Cell .

feel free to copy and reuse this sweet tiny component....

I hope this article is helpful for you .... for feedback - please rate

regards

Boris Benjamin Wittfoth




TBWStringGrid=class(TStringGrid)
private
protected
procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
AState: TGridDrawState); override;
public
{ just hold some data for each cell }
CellColor:array of array of TColor;
CellFontColor:Array of array of TColor;
CellData:array of array of REAL;
procedure RebuildDynColorArray; // net gut !!!!
procedure
ResizeGrid(ColCount:Integer;RowCount:Integer;ClearAllFields:Boolean=TRUE);
procedure ResetGridCellData;
procedure ResetGrid;
procedure UnselectAll;
published
end;

function InvertColor(Color:TColor):TColor;

{ TBWStringGrid }

//>Created at 05-Jul-2002 (14:12:19 ) by benjamin wittfoth
procedure TBWStringGrid.DrawCell(ACol, ARow: Integer; ARect: TRect;
AState: TGridDrawState);
begin
inherited;
if CellColor[ACol,ARow]=clBlack then EXIT;
With Canvas Do Begin
if (gdSelected in AState) then begin // wenn selektiert ->
INVERTIEREN
Font.Color:=InvertColor(CellFontColor[ACol,ARow]);
Brush.Color := InvertColor(CellColor[ACol,ARow]);
end
else begin // Ansonsten nicht !
Brush.Color := CellColor[ACol,ARow];
Font.Color:= CellFontColor[ACol,ARow];
end;
Brush.Style := bsSolid;
FillRect( ARect );
TextRect( ARect, ARect.left+2, ARect.top+2, Cells[ ACol, ARow ] );
End;
end;

//>Created at 05-Jul-2002 (14:56:33 ) by benjamin wittfoth
procedure TBWStringGrid.RebuildDynColorArray;
begin
SetLength(CellColor,ColCount,RowCount);
SetLength(CEllFontColor,ColCount,RowCount);
SetLength(CellData,ColCount,RowCount);
end;
//>Created at 10-Jul-2002 (08:11:25 ) by benjamin wittfoth
procedure
TBWStringGrid.ResizeGrid(ColCount:Integer;RowCount:Integer;ClearAllFields:Boolean=TRUE);
begin
Self.RowCount:=RowCount;
Self.ColCount:=ColCount;
RebuildDynColorArray;
if ClearAllFields then
ResetGrid;
end;
//>Created at 10-Jul-2002 (08:11:29 ) by benjamin wittfoth
procedure TBWStringGrid.ResetGridCellData;
var X,Y:Integer;
begin
for Y:=0 to RowCount-1 do
for X:=0 to ColCount-1 do
CellData[X,Y]:=0;
end;
//>Created at 09-Jul-2002 (16:54:43 ) by benjamin wittfoth
procedure TBWStringGrid.ResetGrid;
var X,Y:Integer;
begin
for Y:=0 to RowCount-1 do begin
for X:=0 to ColCount-1 do begin
CellData[X,Y]:=0;
CellColor[X,Y]:=clWhite;
CellFontColor[X,Y]:=clBlack;
Cells[X,Y]:='';
end;
end;
end;


//>Created at 09-Jul-2002 (11:08:35 ) by benjamin wittfoth
procedure TBWStringGrid.UnselectAll;
var ARect:TGridRect;
begin
ARect.Left:=0;ARect.Top:=0;ARect.Right:=0;ARect.Bottom:=0;
Selection:=ARect;
end;


function InvertColor(Color:TColor):TColor;
begin
case Color of
clAqua : RESULT:=clTeal;
clBlack : RESULT:=clWhite;
clBlue : RESULT:=clMaroon;
clDkGray : RESULT:=clFuchsia;
clFuchsia : RESULT:=clDkGray;
// clGray : RESULT:=clPurple;
clGreen : RESULT:=clRed;
clLime : RESULT:=clSilver;//clYellow;
clLtGray : RESULT:=clLime ;
clMaroon : RESULT:=clOlive; //clBlue;
clNavy : RESULT:=clNavy;
clOlive : RESULT:=clMaroon;//clNavy;
clPurple : RESULT:=clGray;
clRed : RESULT:=clYellow;//clGreen;
// clSilver : RESULT:=clLtGray;
clTeal : RESULT:=clAqua;
clWhite : RESULT:=clBlack;
clYellow : RESULT:=clRed;//clLime;
end;
end;




Kurt (03-06-2005)
Kommentar
Fra : Kurt


Dato : 03-06-05 11:48

"Lars HT" <FJERNaslaktoke@yahoo.NREJFdk> wrote in message
news:d7papv$a67$1@news.net.uni-c.dk...

Klip..........

Tak for det. Så må jeg prøve om jeg kan finde ud af at lave sådan en ny
komponent, det har jeg ikke prøvet før. Giver det problemer vender jeg
tilbage, vær vis på det!

/Kurt



Lars HT (03-06-2005)
Kommentar
Fra : Lars HT


Dato : 03-06-05 15:21


"Kurt" <kurt_g@guldbaek.net> wrote in message
news:42a0356c$0$221$edfadb0f@dread11.news.tele.dk...
> "Lars HT" <FJERNaslaktoke@yahoo.NREJFdk> wrote in message
> news:d7papv$a67$1@news.net.uni-c.dk...
>
> Klip..........
>
> Tak for det. Så må jeg prøve om jeg kan finde ud af at lave sådan en ny
> komponent, det har jeg ikke prøvet før. Giver det problemer vender jeg
> tilbage, vær vis på det!
>
Faldt helt tilfældigt over denne artikel :
http://delphi.about.com/od/usedbvcl/l/aa031699.htm

Det ser meget enkelt ud!

Det kræver, at du bruger en TDbGrid, men det tror jeg ikke gør noget!

http://delphi.about.com er iøvrigt et rigtig godt delhi-sted!

Lars




Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408173
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste