Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#13

AW: Modaler Doppelklick gibt Event an Ursprungsfenster weiter

  Alt 12. Sep 2018, 09:53
Ich vergaß noch zu erwähnen, dass die Lösung von @hoika das Problem nicht beseitigt.
Hmm.. nun wie ich schon sagte wenn er ModalResult NICHT auswertet kann er auch auf ShowModal verzichten ist wohl die beste Lösung.
EnableWindow und SetWindowPos liefern dann das gleiche Ergebnis.

Emuliertes ShowModal.. und fertig.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

  Form2.Show;
end;

end.
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation
uses Unit1;

{$R *.dfm}

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  Form1.Enabled := True;
end;

procedure TForm2.FormShow(Sender: TObject);
begin

  Form1.Enabled := False;
  SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;

end.
Man kann jetzt noch das neue Fenster über das alte zentrieren das habe ich mir aber erspart.

gruss

Geändert von EWeiss (12. Sep 2018 um 10:27 Uhr)
  Mit Zitat antworten Zitat