ShowMessage和SetFocus問題請教 |
尚未結案
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
各位前輩 如下程式碼﹕
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text = '' then
ShowMessage('無內容')
else
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From 學生.db Where 姓名=:NAME');
Query1.Params[0].Value := Edit1.Text;
Query1.Open;
end; 小弟想在其中加入如果查詢不到資料時(即目前資料表中無相同Edit1中的內容)﹐出現ShowMessage('無相符合資料')﹐該如何寫程式碼﹖
另外﹐如果查詢不到資料或者Edit1中沒有資料時﹐在以上的程式碼處理完成后﹐該如果在ShowMessgae之后將焦點回到Edit1上﹖ 謝謝﹗ 努力,相信會獲得美麗!
忻晟 發表人 - cashxin2002 於 2003/06/25 00:24:09
------
忻晟 |
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
cashxin2002, 您好
(1)如果查詢不到資料時(即目前資料表中無相同Edit1中的內容)﹐出現ShowMessage('無相符合資料'),code如下寫在Query1.Open之後
if Query1.RecordCount = 0 then
ShowMessage('無相符合資料')
(2)如果查詢不到資料或者Edit1中沒有資料時﹐在以上的程式碼處理完成后﹐該如果在ShowMessgae之后將焦點回到Edit1上? code如下寫在ShowMessage('無相符合資料')之後
Edit1.SetFocus 希望這部分Delphi與BCB相同 =================================
<>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。>
<>是非終日有,不聽自然無>
<>天下本無事,庸人自擾之>
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
謝謝前輩的指點﹒ 1﹒將ShowMessage的程式碼寫在Query1的Open之后﹐那樣﹐在Edit1沒有輸入內容而進行查詢動作時﹐也會出現此ShowMessage(判斷Edit1是否有輸入內容的ShowMessage會先出現)﹐這樣的話﹐証明以下程式碼﹕ if Edit1.Text = '' then
ShowMessage('無內容')
else 也具有Query1.Open的功能﹐但這里并沒有加入此類的程式碼﹐是何原因﹖ 2﹒ShowMessage程式之后再加入Edit1.SetFocus﹐程式會不進行執行﹐應該是跟ShowMessage的出現有沖突﹐因為視窗還停留在ShowMessage中﹐并未回到Form1﹒ 謝謝﹗ 努力,相信會獲得美麗!
忻晟
------
忻晟 |
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
cashxin2002, 您好
(1)您的意思是要Edit1.Text沒有輸入的話就不繼續下面的動作嗎?如果是在ShowMessage('無內容')之後增加exit;或是Edit1.SetFocus
(2)按下ShowMessage的Button之後,焦點應該就會回到Edit1上了。 試試看。我是以BCB的寫法與觀念,或許會與Delphi有所不同,如果真的不行的話,就得請 > =================================
<>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。>
<>是非終日有,不聽自然無>
<>天下本無事,庸人自擾之>
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
謝謝tech_state前輩的指點﹒ 小弟測試出該在程式碼中加入begin..end的語法﹐可以終止其中一些的動作而達到目前﹐程式碼如下﹕
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text = '' then
begin
ShowMessage('無內容');
Edit1.SetFocus;
end
else
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From 學生.db Where 姓名=:NAME');
Query1.Params[0].Value := Edit1.Text;
Query1.Open;
if Query1.RecordCount = 0 then
ShowMessage('無相符合資料');
Edit1.SetFocus;
end;
end; 送上一份晚到的恭賀﹕
恭賀tech_state前輩榮登五星﹗(實在不好意思﹐去上海十几天﹐剛剛才發現﹐希望不要介意) 努力,相信會獲得美麗!
忻晟
------
忻晟 |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
改為這樣...
procedure TForm1.Button1Click(Sender: TObject); begin if Edit1.Text = '' then begin ShowMessage('無內容'); Edit1.SetFocus; Exit; end else begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Select * From 學生.db Where 姓名=:NAME'); Query1.Params[0].Value := Edit1.Text; Query1.Open; if Query1.isEmpty then begin ShowMessage('無相符合資料'); Edit1.SetFocus; end; Query1.Close;//要記的把Query1 Clsoe掉 end; end; TRY TRY SEE發表人 - chih 於 2003/06/25 02:58:56 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |