一个BUtton按钮,当点击它时会在StringGrid中显示int型数据。
我想让单元格中的值<100的全部变成红色显示。
我想让单元格中的值<100的全部变成红色显示。
解决方案 »
- update.show这个语句居然打不开窗口!专家给我看看呀!
- 特大喜讯:“源码空间”所有的编程源代码
- Delphi8的Object TreeView那去了!
- 关于注册表和NT服务程序的怪问题
- 客户端退出了,服务端也自动退出,但服务端所在机子的windows中的右下角还留有图标,why?
- @@@@@怎么在DataSet中统计数据,并显示出来以及及时更新?@@@@@
- VB不发展了,公司一大型非数据库程序想移植到DELPHI或BCB,谁搞过?给点意见?
- 请问:如何处理当在屏幕画多个图时,怎么使后画的不覆盖下面的图形呢?
- 软件做完了,怎么作成安装程序,要注意什么?
- BDE问题请教,十万火急!!!
- 关于ADOQuery,中group by语句执行的疑惑,谢谢专家指教
- 求基于三汇板卡的呼叫中心软件.要求稳定第一,通用功能既可.请QQ联系
r:TRect;
S:String;
begin
if (ACol=2) And (ARow=2) then
with StringGrid1.Canvas do
Begin
Draw(Rect.Left, Rect.Top, Image1.Picture.Graphic);
r:=Rect;
Font.Color:=clRed;
Font.Size:=20;
Brush.Style := bsClear;
//TextOut(Rect.Left+20, Rect.Top+20,'XXX');
s:='XXXXX';
DrawText(Handle,PChar(s),Length(s),r,DT_CENTER or DT_SINGLELINE or DT_VCENTER);end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
S: string;
v: Double;
ACanvas: TCanvas;
begin
S := StringGrid1.Cells[ACol, ARow];
ACanvas := StringGrid1.Canvas;
ACanvas.Font.Assign(StringGrid1.Font);
if TryStrToFloat(S, v) and (v < 100) then
ACanvas.Font.Color := clRed;
ACanvas.FillRect(Rect);
DrawText(ACanvas.Handle, PChar(s), -1, Rect, DT_CENTER or DT_SINGLELINE or DT_VCENTER);
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FButtonClick: Boolean;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
S: string;
v: Double;
ACanvas: TCanvas;
begin
S := StringGrid1.Cells[ACol, ARow];
ACanvas := StringGrid1.Canvas;
ACanvas.Font.Assign(StringGrid1.Font);
if FButtonClick and TryStrToFloat(S, v) and (v < 100) then
ACanvas.Font.Color := clRed;
ACanvas.FillRect(Rect);
DrawText(ACanvas.Handle, PChar(s), -1, Rect, DT_CENTER or DT_SINGLELINE or DT_VCENTER);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
FButtonClick := not FButtonClick;
StringGrid1.Repaint;
end;end.