Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Event bei Minimierung/Maximierung einer Form


O'rallY - Do 29.08.02 15:52
Titel: Event bei Minimierung/Maximierung einer Form
Ich habe drei Fragen zu dem Thema:

1. Wieso hat eine Form kein Event das beim Minimieren und beim Maximieren eintritt? Oder gibt es sie und ich hab sie einfach "übersehen"?
2. Wie kann man feststellen, ob eine Form minimiert oder maximiert ist?
3. Wie bringt man die Form dazu sich zu minimieren bzw. zu maximieren, ohne das der Anwender etwas tut?


ao - Do 29.08.02 16:04

Hallo O'rallY

Also 2. und 3. kannst du mit der Eigenschaft WindowState eines Forms lösen, die kannst du abfragen und auch setzen.
Zu 1. fällt mir nur OnResize ein, das wird aber leider, glaube ich, nicht beim minimieren aufgerufen.

Gruß
Andreas


Arakis - Do 29.08.02 16:05

Hi O'rallY user defined image,
der Event liegt im Application-Objekt :P
Versuch es mal mit folgendem Code:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure mini(Sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.mini(Sender: TObject);
begin
  showmessage('Hilfe, ich werde minnimiert!!!')
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMinimize := mini;
end;

end.


Ob Minimiert, Maximiert oder Normal kannst du mit TForm.WindowsState abfragen.

Den Fensterstatus ändert man per Programm so:

Quelltext
1:
2:
3:
application.Minimize;
application.Restore;
//Maximieren weiss ich gerade nicht.


Ich hoffe geholfen zu haben :wink:

Bis dann
user defined image


O'rallY - Do 29.08.02 16:22

Ersteinmal danke.
Doch der Code (@Arakis) hat bei mir nur zur Folge, das wenn ich die Form minimiere und dann in der Taskleise anklicke die procedure mini aufgerufen wird.

der Rest hat einwandfrei genfunzt :wink:


Arakis - Do 29.08.02 16:24

Falsch! :D
Du siehst die MessageBox ja erst dann, wenn du es wiederherstellst. Es wird also schon angezeigt, wenn es minnimiert ist, du siehst sie halt nur nicht :wink:

Bis dann
user defined image