delphiでエクセルのワークブックにデータを記入するプログラムを作成して
います。ワークブックの特定セルを選択し、MessageDlgを出して記入セルがOKなの
かの判断を促しているのですが、MessageDlgがワークブックの裏に隠れてしまいます。MessageDlgを表に出す方法をご存知の方、アドバイスをお願いします。
以下がソースです。
DataBook:='d:\Book1.xls';
Excel:=CreateOleObject('Excel.Application');
ExcelBook:=Excel.WorkBooks.Open(DataBook);
Excel.Visible:=True;
ExcelSheet:=ExcelBook.WorkSheets[FormatDateTime('mmmm',date)];
ExcelSheet.Activate;
DayCell:=ExcelSheet.Range['b50'].End[-4162].Offset[1,-1];
DayCell.Activate;
DayCell.Interior.ColorIndex:=4;
res:=MessageDlgPos('記入開始セルOK?'
,mtConfirmation,mbYes,mbNo],0,form1.Left+100,form1.Top+150);
if (res=mrNo) or (res=2) then
begin
ExcelBook.Close(False);
Excel.Quit;
Excel:=Unassigned;
end;
自分でフォームを作成して、そのフォームにメッセージを出すのはどうでしょう?ちなみにFormStyleプロパティはfsStayOnTopにすると一番前に出るのではないでしょうか?
LupinⅢさん、アドバイスありがとうございます。
FormStyleプロパティをfsStayOnTopにしましたら、form1(メインフォーム)
は前面にでましたが、MessageDlgは最背面のままです(-_-)
私、delphi初心者なので「自分でフォームを作成して、・・・」ということが
どういう事なのかわかりません。もう少し詳しく教えてもらえないでしょうかm(__)m。
そちらのプロジェクトに
ファイル=>新規作成 でフォームなりダイアログを新たに加えて
それを MessageDlg の代わりに使用してはどうでしょうか?
そして、そのフォームなりダイアログのFormStyleプロパティはfsStayOnTopに
すればよいのではないでしょうか?
と、LupinⅢさんは、おっしゃってるのだと思います。
通りすがりさん、ありがとうございます。
まったくもってその通りです。
通りすがりさん、LupinⅢさん ありがとうございます
頭がパニックになっていました。MessageDlgに執着しずぎて
「ファイル=>新規作成 でフォームなりダイアログを新たに加えて・・・」
ということすら気が付きませんでした^^;
まったく年はとりたくないものです。失礼しました。
ツイート | ![]() |