form1.MediaPlayer1.Open;
form1.MediaPlayer1.Play;
if messagedlg('可疑車輛! 請攔截',mtWarning,[mbOk],0)=id_ok then
begin
form1.MediaPlayer1.Close;
end;
uj5u.com熱心網友回復:
引數有誤,改為:
if messagedlg('可疑車輛! 請攔截',mtWarning,[mbOk],0)=mrOK then
uj5u.com熱心網友回復:
改為mrOK也是同樣的問題uj5u.com熱心網友回復:
if messagedlg('可疑車輛! 請攔截',mtWarning,[mbOk],0)=mrOK then
ShowMessage('AAA');
上述代碼在D7 XE7中均執行正常。
分析,可以原因:
1、messagedlg是呼叫API,可以你的作業系統,出現問題。
2、MediaPlayer1.Play執行后,出現死鎖,messagedlg未能執行到位。
建議建立一按鈕,事件中單獨執行,MessageDlg試試。再找原因。
uj5u.com熱心網友回復:
我用showmessage試了一下,也會這樣,單步除錯一下發現是if陳述句執行到if messagedlg('可疑車輛! 請攔截',mtWarning,[mbOk],0)=mrOK then 之后就不往下執行了,又回到子程式的第一行開始執行
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery2.Active:=false;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * from car where rfid='''+CardNo+'''');
ADOQuery2.Active:=true;
ye:=ADOQuery2.fieldbyname('ye').AsString;
ye2:=StrToFloatDef(ye,0);
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from warning where rfid='''+CardNo+'''');
ADOQuery1.Active:=true;
if ADOQuery1.RecordCount=1 then
begin
//showmessage('123');
ADOQuery1.Active:=false;
form1.MediaPlayer1.Open;
form1.MediaPlayer1.Play;
if messagedlg('可疑車輛! 請攔截',mtWarning,[mbOk],0)=mrOK then
begin
form1.MediaPlayer1.Close;
end;
if CardNo=rfid then
begin
....
end;
end
else
begin
....
end;
end;
uj5u.com熱心網友回復:
1、將:form1.MediaPlayer1.Open;
form1.MediaPlayer1.Play;
屏蔽,試試可否執行。
2、將ADOQuery1
ADOQuery2
屏蔽,試試可否執行。
uj5u.com熱心網友回復:
看上去是存在兩個置頂視窗造成沖突我一般都用Application.MessageBox來彈出對話框
你試試
或用ShowMessage
應該可以解決樓主的問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/78874.html
標籤:語言基礎/算法/系統設計
上一篇:本地連接網卡狀態判斷
