아래는 소스인데요 질문대로 OpenDialog를 여러번 하면(특히 디자인시)
커서가 모래시계로 바뀌며 컴이 다운됩니다. 그래서 파워를 억지로 꺼야 하는
일이 왕왕 일어납니다.
무었이 잘못되었나요? 한마디씩 해 주십시요. 감사합니다.
허접 소스 갑니다.~
procedure TFm5011.FOpenBtnClick(Sender: TObject);
var fname :string;
Excel,Wbk,Sht : Variant;
begin
if (Tit_panel.caption = 'Excel Law 불러오기') or
(Tit_panel.caption = 'Excel Sub 불러오기') then
begin
end else
begin
showmessage('불러오기 에서만 Open 할 수 있습니다.!');
exit;
end;
if ac_fname.Text = '' then begin
showmessage('Sheet명을 입력해 주세요.!');
ac_fname.SetFocus;
exit;
end;
fname := '';
fname := ac_fname.Text+ '$';
ProcessBtn.Enabled := False;
try
Excel := CreateOleObject('Excel.Application');
Excel := ('[APP.MAXIMIZE()]');
Except
on EOleError do Exit;
end;
if OpenDialog1.Execute then begin//-----여기서 OpenDialog가 안뜨고 죽어요.... 왜그러지?????
try
with ADOQuery1 do begin
Close;
ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
OpenDialog1.FileName +
';Extended Properties=Excel 8.0;Persist Security Info=False';
SQL.Clear;
//SQL.Text := 'SELECT * FROM [마케팅$]'; // 불러올 엑셀의sheet명
SQL.Text := 'Select * From ['+fname+']'; //동적으로 불러옴
Open;
end;
ac_path.Text := OpenDialog1.FileName;
Except
Excel.Quit;
Excel := unassigned;
Showmessage('Excel 파일을 찿을 수 없습니다.');
end;
end;
//Excel.Quit;
ProcessBtn.Enabled := True;
end;