AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FormActivate, wann wird es ausgelößt?

Ein Thema von ferby · begonnen am 8. Jul 2006 · letzter Beitrag vom 9. Jul 2006
Antwort Antwort
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

FormActivate, wann wird es ausgelößt?

  Alt 8. Jul 2006, 00:37
Hallo,

Der Delphi Hilfe habe ich entnommen,
dass das FormActivate Ereigniss immer ausgelößt wird,
wenn ein anderes Fenster aktiv ist und ich dann auf das eigene Programm klicke,
sprich es aktiviere.

Aber irgendwie geht das nicht...

Ich habe jetzt mehrere Dinge versucht, aber jedesmal
wird dieses Ereigniss nur einmal, und zwar beim
starten des Programs aufgerufen.

Ich habe ein Programm nur zum Testen geschrieben:

Delphi-Quellcode:
unit Unit1;

interface

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

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

var
  Form1: TForm1;
  i: integer;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
  button1.caption:=inttostr(i);
  inc(i);
end;

end.
Nach dem Start des Programs ist die Button Caption auf 0,
also wurde FormActivate 1x ausgeführt.
Aber ich bekomme es nicht zusammen,
das die Caption sich ändert.
Ich habe andere Programme geöffnet und dann auf das eigene geklickt,
nichts tut sich.

Wann wird FormActivate ausgeführt?
Bzw. welches Ereigniss wird ausgeführt wenn das Programm
wieder aktiv geschalten wird, sprich wenn der Benutzer zum Beispiel
mit Alt + Tab herumspringt....


Dankbar für jede Hilfe!
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: FormActivate, wann wird es ausgelößt?

  Alt 8. Jul 2006, 00:50
Hallo ferby,

Zitat von Delphi-Hilfe:
Erfolgt die Übergabe der Steuerung von einer anderen Anwendung durch Windows, wird das Ereignis OnActivate des Anwendungsobjekts (TApplication), nicht des Formulars ausgelöst.
Die Zuweisung zu TApplication.OnActivate kannst du entweder direkt im Quelltext oder mit Hilfe der Komponente Delphi-Referenz durchsuchenTApplicationEvents durchführen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: FormActivate, wann wird es ausgelößt?

  Alt 8. Jul 2006, 00:54
Hallo,

danke für deinen Hilfe.

Wie meinst du das, mit direkt im Quelltext??

So geht es nicht:

Delphi-Quellcode:
procedure TApplication.OnActivate;
begin
  button1.caption:=inttostr(i);
  inc(i);
end;

Aber wie sonst?

Edit:
Ps. Mit der Komponente ApplicationEvents geht es, danke
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: FormActivate, wann wird es ausgelößt?

  Alt 8. Jul 2006, 01:23
So kannst du ein Ereignis mit einer Behandlungsroutine im Quelltext verknüpfen:

Delphi-Quellcode:
procedure Form1.FormActivate (Sender: TObject);
begin
  Button1.Caption := IntToStr(i);
  Inc (i);
end;

procedure Form1.FormCreate (Sender: TObject);
begin
  Application.OnActivate := FormActivate; // <-- hier ist die Zuweisung
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#5

Re: FormActivate, wann wird es ausgelößt?

  Alt 9. Jul 2006, 11:50
Hallo,

danke, funktioniert auch wunderbar!
Diese Lösung finde ich sogar besser!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz