如何在TFram上的DBEdit依其值給予不同顏色 |
尚未結案
|
danajn
一般會員 發表:14 回覆:29 積分:8 註冊:2002-08-01 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
danajn
一般會員 發表:14 回覆:29 積分:8 註冊:2002-08-01 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
danajn
一般會員 發表:14 回覆:29 積分:8 註冊:2002-08-01 發送簡訊給我 |
type
TDBEdit = class(DBCtrls.TDBEdit)
procedure DataChange(Sender: TObject);
end;
TFrmColorEdit = class(TFrame)
Label1: TLabel;
Color_DBedit: TDBEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Color_DBeditChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; implementation uses Color_Pick; {$R *.dfm} procedure TFrmColorEdit.Button1Click(Sender: TObject);
begin
ColorPick(Color_DBedit);
end; //寫在這個event是ok的 procedure TFrmColorEdit.Color_DBeditChange(Sender: TObject);
begin
with TDBEdit(Sender) do
if DataSource.DataSet.FieldByName(DataField).AsString<>''then
begin
Color:=DataSource.DataSet.FieldByName(DataField).AsInteger;
Font.Color:=Color;
end;
end;
但寫在這個event 是無作用的 { TDBEdit } procedure TDBEdit.DataChange(Sender: TObject); begin if DataSource.DataSet.FieldByName(DataField).AsString<>'' then egin Color:=DataSource.DataSet.FieldByName(DataField).AsInteger; Font.Color:=Color; end; end;end. 麻煩 wameng 囉 謝謝 |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
如果您要使用這個做法。
type TDBEdit = class(DBCtrls.TDBEdit) procedure DataChange(Sender: TObject); end;請注意 DataChange 為私有的,使用繼承是無法 Override。 能夠覆寫主要看這函數字尾是否有 Override 或 virtual 語法。 因此應改為 type TDBEdit = class(DBCtrls.TDBEdit) protected procedure Change; override; end; Procedure TDBEdit.Change; begin inherited Change; { 繼承父元件的處理} ... { 加到這裡來 } end;發表人 - wameng 於 2004/10/30 14:35:38 |
danajn
一般會員 發表:14 回覆:29 積分:8 註冊:2002-08-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |