AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

OnActivate wird nicht gefeuert?

Ein Thema von skoschke · begonnen am 10. Jan 2019 · letzter Beitrag vom 10. Jan 2019
Antwort Antwort
skoschke

Registriert seit: 6. Jan 2009
162 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

OnActivate wird nicht gefeuert?

  Alt 10. Jan 2019, 14:01
Hallo,

ich erzeuge mehrere Formulare zur Laufzeit, die in einer Scrollbox liegen sollen:
Delphi-Quellcode:
  txtForm := TTextForm.create(ScrollBox1);
  txtForm.parent := ScrollBox1;
Klick ich nun in eines dieser Formulare, hatte ich erwartet dass es nach vorn rückt und OnActivate gefeuert wird, das passiert allerdings nicht!

Hat jemand eine Idee warum?

Ciao
Stefan

Nachtrag:
Auch OnClick kommt nicht!

lasse ich txtForm.Parent := ... weg kommen die Events!

Geändert von skoschke (10. Jan 2019 um 14:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.336 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: OnActivate wird nicht gefeuert?

  Alt 10. Jan 2019, 14:38
Forms in irgendwas zu parenten führt zu unerwartetem Verhalten. Das ist in einigen Threads hier bereits dokumentiert. Arbeite lieber mit Frames oder Panels oder sonstwas, aber eine Form fühlt sich nur wohl (aka reagiert erwartungskonform), wenn ihr Parent der Desktop ist.

Sherlock
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
162 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: OnActivate wird nicht gefeuert?

  Alt 10. Jan 2019, 15:27
Ich hatte ein Brett vor dem Kopf!

Hauptformular wird ein fsMDIForm, die Unterfenster fsMDIChild (die werden einfach mit HauptForm als Owner erzeugt ohne den Parent zu setzen) und die Scrollbox kommt weg...

Jetzt verhält sich alles wie gewünscht

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.336 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: OnActivate wird nicht gefeuert?

  Alt 10. Jan 2019, 15:36
Das ist natürlich eine andere Situation, kann aber bald zu anderen Problemen führen, da MDI deprecated ist, dieser Quelle zufolge bereits seit Win98.

Sherlock
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf