AGB  ·  Datenschutz  ·  Impressum  







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

In welchem Package ist TForm drin?

Ein Thema von Codehunter · begonnen am 11. Mai 2009 · letzter Beitrag vom 11. Mai 2009
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

In welchem Package ist TForm drin?

  Alt 11. Mai 2009, 15:39
Ich steh grad etwas auf dem Schlauch: In welchem Package ist bei Delphi 5 die TForm-Klasse drin? Ich möchte endlich ein OnAfterShow-Ereignis implementieren weil mir das langsam zu doof wird daß bestimmte Sachen immer ausgeführt werden bevor das Form angezeigt wird und damit der Formularaufbar unnötig lange dauert.

Ich habe das schon oft gebraucht und jedesmal drumrumgewurschtelt aber jetzt will ich mir das mal implementieren. Der Einfachheit halber gleich in den Basisroutinen der VCL.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: In welchem Package ist TForm drin?

  Alt 11. Mai 2009, 15:44
Zitat von Codehunter:
Ich steh grad etwas auf dem Schlauch: In welchem Package ist bei Delphi 5 die TForm-Klasse drin?
Forms.pas sollte das sein
Zitat:
Der Einfachheit halber gleich in den Basisroutinen der VCL.
Ganz, ganz schlechte Idee ... leite die ein Formular ab, implementiere das Event und lege es in die Objektablage. Vorhandenen Formularen kannst du das neue Formular durch manuelles editieren der .pas und .dfm Datei unterschieben
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: In welchem Package ist TForm drin?

  Alt 11. Mai 2009, 17:17
Ist schon klar das mit der Objektablage. Das Problem dabei ist: Delphi 5 zeigt Eigenschaften und Ereignisse von TForm-Abkömmlingen nicht im Objektinspektor an. Das hab ich nämlich schon oft versucht, hat nie geklappt. Und jedesmal die Handler zur Laufzeit zuweisen, och nöööö.

Ich hab schon öfter am Basiscode rumgespielt, so manchen Backport aus neueren Delphi-Versionen vorgenommen usw.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: In welchem Package ist TForm drin?

  Alt 11. Mai 2009, 17:19
Zitat von Codehunter:
Das Problem dabei ist: Delphi 5 zeigt Eigenschaften und Ereignisse von TForm-Abkömmlingen nicht im Objektinspektor an.
Wofür brauchst du denn dafür ein Event. Eine virtuelle Methode macht das selbe. Und die kannst du über Ctrl+Space innerhalb der Klassendeklaration komplett automatisch einfügen lassen (wenn der Vorfahr sie deklariert hat).
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: In welchem Package ist TForm drin?

  Alt 11. Mai 2009, 17:26
Du kannst auch das Ereignis OnActivate benutzen und nach der Anzeige dieses Ereignis löschen. Damit hast du doch praktisch schon alles fertig...
Delphi-Quellcode:
procedure TFormX.FormActivate(Sender: TObject);
begin
  OnActivate := nil;

  ...

end;
// EDIT:
Nachteil bei einem solchen Vorgehen: Der Benutzer sieht schon das Formular und ärgert sich, dass es noch nicht reagiert. Deshalb nehme ich eher einen SplashScreen, wenn es wirklich zu lange dauert.

Und bei meinen besten Projekten benutze ich Threads, das ist zwar am aufwendigsten, aber für den Benutzer auch deutlich am besten.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: In welchem Package ist TForm drin?

  Alt 11. Mai 2009, 18:11
Zitat von jaenicke:
Und bei meinen besten Projekten benutze ich Threads, das ist zwar am aufwendigsten, aber für den Benutzer auch deutlich am besten.
Hab ich mich auch ein paar Mal dran versucht, hat aber jedesmal geknallt zur Runtime. Entweder war ich zu doof oder der Compiler hat einen an der Murmel, jedenfalls liefen nicht mal Beispiel-Projekte aus anderen Tutorials.

Hab mal einen Systemdienst programmiert der permanent auf der seriellen Schnittstelle lauscht. Den hätte ich auch gern in einen separaten Thread gebracht. Denn so ist das Ding jetzt permanent auf 100% CPU-Last wegen der Leseschleife. Aber das ist ein anderes Thema.
  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 14:12 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