Avatar billede canker Nybegynder
26. juni 2002 - 13:42 Der er 18 kommentarer og
1 løsning

fra minimeret til maksimeret

hvordan "fanger" man når aplikationen går fra minimeret til maksimeret (noget On_Et EllerAndet_Maximize)?
Avatar billede borrisholt Novice
26. juni 2002 - 13:45 #1
Application.onMinimize () ?


Jens B
Avatar billede mr.fedderson Nybegynder
26. juni 2002 - 13:48 #2
du har lavet lort
Avatar billede canker Nybegynder
26. juni 2002 - 13:51 #3
>>  Application.onMinimize () ?
ja - men hvor er det nu jeg bruger/kalder den?
Avatar billede borrisholt Novice
26. juni 2002 - 13:57 #4
Stop en TApplicationMessage komponent på din form og prøv det her

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ApplicationEvents1: TApplicationEvents;
    procedure ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
  private
    { Private declarations }
  public
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  case Message.CmdType of
      SC_MINIMIZE:
      begin
        ShowMessage('FORM Minimize');
      end;
      SC_RESTORE:
      begin
        ShowMessage('FORM Restore');
      end;
      SC_MAXIMIZE:
      begin
        ShowMessage ('FORM Maximize');
      end;
    end;
    inherited;
end;

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;  var Handled: Boolean);
begin
  if not Msg.message = WM_SYSCOMMAND then
    exit;

  case Msg.wParam of
      SC_MINIMIZE:
      begin
        ShowMessage('APP Minimize');
      end;
      SC_RESTORE:
      begin
        ShowMessage('APP Restore');
      end;
      SC_MAXIMIZE:
      begin
        ShowMessage ('APP Maximize');
      end;
    end;
end;

end.


Jens B
Avatar billede canker Nybegynder
26. juni 2002 - 14:01 #5
rolig nu jens :-)
der skulle bare ske noget når der blev trykket på programmet fra når det lå på processlinien og blev maksimeret.
Avatar billede borrisholt Novice
26. juni 2002 - 14:02 #6
så skriver mit lille program
ShowMessage('APP Restore');

Jens B
Avatar billede canker Nybegynder
26. juni 2002 - 14:05 #7
ok prøver lige - hvor ligger komponenten??
Avatar billede borrisholt Novice
26. juni 2002 - 14:16 #8
på Addtional. Nummer 3 fra højre.

prøv at slå
WM_SYSCOMMAND hvis du vil vide noget mere om hvad du kan skrive i din case

Jens B
Avatar billede canker Nybegynder
26. juni 2002 - 14:16 #9
tak
Avatar billede canker Nybegynder
26. juni 2002 - 14:17 #10
det var den ikke på min (Delphi 4)
Avatar billede borrisholt Novice
26. juni 2002 - 14:22 #11
så må du jo mappe den op i hånden :

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    procedure ApplicationEventsMessage(var Msg: tagMSG;  var Handled: Boolean);
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  case Message.CmdType of
      SC_MINIMIZE:
      begin
        ShowMessage('FORM Minimize');
      end;
      SC_RESTORE:
      begin
        ShowMessage('FORM Restore');
      end;
      SC_MAXIMIZE:
      begin
        ShowMessage ('FORM Maximize');
      end;
    end;
    inherited;
end;

procedure TForm1.ApplicationEventsMessage(var Msg: tagMSG;  var Handled: Boolean);
begin
  if not Msg.message = WM_SYSCOMMAND then
    exit;

  case Msg.wParam of
      SC_MINIMIZE:
      begin
        ShowMessage('APP Minimize');
      end;
      SC_RESTORE:
      begin
        ShowMessage('APP Restore');
      end;
      SC_MAXIMIZE:
      begin
        ShowMessage ('APP Maximize');
      end;
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := ApplicationEventsMessage;
end;

end.


Jens B
Avatar billede canker Nybegynder
26. juni 2002 - 14:27 #12
ok - tak for det - jeg er jo ikke ligefrem en haj men det går nok nu! :)
Avatar billede canker Nybegynder
26. juni 2002 - 14:30 #13
hmm - den skriver:
[Fatal Error] Unit1.pas(7): File not found: 'AppEvnts.dcu'
når jeg tilføjer AppEvnts i uses, det skal jeg måske ikke??
(skal nok oprette et nyt spørgsmål hvis du synes)
Avatar billede canker Nybegynder
26. juni 2002 - 14:32 #14
juhuu - det virker - super - tak
Avatar billede borrisholt Novice
26. juni 2002 - 14:32 #15
nej slet du bare den ....

Jens B
Avatar billede borrisholt Novice
26. juni 2002 - 14:35 #16
selvfølgelig virker det ... Eller tilføj flere heste.

:-)

Jens B
Avatar billede canker Nybegynder
26. juni 2002 - 14:38 #17
hvordan kan det virke uden jeg har tilføjet

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := ApplicationEventsMessage;  <---  den line
end;

i form.create??

shit når man trykker på den fra process-linien er det ikke som restore!
Avatar billede canker Nybegynder
26. juni 2002 - 14:47 #18
til din egen orientering (jeg synes det er mærkeligt):

når:  Application.OnMessage := ApplicationEventsMessage;

ikke er tilføjet i form.create, virker det når man trykker på de tre ikoner oppe til højre (max-min-restore), men ikke når den restores fra process-linien.
når linien bliver tilføjet virker den også fra process-linien ?? fatter det ikke
nå - jeg skal nok holde kæft i det her spørgsmål nu :-)
Avatar billede borrisholt Novice
26. juni 2002 - 14:52 #19
Er det så svært at forstå .. Det ene pille du i forment message kø. Den anden piller du i din applikations message kø.

Hvis du ikke mapper Application.OnMessage op til noget tja så bliver dit kode ALDRIG kaldt ....

Kode der ikke bliver kaldt kan du heler ikke forvente gør noget :-)

Jens B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester