![]() |
Re: weiterlaufen während showmessage()
Wie währe es den so:
Delphi-Quellcode:
implementation
{$R *.dfm} var ShowMyMessage: Boolean = FALSE; procedure TForm1.Timer1Timer(Sender: TObject); begin // Anderer Code if Bedingung then begin if not ShowMyMessage then begin ShowMyMessage := TRUE; MessageBox(Handle, 'Hi', 'Information', {MB_TOPMOST or} MB_ICONINFORMATION or MB_OK); end; end; // Anderer Code end; |
Re: weiterlaufen während showmessage()
Er will aber, das das Programm weiterläuft (weiterarbeitet), während die Meldung angezeigt wird.
|
Re: weiterlaufen während showmessage()
Hallo,
du könntest es auch so machen:
Delphi-Quellcode:
CheckBox2.checked wäre deine Bedingung
private
{ Private-Deklarationen } f: TForm; { ... } procedure TForm1.CheckBox1Click(Sender: TObject); begin Timer1.Enabled := CheckBox1.Checked; end; procedure TForm1.Timer1Timer(Sender: TObject); begin If CheckBox2.Checked then begin If not f.Visible then f.Show; end else begin f.Hide; end; Label1.Caption := TimeToStr(now); end; procedure TForm1.FormCreate(Sender: TObject); begin f := CreateMessageDialog('Meldung', mtWarning, []); f.Height := 75; end; und die checkBox1 diente mir nur als ein/ausschalten des timers. ach ja - über CreateMessageDialog bekommst du eine TForm. Und diese kannst du, wenn du es willst, nach Herzenslust ändern. z. B.:
Delphi-Quellcode:
[edit]
f.color := blue;
etc. die Zeile:
Delphi-Quellcode:
dient nur dazu, dass man sieht dass das Prog weiterläuft
Label1.Caption := TimeToStr(now);
|
Re: weiterlaufen während showmessage()
Vielen Dank für eure antworten.
ich hab es so ähnlch gehandhabt, wie Helmi vorgeschlagen hat, sprich mit show und hide gearbeitet. Nur hab ich mein eigenes Formular, in dem ich mit ein paar Labels ein paar Statusmeldungen ausgebe. Aber CreateMessageDialog kann man sich mal gut merken. Es soll schon so sein, dass während des dies warnfenster offen ist, andere eingaben im Hauptformular getätigt werden können, bzw sogar sollen, damit die fehlermeldung nicht mehr auftritt. |
Re: weiterlaufen während showmessage()
Zitat:
|
Re: weiterlaufen während showmessage()
also bisher hat bei mir Messagebox auch immer dazu geführt das der Source hinter dem Aufruf erst ausgeführt wird wenn der Dialog geschlossen wird.
Es gibt aber auch noch die Möglichkeit mit PostMessage an die eigene Anwendung eine Message zu schicken und bei Empfang der Message ShowMessage aufzurufen. |
Re: weiterlaufen während showmessage()
@Gummibärchen, ich bezog mich nur auf das Timerbeispiel.
Zitat:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; const WM_MYMESSAGE = WM_USER + $000001; type TMyMessage = Record // foo end; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } procedure WMMyMessage(var M: TMyMessage); message WM_MYMESSAGE; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMMyMessage(var M: TMyMessage); begin ShowMessage('Hi'); end; procedure TForm1.Button1Click(Sender: TObject); begin PostMessage(Handle, WM_MyMessage, 0, 0); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz