linkhanks
一般會員
發表:3 回覆:11 積分:2 註冊:2006-07-10
發送簡訊給我
|
procedure TForm1.SpeedButton1Click(Sender: TObject); begin if DirectoryExists(ADOTable1.FieldByName('目的').AsString) = true then begin Form1.hide; ShellExecute(handle, PChar('open'),pchar(ADOTable1.FieldByName('執行').AsString),nil,nil, SW_SHOW); end else begin if MessageBox(Form1.Handle, '檔案不存在,是否下載?' , 'Dialog' ,MB_YESNO)=IDYES then begin Form1.hide; if CopyDir(ADOTable1.FieldByName('來源').AsString, ADOTable1.FieldByName('目的').AsString) = true then begin ShellExecute(handle, PChar('open'),pchar(ADOTable1.FieldByName('執行').AsString),nil,nil, SW_SHOW); end else begin DelDir(ADOTable1.FieldByName('目的').AsString); end end else begin
MessageBox(Form1.Handle, '使用者停止下載...' , 'Message' ,MB_ICONASTERISK);
end end
end;
各位前輩好~~小弟買書自學~~嘗試連結ACCESS資料庫取出檔案路徑~下載並執行~
但寫到這段一直無法解決~想破頭~也翻遍書(只有寫一點點)~還是一知半解~搞不懂~~
每次執行就是停在最後的 " end; " 這裡~~自知問題淺薄~非萬不得以不敢上來發問~~
實在因為周邊沒有人學DELPHI.........還望各位前輩海涵,提點一下小弟問題在哪裡~~
不勝感激~~~m (_ _) m
|
jhlin88
一般會員
發表:21 回覆:28 積分:9 註冊:2002-10-17
發送簡訊給我
|
看起來並不是假設語句似乎沒有問題,請問有出現什麼錯誤訊息?
------ JamesLin
|
adonis
高階會員
發表:140 回覆:258 積分:159 註冊:2002-04-15
發送簡訊給我
|
看不出有少 end ~~ 但我稍微整理了一下寫法,希望對你有幫助 ~
我也在學習中,若有錯謬請見諒 ~
procedure TForm1.SpeedButton1Click(Sender: TObject); begin if DirectoryExists(ADOTable1.FieldByName('目的').AsString) = true then begin Form1.hide; ShellExecute(handle, PChar('open'),pchar(ADOTable1.FieldByName('執行').AsString),nil,nil, SW_SHOW); end else begin if MessageBox(Form1.Handle, '檔案不存在,是否下載?' , 'Dialog' ,MB_YESNO)=IDYES then begin Form1.hide; if CopyDir(ADOTable1.FieldByName('來源').AsString, ADOTable1.FieldByName('目的').AsString) = true then ShellExecute(handle, PChar('open'),pchar(ADOTable1.FieldByName('執行').AsString),nil,nil, SW_SHOW) else DelDir(ADOTable1.FieldByName('目的').AsString); end else MessageBox(Form1.Handle, '使用者停止下載...' , 'Message' ,MB_ICONASTERISK); end; end;
------ 我也在努力學習中,若有錯謬請見諒。
|
linkhanks
一般會員
發表:3 回覆:11 積分:2 註冊:2006-07-10
發送簡訊給我
|
===================引 用 文 章===================
看不出有少 end ~~ 但我稍微整理了一下寫法,希望對你有幫助 ~
我也在學習中,若有錯謬請見諒 ~
procedure TForm1.SpeedButton1Click(Sender: TObject); begin if DirectoryExists(ADOTable1.FieldByName('目的').AsString) = true then begin Form1.hide; ShellExecute(handle, PChar('open'),pchar(ADOTable1.FieldByName('執行').AsString),nil,nil, SW_SHOW); end else begin if MessageBox(Form1.Handle, '檔案不存在,是否下載?' , 'Dialog' ,MB_YESNO)=IDYES then begin Form1.hide; if CopyDir(ADOTable1.FieldByName('來源').AsString, ADOTable1.FieldByName('目的').AsString) = true then ShellExecute(handle, PChar('open'),pchar(ADOTable1.FieldByName('執行').AsString),nil,nil, SW_SHOW) else DelDir(ADOTable1.FieldByName('目的').AsString); end else MessageBox(Form1.Handle, '使用者停止下載...' , 'Message' ,MB_ICONASTERISK); end; end;
首先謝謝你的回答~也感謝上一位的提醒~我忘了把訊息貼上來
我依造您的寫法改變後~會出現這樣的錯誤訊息~~[Error] Unit1.pas(337): ';' not allowed before 'ELSE'~位置是紅色的那一行
|
linkhanks
一般會員
發表:3 回覆:11 積分:2 註冊:2006-07-10
發送簡訊給我
|
經由兩位的啟發~小弟已經試出來了~僅將結果貼上來參考參考~
也感謝兩位的提示給小弟思考方向~
procedure TForm1.SpeedButton1Click(Sender: TObject); begin if DirectoryExists(ADOTable1.FieldByName('目的').AsString) = true then begin Form1.hide; ShellExecute(handle, PChar('open'),pchar(Edit1.Text),nil,nil, SW_SHOW); end else begin SpeedButton1.Enabled:=False; SpeedButton2.Enabled:=False; if MessageBox(Form1.Handle, '檔案不存在,是否下載?' , 'Dialog' ,MB_YESNO)=IDYES then begin Form1.hide; if CopyDir(ADOTable1.FieldByName('來源').AsString, ADOTable1.FieldByName('目的').AsString) = true then begin ShellExecute(handle, PChar('open'),pchar(Edit1.Text),nil,nil, SW_SHOW); SpeedButton1.Enabled:=True; SpeedButton2.Enabled:=True; end else DelDir(ADOTable1.FieldByName('目的').AsString); SpeedButton1.Enabled:=True; SpeedButton2.Enabled:=True; Form1.show; end else MessageBox(Form1.Handle, '使用者停止下載...' , 'Message' ,MB_ICONASTERISK); SpeedButton1.Enabled:=True; SpeedButton2.Enabled:=True; end
end;
|
linkhanks
一般會員
發表:3 回覆:11 積分:2 註冊:2006-07-10
發送簡訊給我
|
ˊˋ不過雖然可以正常的執行了
if CopyDir(ADOTable1.FieldByName('來源').AsString, ADOTable1.FieldByName('目的').AsString) = true then begin ShellExecute(handle, PChar('open'),pchar(Edit1.Text),nil,nil, SW_SHOW); SpeedButton1.Enabled:=True; SpeedButton2.Enabled:=True; end else DelDir(ADOTable1.FieldByName('目的路徑').AsString); SpeedButton1.Enabled:=True; SpeedButton2.Enabled:=True; Form1.show; end
DelDir的功能確時有時無~~傷腦筋~~再繼續研究研究~~^^
|
te_hsun
一般會員
發表:43 回覆:34 積分:20 註冊:2002-03-25
發送簡訊給我
|
盡量縮排對齊每個程序,方便閱讀及找錯誤。
procedure TForm1.SpeedButton1Click(Sender: TObject); begin
if True then begin //DoTrue(...); SpeedButton1.Enabled:= True; end else begin //DoFalse(...); SpeedButton1.Enabled:= False;
if True then begin //DoTrue(...); SpeedButton1.Enabled:= True; end;
if True then SpeedButton1.Enabled:= True else SpeedButton1.Enabled:= False;
//DoOther(...); end;
end;
|