如何將程式暫停呢?? |
缺席
|
jch
中階會員 ![]() ![]() ![]() 發表:111 回覆:224 積分:66 註冊:2003-12-01 發送簡訊給我 |
|
Chance36
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
jch 你好
看你連線檢查在什麼位置 若在專案檔,則你可以如下程式處理 If 未連線 Then Begin // 使用MessageDlg MessageDlg('資料庫未連線,將結束程式..',mtWarning,[mbOK],0); Application.Terminate; end Else Begin 一般正程序 ... End; 若在主Form 同樣用MessageDlg秀訊息後直接Close;即可以了 或統一用Application.Terminate;結束程式的執行。 |
aquarius
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: 小弟在與資料庫連線前先去做檢查資料庫是否連線,如果沒有連線則秀出一警告視窗後結束程式,但小弟用Showmessage來秀訊息時,程式依然往下跑,BDE錯誤依然出現!! 小弟的問題是該如何做到秀出訊息時將程式暫停!!該下何指令可以經程式強制關閉呢?? ======================== 我是DELPHI5的初學者在 OnFormCreate , OnFormShow 中是不能用 MainForm.Close 來結束程式的. 如果一定要在這兩個 EVENT 中結束程式, 可參考下列兩個方法. 方法一: 用 Application.Terminate 來結束程式 方法二: 用 Halt 指令結束程式. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
jch
中階會員 ![]() ![]() ![]() 發表:111 回覆:224 積分:66 註冊:2003-12-01 發送簡訊給我 |
|
aquarius
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
|
jch
中階會員 ![]() ![]() ![]() 發表:111 回覆:224 積分:66 註冊:2003-12-01 發送簡訊給我 |
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
if ErrorEvent = eeConnect then begin
Caption := ''SQL Server is not Actived.'';
ErrorCode := 0; // Reset Error
end;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Close;
ClientSocket1.Host := ''localhost'';
ClientSocket1.Port := 1433;
ClientSocket1.Open;
Caption := ''Testing SQL Server Active...'';
end; procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Caption := ''SQL Server is ready.'';
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if ClientSocket1.Active then
ClientSocket1.Close;
end;
//----------------------------------------------------------
以上為資料庫區Mickey大哥所提出的測試資料庫是否連線的方法,
我將Button1Click的內容改寫到fromcreat資料庫連線前檢查資料庫是否連線!!
並將更改Caption的部份改為showmessage來提示使用者,但是在檢查時SQL也去連線了,造成SQL的錯誤依然產生,並造成程式死當........ ========================
我是DELPHI5的初學者
|
aquarius
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin if ErrorEvent = eeConnect then begin Caption := ''SQL Server is not Actived.''; ErrorCode := 0; // Reset Error Application.Terminate ; end; end;加上紅色的那一行, 把 FormCreate 中的 Application.Terminate 拿掉, 應該就會對了!! 你錯誤的原因是沒搞清楚 Event 的順序. 在 FormCreate 中, 不會知道 Socket 是否已經成功的建立!! ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
jch
中階會員 ![]() ![]() ![]() 發表:111 回覆:224 積分:66 註冊:2003-12-01 發送簡訊給我 |
|
heart75047
一般會員 ![]() ![]() 發表:9 回覆:13 積分:19 註冊:2010-05-20 發送簡訊給我 |
|
syntax
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
chenyk
高階會員 ![]() ![]() ![]() ![]() 發表:14 回覆:95 積分:171 註冊:2002-07-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |