關於寫公用procedure的問題 |
答題得分者是:jbinfo
|
oktony
中階會員 發表:67 回覆:132 積分:64 註冊:2004-12-05 發送簡訊給我 |
一個通用的procedure是這樣的
procedure TF_attendance.B_seek_ioClick(Sender: TObject);
var
FilterStr:String;
begin
With DM_main.T_attendance do
begin
Close;
FilterStr:='';
if Seek_by_person.Checked then
FilterStr:='PERSON=''' Seek_person_id.Text '''';
if Seek_by_time.Checked then
begin
if length(FilterStr)>0 then
FilterStr:=FilterStr ' AND ';
FilterStr:=FilterStr 'TIME>' Seek_start_time.Text;
FilterStr:=FilterStr ' AND TIME<' Seek_end_time.Text;
end;
if length(FilterStr)>0 then
begin
Filter:=FilterStr;
Filtered:=True;
end
else
Filtered:=False;
Open;
end;
end;
有好幾個bottun都要用到這個procedure,只有2个不同的地方是上面 With DM_main.T_attendance do當中的“DM_main.T_attendance”,還有 FilterStr:=FilterStr 'TIME>' Seek_start_time.Text這行和下行的“TIME”,爲了共用代碼,我寫了下面這個procedure,可是table這個地方有問題,是不是table不能為string?
procedure TForm1.seek(table, time: string);
var
FilterStr:String;
begin
With table do
begin
Close;
FilterStr:='';
if cbSeekPerson.Checked then
FilterStr:='PERSON=''' Seek_person_id.Text '''';
if cbSeekTime.Checked then
begin
if length(FilterStr)>0 then
FilterStr:=FilterStr ' AND ';
FilterStr:=FilterStr time '>=' Seek_start_time.Text;
FilterStr:=FilterStr ' AND ' time '<=' Seek_end_time.Text;
end;
if length(FilterStr)>0 then
begin
Filter:=FilterStr;
Filtered:=True;
end
else
Filtered:=False;
Open;
end;
end;
|
Skyer
高階會員 發表:43 回覆:111 積分:120 註冊:2002-04-04 發送簡訊給我 |
看了您 table 是定義成 string Delphi 的 string 又沒有 member function
不清楚您 with 他的意義在 ?? 再來 with table do begin
Close; <== 這... 這應該會翻成 Form.Close 吧 ? 最後,請您在發表文章時,有含 source code 時,請用
[ code ] [ /code ] (即格式上 # 的那個按鈕)
將程式包起來 --
Regards,
Skyer
------
-- Regards, Skyer |
oktony
中階會員 發表:67 回覆:132 積分:64 註冊:2004-12-05 發送簡訊給我 |
|
jbinfo
一般會員 發表:9 回覆:25 積分:16 註冊:2004-05-10 發送簡訊給我 |
|
oktony
中階會員 發表:67 回覆:132 積分:64 註冊:2004-12-05 發送簡訊給我 |
|
oktony
中階會員 發表:67 回覆:132 積分:64 註冊:2004-12-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |