AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zurück
Thema durchsuchen
Ansicht
Themen-Optionen

AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zurück

Ein Thema von DevidEspenschied · begonnen am 14. Okt 2014 · letzter Beitrag vom 15. Okt 2014
Antwort Antwort
Seite 1 von 2  1 2      
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
441 Beiträge
 
Delphi 12 Athens
 
#1

AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zurück

  Alt 14. Okt 2014, 17:22
Hallo,

ich verzweifle hier noch an der AdvStringGrid Komponente von TMS. Ich habe diese auf einem Dialog platziert, und wenn ich den Dialog vom MainForm mit ShowModal aufrufe, passiert etwas merkwürdiges. Das Mainform verschwindet, was seltsam ist, der Dialog lädt und erscheint dann jedoch normal, und nach dem Schließen des Dialogs geht der Fokus nicht wieder zum Mainform zurück. Das Programm hängt für den Anwender und in Delphi kann ich das Programm nur noch abbrechen.

Wenn ich anstatt der AdvStringGrid-Komponente die normale StringGrid-Komponente nehme, funktioniert es fehlerfrei. Ich bin aber auf eine ProgressBar-Funktion der TMS-Komponente angewiesen.

Hat jemand ne Idee, wo ich da am besten weitersuchen kann (außer über den Support von TMS, den ich bereits kontaktiert habe)?

Es kann ja nicht daran liegen, dass ich die AdvStringGrid Komponente in der FormCreate des Dialogs befülle, selbst wenn ich das auskommentiere, tritt es auf. Bin über jeden Hinweis dankbar.
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 14. Okt 2014, 17:27
Hat jemand ne Idee, wo ich da am besten weitersuchen kann (außer über den Support von TMS, den ich bereits kontaktiert habe)?
das hätte ich dir empfohlen, denn die reagieren normalerweise recht schnell auf Anfragen.
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#3

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 14. Okt 2014, 18:07
Das ist ein seltsames Verhalten. Ich nutze das TMS-TAdvStrinGrid in hunderten modaler und nicht-modaler Dialoge, aber das von dir geschilderte Problem ist noch nie aufgetreten.

Mich würde ein wenig Source interessieren, also wie sieht der Aufruf des Dialogs aus der Mainform auf, was geschieht in den Methoden des Dialogs usw. Welche Einstellungen im TAdvStringGrid hast du vorgenommen? Vielleicht läßt sich etwas nachbauen zum Testen.
Udo Treichel
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
441 Beiträge
 
Delphi 12 Athens
 
#4

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 14. Okt 2014, 19:27
Also erst mal die positive Nachricht, auf einem anderen Entwicklungssystem mit den gleichen Voraussetzungen, allerdings Windows XP anstatt Windows 7, funktioniert es. Vielleicht scheint es wirklich ein komponenteninternes Problem zu sein...

Ich rufe das Formular mit folgenden Routinen modal auf, an sich unterscheidet sich das nicht von meinen anderen Dialogen:

Delphi-Quellcode:
FormDatenVergleich.FormDatenVergleichVar:=FormDatenVergleich.TFormDatenVergleich.Create(Application);
try
  FormDatenVergleich.FormDatenVergleichVar.PopupParent:=Self;
  FormDatenVergleich.FormDatenVergleichVar.ShowModal;
finally
  FormDatenVergleich.FormDatenVergleichVar.Free;
end;
Im Anhang das (stark gekürzte) Beispielformular, das unter Windows 7 zu dem beschriebenem Problem führt. Windows 8.1 werde ich morgen früh testen können.
Angehängte Dateien
Dateityp: zip AdvStringGrid_Form.zip (2,7 KB, 4x aufgerufen)
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 14. Okt 2014, 19:38
Das TMS-Ding hat doch bestimmt auch im Hintergund ein paar "unsichtbare" Fenster? (so wie auch die Grids von DevExpress)

http://www.delphipraxis.net/180093-d...sprobleme.html
$2B or not $2B
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 14. Okt 2014, 19:39
Werte mal die Rückgabe von ShowModal aus und enferne mal den Exceptionhandler.
Markus Kinzler
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
441 Beiträge
 
Delphi 12 Athens
 
#7

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 14. Okt 2014, 20:22
Werte mal die Rückgabe von ShowModal aus und enferne mal den Exceptionhandler.
Hallo,

okay, ich habe den Exceptionhandler entfernt und neu getestet.

ShowModal liefert 1 zurück, das müsste mrOK sein, genau wie der BitBtn-Schalter eingestellt ist. ModalResult liefert auch eine 1 zurück.

Auch bis zur .Free Methode läuft alles durch, dann geht erstmal nicht mehr viel. Mit dem Debugger laufen die Hintergrundprozesse des Programms (z.B. via Timer weiter), aber der Fokus geht nicht ans Mainform zurück. Und seltsam ist auch, dass das Mainform komplett verschwindet, sobald das Fenster erscheint.
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 14. Okt 2014, 22:00
Auch bis zur .Free Methode läuft alles durch, dann geht erstmal nicht mehr viel. Mit dem Debugger laufen die Hintergrundprozesse des Programms (z.B. via Timer weiter), aber der Fokus geht nicht ans Mainform zurück. Und seltsam ist auch, dass das Mainform komplett verschwindet, sobald das Fenster erscheint.
Hat sich jemand mal meinen Link durchgelesen?

Der Code im Delphi, welcher nach dem Schließen eines Fensters den Fokus "zurück" setzt, ist totalter Schrott.
Wenn in Screen.CustomForms als Nächstes ein "unsichtbares" Fenster drin steht, dann wird versucht diesem der Fokus zu geben, was natürlich nicht geht und deswegen auch die ganze Anwendung im Hintergrund landet, da kein eigenes Fenster den Fokus besitzt.
$2B or not $2B
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#9

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 15. Okt 2014, 10:18
Also, ich habe das mal hier nachgebaut, wie du es beschrieben hast - und tatsächlich verschwindet das Hauptformular, sobald man das Fenster aufruft. Ich habe dann zwei Änderungen vorgenommen in der aufrufenden Prozedur:

1. Änderung: Die Zeile
FormDatenVergleichVar := TFormDatenVergleich.Create(Application); geändert nach
FormDatenVergleichVar := TFormDatenVergleich.Create(Self); Macht sowas von keinen Unterschied.

2. Änderung: Die Zeile
FormDatenVergleichVar.PopupParent := Self; auskommentiert. Danach funktioniert der Aufruf und die Rückkehr zum Hauptformular ohne Probleme. Da ich PopupParent bislang nicht verwendet habe: Wofür benötigst du diese explizite Zuordnung bzw. ist sie für dein Programm notwendig?
Udo Treichel
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#10

AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu

  Alt 15. Okt 2014, 10:39
Weiter habe ich nun versucht, das fehlerhafte Verhalten mit einem eigenen Formular mit TMS-Grid drauf zu reproduzieren. In den Grundeinstellungen funktioniert der Aufruf des neuen Formulars auch mit dem expliziten Setzen des Popupparent beim Aufruf. Es knallt aber, wenn im aufgerufenen Formular die Eigenschaft GlassFrame.Enabled := True gesetzt wird. Ohne das Aktivieren dieser Eigenschaften funktioniert auch der Aufruf deines Formulars. Also irgendwas geht da schief im Zusammenspiel GlassFrame-Popupparent-TAdvStringGrid - das ist Sache des TMS-Supports.

Damit haste zwei Workarounds, bis TMS sich geäußert hat: 1. Weglassen des explitiziten Zuordnens von PopupParent, wenn es nicht unbedingt gebraucht wird, oder 2. Glassframe nicht aktivieren
Udo Treichel
  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 12:16 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