AGB  ·  Datenschutz  ·  Impressum  







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

Problem nach 48 offenen Fenstern

Ein Thema von hoschiepeter · begonnen am 26. Mai 2011 · letzter Beitrag vom 27. Mai 2011
Antwort Antwort
hoschiepeter

Registriert seit: 4. Aug 2009
3 Beiträge
 
#1

Problem nach 48 offenen Fenstern

  Alt 26. Mai 2011, 15:51
Hallo,

Ich suche schon seit längerem ein Problem in unserer Anwendung. Es ist meinem Kollegen jetzt gelungen das Problem zu reproduzieren.

Folgendes Programm hat er erstellt.

Eine Anwendung die 48 Forms hat. Es gibt nur einen Eintrag in der Taskleiste.
Dann hat er eine Button auf einem Formular, dieser löst eine Endlosschleife aus. Auf einmal werden in der Taskleiste 2 Programme angezeigt.
Dies ist nur unter Windows Server 2003 und nicht unter XP zu reproduzieren.

Hat jemand schon einmal von diesem Problem gehört?
Ich weis auch nicht wie wir den Ursprung des Problems finden können. Bitte schickt mir ein paar anregungen. SC vom testprogramm kann ich noch zur verfügung stellen.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

AW: Problem nach 48 offenen Fenstern

  Alt 26. Mai 2011, 16:03
Ich kann soweit nicht weiterhelfen...

wenn aber ein Programm > = 48 Fenster nutzt würde ich es von von der Platte löschen denn so richtig übersichtlich kann das nicht werden.
Wäre es nicht besser auf Frames oder Pages auszuweichen ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Problem nach 48 offenen Fenstern

  Alt 26. Mai 2011, 16:06
Dito @ turboPASCAL.
Und wenn ein Prog in einer Endlosschleife hängt, ist es doch eh egal, was dann für weitere Effekte auftreten. Man muss es dann ja eh abschießen, da der Hauptfehler - das Aufhängen - ja schon passiert ist.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Problem nach 48 offenen Fenstern

  Alt 26. Mai 2011, 17:22
Bei "älteren" Delphis lag Application in der Startleiste, wärend bei neueren Delphis standardmäßig die Hauptform dort angezeigt wird.
(wurde mit Windows Vista/7 notwendig ... vorallem für die Vorschaufunktion dort)

Wenn nun die Anwendung hängt, kann es passieren, daß aus irgendwelchen Gründen beide Forms angezeigt werden.
(Application besitzt eine "versteckte" Form für Steuerungszwecke)


Abgesehn davon sollte eine Anwendung eh nicht "lange" hängen bleiben ... ist für den Benutzer nicht so schön.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Problem nach 48 offenen Fenstern

  Alt 26. Mai 2011, 22:52
Der Punkt ist: Wenn das Programm nicht mehr reagiert, übernimmt Windows die Kontrolle um zu retten was zu retten ist. Wenn Windows erkennt, dass da ein Taskleisteneintrag fehlen könnte, wird der hinzugefügt. Genauso versucht Windows ab Vista den Fensterinhalt dennoch weiter anzuzeigen und nur mit einem weißen Schleier anzuzeigen, dass das Fenster nicht mehr reagiert.

Dieses Verhalten tritt im normalen Betrieb aber nicht auf. Wenn das Programm nicht mehr reagiert, ist irgendetwas schief gegangen. Und dann hat man ganz andere Probleme als mehrfache Taskleisteneinträge...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#6

AW: Problem nach 48 offenen Fenstern

  Alt 27. Mai 2011, 07:07
Fassen wir zusammen: Ein Programm mit 1 (oder 2) Fenstern hängt und neuere Windows-Versionen produzieren manchmal 2 Fenster in der Titelleiste, aus welchen Gründen auch immer.
Da der Fragesteller nicht gefragt hat, ob 48 Formulare der Weisheit letzter Schluss sind, frage ich mich, wieso das dann kritisiert wird.
Er dachte vermutlich, das die hohe Anzahl etwas mit der Taskleisteneintragverdoppelungsproblematik zu tun hat.
Das Bild hängt schief.
  Mit Zitat antworten Zitat
hoschiepeter

Registriert seit: 4. Aug 2009
3 Beiträge
 
#7

AW: Problem nach 48 offenen Fenstern

  Alt 27. Mai 2011, 07:55
Erstmal vielen,vielen Dank für die Antworten.

Mein Beispiel ist natürlich nicht sinnvoll. Es sollte nur dazu dienen den Fehler nachzustellen.

Wir haben in unserer Anwendung einige 100 Formulare. Es passiert ab und zu, das in einem aktiven Formular eine Funktion ausgeführt wird, die ein paar Sekunden zu abarbeiten braucht. Dabei entsteht manchmal dieser Effekt, das es einen 2 Taskleisteneintrag gibt. Wird dieser Taskeintrag vom Benutzer aktiviert,so entstehen ganz neue Probleme z.B. im Rest des Programms wird dann kein Onclick - Event mehr abgearbeitet, usw. Man muss das Programm dann abschießen.

Mein Kollege hat dann diese Testapplikation in Delphi 7 gebaut und in diesem Programm passiert es immer erst ab 48 Formularen und nur auf Windows 2003 server. Auf Frames oder Pages kann aufgrund unserer Basisstruktur nicht ausgewichen werden.

Das ganze wird unter Delphi 7 entwickelt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Problem nach 48 offenen Fenstern

  Alt 27. Mai 2011, 08:02
Sind die Fenster immer schon erzeugt und nur nicht sichtbar? -> Erzeugung der Formulare erst wenn sie benötigt werden und freigabe wenn Sie nicht mehr benötigt werden, ansonsten belegen sie schon unnötigerweise GDI-Ressourcen.

Langandauernde Aktionen sollten wenn möglich in Thread verlagert werden. Falls das zu aufwending ist sollte regelmäßig die Message-Schleife des Programms bedient werden. Am einfachsten durch ein Application.ProcessMessage. Man sollte aber dafür sorgen das der User dann nicht versehentlich einen Button drückt und dann eine "parallele" Verarbeitung startet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Problem nach 48 offenen Fenstern

  Alt 27. Mai 2011, 09:26
Zitat:
PROBLEM nach 48 offenen Fenster
Ich kenne zwar viele VerwaltungsSoftware und andere in Firmen,
hab aber noch keine gesehen die soviele Fensterbenötigt
selbst bei grossen DB nicht.
Darum mal zur Aufklärung.
1. sind den alle >48 Fenster zur gleichen Zeit sichtbar?
(solls ja auch geben)
2. habt ihr euch schon mal die CPUlast und resourcen angschaut, nach dem ihr die >48 Fenster aktiviert bzw evtl wieder geschlossen habt?
3. Server2003 verwaltet die resourcen anders als XP und Vista/7
(je nach configuration)
4. für was benötitg man ein Fenster
Zitat:
das in einem aktiven Formular eine Funktion ausgeführt wird, die ein paar Sekunden zu abarbeiten braucht.
?
Selbst wenn man sagt, ich muss da Daten eingeben die dann berechnet werden, weil sie wo anders benötigt werden usw....
Ich befürchte....
Hier ist konzeptionell etwas schief gegangen
@hoschiepeter: Du schreibst,
Zitat:
Das ganze wird unter Delphi 7 entwickelt.
Dann sollte man vieles noch mal überdenken und vereinfachen!
Es ist einfach mal 100Formulare zu machen, nur weil man ein paar unterschiedlich Eingaben benötigt, die man evtl auch mit 3-10 machen kann.

Gruss alfold
  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 05:17 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