MessageDlgを表に出すには?

解決


takapi  2003-10-24 17:47:55  No: 5393  IP: [192.*.*.*]

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;

編集    削除
LupinⅢ  URL  2003-10-24 18:45:25  No: 5394  IP: [192.*.*.*]

自分でフォームを作成して、そのフォームにメッセージを出すのはどうでしょう?ちなみにFormStyleプロパティはfsStayOnTopにすると一番前に出るのではないでしょうか?

編集    削除
takapi  2003-10-24 23:02:05  No: 5395  IP: [192.*.*.*]

LupinⅢさん、アドバイスありがとうございます。
FormStyleプロパティをfsStayOnTopにしましたら、form1(メインフォーム)
は前面にでましたが、MessageDlgは最背面のままです(-_-)
私、delphi初心者なので「自分でフォームを作成して、・・・」ということが
どういう事なのかわかりません。もう少し詳しく教えてもらえないでしょうかm(__)m。

編集    削除
通りすがり  2003-10-24 23:20:05  No: 5396  IP: [192.*.*.*]

そちらのプロジェクトに
ファイル=>新規作成 でフォームなりダイアログを新たに加えて
それを MessageDlg の代わりに使用してはどうでしょうか?
そして、そのフォームなりダイアログのFormStyleプロパティはfsStayOnTopに
すればよいのではないでしょうか?
と、LupinⅢさんは、おっしゃってるのだと思います。

編集    削除
LupinⅢ  URL  2003-10-25 00:35:47  No: 5397  IP: [192.*.*.*]

通りすがりさん、ありがとうございます。
まったくもってその通りです。

編集    削除
takapi  2003-10-25 02:39:16  No: 5398  IP: [192.*.*.*]

通りすがりさん、LupinⅢさん  ありがとうございます
頭がパニックになっていました。MessageDlgに執着しずぎて
「ファイル=>新規作成 でフォームなりダイアログを新たに加えて・・・」
ということすら気が付きませんでした^^;
まったく年はとりたくないものです。失礼しました。

編集    削除