MessageDlgを表に出すには?

解決


takapi  2003-10-24 17:47:55  No: 5393

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

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


takapi  2003-10-24 23:02:05  No: 5395

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


通りすがり  2003-10-24 23:20:05  No: 5396

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


LupinⅢ  URL  2003-10-25 00:35:47  No: 5397

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


takapi  2003-10-25 02:39:16  No: 5398

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加