AGB  ·  Datenschutz  ·  Impressum  







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

TApplication für Komponente

Ein Thema von xZise · begonnen am 11. Mai 2007 · letzter Beitrag vom 12. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

TApplication für Komponente

  Alt 11. Mai 2007, 11:09
Wie kann ich auf "Application.Terminated" und "Application.ProcessMessages" von einer Komponente aus zugreifen?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TApplication für Komponente

  Alt 11. Mai 2007, 11:16
Uses-Anweisung um Forms ergänzen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: TApplication für Komponente

  Alt 11. Mai 2007, 11:38
Warum? Wer Application.ProcessMessages in einer Komponente braucht hat die VCL nicht richtig verstanden.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: TApplication für Komponente

  Alt 11. Mai 2007, 11:48
Zitat von Robert Marquardt:
Warum? Wer Application.ProcessMessages in einer Komponente braucht hat die VCL nicht richtig verstanden.
Dast stimmt natürlich auch.
Mit Application.ProcessMessages kann man in teufels Küche kommen wenn man nicht aufpasst und sich "versehentlich" während Berechnungen das berechnende Objekt löschen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: TApplication für Komponente

  Alt 11. Mai 2007, 14:33
Okay... ProcessMessages ist wirklich ungünstig Dass kann dann der Nutzer machen. Oder ich lagere es in einen Thread aus.
Aber ich bräuchte noch terminated, weil ich eine Pseudo-Endlosschleife habe ...
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: TApplication für Komponente

  Alt 11. Mai 2007, 14:37
Wieso? Wenn du die Arbeit in einen Thread auslagerst, dann beendest du den Thread natuerlich im Destruktor.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: TApplication für Komponente

  Alt 11. Mai 2007, 15:30
Hab ich nicht klug gesagt ^^ ich meinte damit, die Threadlose möglichkeit
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
309 Beiträge
 
Delphi 12 Athens
 
#8

Re: TApplication für Komponente

  Alt 11. Mai 2007, 16:34
Zitat von Robert Marquardt:
Warum? Wer Application.ProcessMessages in einer Komponente braucht hat die VCL nicht richtig verstanden.
Könntest Du bitte das nochmal erklären, was Deiner Meinung nach das Problem der Verwendung von Application.ProcessMessages in einer Komponente ist?
Mich würden Details ernsthaft interessieren.

Danke,
Christoph
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: TApplication für Komponente

  Alt 11. Mai 2007, 17:25
Hallo Christoph,

Robert hat das sicher nicht so pauschal gemeint, wie er es geschrieben hat. Kernstück der Indy AntiFreeze Komponente ist beispielsweise Application.ProcessMessages und auch die VCL-Macher haben bei der Kapselung der IDAPI-Schnittstelle einen entsprechenden Herzschrittmacher eingebaut. Tatsache ist, dass man für sowas sehr gute Gründe haben und genau verstehen sollte, was man da tut. Normalerweise werden die Methoden einer Komponente so entworfen, dass sie in kürzest möglicher Zeit die Nachrichten des Dispatchers abarbeiten und die Kontrolle wieder zurückgeben.

Freundliche Grüße
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: TApplication für Komponente

  Alt 11. Mai 2007, 18:16
Die Gemeinheit bei Application.ProcessMessages ist das eben Messages verarbeitet werden. Die eine oder andere Komponente mag es ueberhaupt nicht wenn das passiert. Ltztlich werden alle Methoden/Events von anderen Methoden aufgerufen. Man kann da in garstige Rekursionen laufen. Zusatzlich kann es sehr lange dauern bis ProcessMessages abgearbeitet ist.
Man sollte also ProcessMessages meiden. Eine Komponente sollte passiv am Tropf der Messages haengen. Hintergrundarbeiten macht ein Thread.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:44 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