表格問題?如何使找到的記錄在表格中高亮顯示(如更改其色彩或字體等)! |
尚未結案
|
longjibo
一般會員 ![]() ![]() 發表:18 回覆:18 積分:12 註冊:2002-11-08 發送簡訊給我 |
|
ko
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if 找到資料 then //clBlue clYellow
DBGrid1.Canvas.Font.Color:=clBlue;
DBGrid3.DefaultDrawDataCell(Rect,Column.Field,State);
end;
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
longjibo
一般會員 ![]() ![]() 發表:18 回覆:18 積分:12 註冊:2002-11-08 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
看看這樣行不行?
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if gdSelected in State then begin if 找到資料 then //clBlue clYellow DBGrid1.Canvas.Font.Color:=clBlue; end; DBGrid3.DefaultDrawDataCell(Rect,Column.Field,State); end;-- Everything I say is a lie. |
ccchen
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
方法是沒錯的, 問題是如何用. 你必須依自己需要想清楚
DrawColumnCell傳入之參數包含了DataCol及Column, 用這兩參數就可以明確知道在Draw那一個cell 例如Button1 Click時進行locate
Query1.locate(...)
keyvalue:=query1.fields[xx].asstring; //用一global參數保存關鍵值
refreah; //重新paint
在DrawColumnCell中
if Query1.fields[xx].asstring=keyvalue then begin //比較是否為關鍵值 DBGrid1.Canvas.Font.Color:=clBlue; DBGrid1.DefaultDrawDataCell(Rect,Column.Field,State); end;發表人 - ccchen 於 2002/12/17 08:12:13 |
ff932
一般會員 ![]() ![]() 發表:0 回覆:2 積分:0 註冊:2002-09-19 發送簡訊給我 |
|
ccchen
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
ff932
一般會員 ![]() ![]() 發表:0 回覆:2 積分:0 註冊:2002-09-19 發送簡訊給我 |
procedure TForm1.ToolButton3Click(Sender: TObject);
begin
close;
end; procedure TForm1.ToolButton2Click(Sender: TObject);
var
StyleNum: string;
begin
StyleNum := inputbox('查詢貨號','請輸入貨號','1234567890123');
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM fgip005.dbf');
Query1.Open;
Query1.Locate('STYLENUM',StyleNum,[]);
keyvalue := Query1.fields[0].asstring;
DBGrid1.Repaint;
if Query1.FieldByName('STYLENUM').AsString = StyleNum then
begin
Query1.Locate('STYLENUM',StyleNum,[]);
end else
MessageDlg('找不到該筆資料!', mtError, [mbOk], 0); end; procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Query1.fields[0].asstring=keyvalue then //比較是否為關鍵值
begin
DBGrid1.Canvas.Font.Color:=clRed;
DBGrid1.DefaultDrawDataCell(Rect,Column.Field,State);
end; end;
|
banson1716
高階會員 ![]() ![]() ![]() ![]() 發表:55 回覆:182 積分:167 註冊:2002-04-14 發送簡訊給我 |
DBGrid中每一行顏色可按照自己的意願控制
procedure Tinfo.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if query1.FieldByName(’all’).asstring>40’ then
begin
dbgrid1.Canvas.Font.Color:=clred;
dbgrid1.Canvas.Brush.color:=clyellow;
end
else
begin
dbgrid1.Canvas.Font.Color:=clblue;
dbgrid1.Canvas.Brush.color:=clyellow;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |