Solved

A cell in blue is shown in a StringGrid control, but I don't want so

Posted on 1998-10-03
15
156 Views
Last Modified: 2011-09-20
Hi all experts again!

I have some StringGrid controls in my form which when I run the application, show the first cell in blue. I'm trying to modify selection properties, but I cannot make that blue square to disappear. Any suggestion?

Thanks in advance
Jaime
0
Comment
Question by:skel
  • 5
  • 4
  • 4
  • +1
15 Comments
 
LVL 8

Expert Comment

by:ZifNab
ID: 1341603
hi skel,

set gridoption : goDrawFocusSelected to False.

Zif.
0
 
LVL 2

Expert Comment

by:mikepj
ID: 1341604
StringGrid1.Options:=StringGrid1.Options+[goDrawFocusSelected]
0
 
LVL 10

Expert Comment

by:viktornet
ID: 1341605
Hello....Everyone could answer that.... but Zif answered it first, so if skel likes it he has to give the credit to Zif

//Vik
0
 
LVL 2

Expert Comment

by:mikepj
ID: 1341606
Quite right--it is an easy question.  However, like your answer to my question, Viktor, if the answer isn't spelled out better, it can be useless for a beginner.  I spelled it out so he could actually use the answer even if he didn't know very much.  I figured he wanted to do this programmatically.  I don't much care who gets the points--I certainly don't need them.
0
 
LVL 10

Expert Comment

by:viktornet
ID: 1341607
Well, I don't know if someone is a beginner and I ain't planning to ask.... When I was one of them no one asked me...."Are you a beginnir or not??" .... If you don't understand something about the answer you ask furthur questiuons until you are sure you understand...That's the purpose of E-E

btw- If skel didn't understand theanswer he would ask for some code...or something....

//Viktor
0
 

Author Comment

by:skel
ID: 1341608
Hi all!! thanks for the answers... I have these options "TRUE" in Grid Options...

[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine]

the rest is FALSE, but when I run the application... it's still showing the blue square in the grid.

I tried with all options FALSE, and the result is the same. The control is TStringGrid.

What's the problem?
Jaime
0
 
LVL 10

Expert Comment

by:viktornet
ID: 1341609
Here is a solution.....

SG = StringGrid

In OnDrawCell() of the string grid do this....

procedure TForm1.SGDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
    if not((ACol = 0) and (ARow = 0)) then
        SG.Canvas.FillRect(Rect);
end;

btw- I hope you remmember about the credit if this helps ya

Regards,
Viktor Ivanov
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 

Author Comment

by:skel
ID: 1341610
It didn't worked :(
0
 
LVL 10

Expert Comment

by:viktornet
ID: 1341611
What didn't go well?? Tell me any error messages or something...so I can help you firthur more...

Viktor
0
 
LVL 10

Expert Comment

by:viktornet
ID: 1341612
If you are using Delphi 3 I think that you need to use Col Row instead of ACol ARow....I'm not sure though...

//Viktor
0
 
LVL 8

Expert Comment

by:ZifNab
ID: 1341613
Hi skel et al,

Viktornet, just tried your code out on D3. It's correct about Col and Row but the bue box keeps there the first time (when clicked it goes away), its like the other solutions.

This works (I hope)

procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;
  Rect: TRect; State: TGridDrawState);
  var HoldColor : TColor;
begin
 with sender as TStringGrid do begin
  if (gdSelected in State) then begin
   HoldColor :=Canvas.Brush.Color;
   Canvas.Brush.Color := (Sender as TStringGrid).Color;
   Canvas.FillRect(Rect);
   Canvas.Brush.Color := HoldColor;
  end;
 end;
end;

Regards, Zif.
0
 

Author Comment

by:skel
ID: 1341614
Hi... It finally works with ZifNab solution, but I didn't use HoldColor variable and sentences associated with it. I got the effect that when the control looses focus, the actual selected cell remains in white, that's good for my application. How can I grade Zif answer instead of mikepj one which was the original answer? I don't know where to change name of the graded person.

Viktornet: I realized immediately that I had to change ACol into Col and ARow into Row.... when I said it didn't work I refered that it didn't do what I wanted to do, not that it didn't compiled.

Thanks a lot for your answers
Jaime

0
 
LVL 8

Expert Comment

by:ZifNab
ID: 1341615
Hi skel,

I wasn't already sure if HoldColor was needed, but I thought it couldn't to anything wrong, besides it was late and I was to lousy to try it without (sorry).

I'm glad it works now.

If you want to give the points to me, then you've to reject the answer of mikepj (sorry mikepj). Then I can answer the q'n and then you can grade it.

Regards, Zif.
0
 

Author Comment

by:skel
ID: 1341616
Hi Zif.. you can answer the question now :)

thanks for all and bye
Jaime
0
 
LVL 8

Accepted Solution

by:
ZifNab earned 50 total points
ID: 1341617
Hi Jaime,

Q'n becomes answered... now :

procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;
  Rect: TRect; State: TGridDrawState);
  var HoldColor : TColor;
begin
 with sender as TStringGrid do begin
  if (gdSelected in State) then begin
   HoldColor :=Canvas.Brush.Color;
   Canvas.Brush.Color := (Sender as TStringGrid).Color;
   Canvas.FillRect(Rect);
   Canvas.Brush.Color := HoldColor;
  end;
 end;
end;

Use of HoldColor isn't necessary.

Zif.
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now