Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi showmessage(...); automatisch verschwinden lassen (https://www.delphipraxis.net/4679-showmessage-%3B-automatisch-verschwinden-lassen.html)

flomei 8. Mai 2003 14:40


showmessage(...); automatisch verschwinden lassen
 
Ist es möglich solch ein Fenster automatisch verschwinden zu lassen? Mit Timern oder sonst wie.
Beispiel:
Delphi-Quellcode:
showmessage(blablabla);
das soll 1 Sekunde da stehen und dann verschwinden. Wenn es bessere Alternativen gibt als showmessage dann immer her damit :D

Danke!

MfG Florian :hi:

Hansa 8. Mai 2003 14:51

Das hättste mich vorhin auch gleich fragen können. Schau Dir mal MessageDlg an. Ich glaube das ShowMessage ist etwas zu mickrig.

Daniel B 8. Mai 2003 16:19

Hallo,

Du könntest einfach ne einer Sekunde ein ButtonKlick, also ein SendMessage machen, da Du ja die Box selbst erstellst, dürfte es nicht so schwierig werden da Du ja den Titel kennst und Du auch nur an OK eine Message schicken musst.

Grüsse, Daniel :hi:

nailor 8. Mai 2003 16:20

Bei Showmessage wohl eher nicht, weil die den Code anhält...

Daniel B 8. Mai 2003 16:24

Hallo,

http://www.delphipraxis.net/viewtopic.php?t=2915

Ich sehe im Moment keinen Grund warum dies nicht klappen sollte.
Fenster suchen, Button Klicken... Weg isses...
Oder etwa nicht?!?

Grüsse, Daniel :hi:

Marco Haffner 8. Mai 2003 17:44

Leider kann ich wieder mal nicht nachvollziehen wo dies her ist.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Forms, ExtCtrls, Classes, Controls, StdCtrls, Windows, Messages;

type
  TMboxThread = class(TThread)
  protected
    procedure Execute; override;
  public
    constructor Create;
  end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure BtnCloseClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    FFirst:     boolean;
    FMboxThread: TMBoxThread;
    FWinHandle: HWnd;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

constructor TMboxThread.Create;
begin
  FreeOnTerminate := True;
  inherited Create(False);
end;

procedure TMboxThread.Execute;
begin
  { Place thread code here }
  MessageBox(Application.Handle, 'Text', 'Caption',
             MB_APPLMODAL + MB_SETFOREGROUND);
end;

{ TForm1 }

procedure TForm1.BtnCloseClick(Sender: TObject);
begin
  FMBoxThread   := TMBoxThread.Create;
  FFirst        := true;
  Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  if FFirst then
  begin
    FWinHandle    := GetForegroundWindow;
    FFirst         := false;
    Timer1.Enabled := true;
  end
  else
    SendMessage(FWinHandle, WM_CLOSE, 0, 0);
end;

end.

Stanlay Hanks 8. Mai 2003 17:45

Also ich weiß nicht, ob sich das alles für eine einfache Meldung lohnt. Zimmere dir halt eine "Message Form", die du mit einem Timer verschwinden lässt.

Man liest sich. Stanlay 8)

flomei 18. Mai 2003 18:16

Zitat:

Zitat von Nailor
Bei Showmessage wohl eher nicht, weil die den Code anhält...

Aha! Dieser Effekt ist mittlerweile erwünscht! Hat ja doch was positives, dass man das mit showmessage(...); macht.

Dank an alle!

MfG Florian :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 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