AGB  ·  Datenschutz  ·  Impressum  







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

TApplication.Processmessage

Ein Thema von mentaltec · begonnen am 24. Mai 2013 · letzter Beitrag vom 28. Mai 2013
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#1

AW: TApplication.Processmessage

  Alt 27. Mai 2013, 09:36
Man kann keine Ableitung von TApplication verwenden, da die verwendete Application-Instanz bereits im initialization-Abschnitt von Vcl.Controls instanziert wird (in InitControls). Selbst wenn das ginge, könntest du damit immer noch nicht auf die private Methode ProcessMessage zugreifen.

Du kannst aber alternativ HandleMessage aufrufen. Das ist eigentlich noch besser, da es die Hints und Actions aktualisiert und nebenbei auch noch das Synchronize der Threads durchlässt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
mentaltec

Registriert seit: 28. Sep 2012
60 Beiträge
 
#2

AW: TApplication.Processmessage

  Alt 27. Mai 2013, 11:06
>> könntest du damit immer noch nicht auf die private Methode zugreifen

Richtig, wo ist mein Kopf?

>> Du kannst aber alternativ HandleMessage aufrufen

Prima, das ist nah genug, da ich eh nicht mit OnIdle und TActions hantiere

Danke
  Mit Zitat antworten Zitat
knochen

Registriert seit: 26. Aug 2009
81 Beiträge
 
Delphi 2006 Professional
 
#3

AW: TApplication.Processmessage

  Alt 27. Mai 2013, 11:31
Wie sieht's denn damit aus?

Delphi-Quellcode:
  TMyApplication = class(TApplication)
  public
    function ProcessMessage(var Msg: TMsg): Boolean;
  end;

...

{ TMyApplication }

function TMyApplication.ProcessMessage(var Msg: TMsg): Boolean;
begin
  inherited;
end;


Aufruf:

procedure TForm1.Button1Click(Sender: TObject);
var
  Msg: TMsg;
begin
  TMyApplication(Application).ProcessMessage(Msg);
end;
A fool with a tool remains a fool.
  Mit Zitat antworten Zitat
mentaltec

Registriert seit: 28. Sep 2012
60 Beiträge
 
#4

AW: TApplication.Processmessage

  Alt 28. Mai 2013, 16:03
yo, funzt -- das hat sich der Schöpfer aber auch anders gedacht;
als Verfechter der "Reinen Lehre" würde ich das als Bug klassifizieren

schönes Forum : man bekommt nicht nur die richtige Antwort, sondern auch die die funktioniert

mfg

Geändert von mentaltec (28. Mai 2013 um 16:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.960 Beiträge
 
Delphi 12 Athens
 
#5

AW: TApplication.Processmessage

  Alt 28. Mai 2013, 19:04
Besser finde ich da einen class helper zu benutzen. Denn der ist dafür gedacht, dass man im Kontext der Klasse handelt, während das mit der abgeleiteten Klasse eher ein Trick ist.
Delphi-Quellcode:
// das in eine Unit in der uses-Klausel oder in die eigene Unit:
TProcessMessageApplication = class helper for TApplication
  procedure DoProcessSingleMessage;
end;

procedure TProcessMessageApplication.DoProcessSingleMessage;
begin
  Self.ProcessMessage;
end;

// und dann einfach benutzen:
Application.ProcessMessage;
Sebastian Jänicke
AppCentral
  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 21:33 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