Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Fenster sichtbar machen (https://www.delphipraxis.net/192237-fenster-sichtbar-machen.html)

idefix2 2. Apr 2017 12:01

AW: Fenster sichtbar machen
 
Zitat:

Zitat von a.def (Beitrag 1366173)
Du schreibst du holst alle paar Minuten ein Bild und dann wird ein Timer aktiviert.
Aber dieses "alle paar Minuten"... ist das nicht auch ein Timer? Oder noch schlimmer. Ein Sleep?

Mit "Ausgelastet" meinte ich keine 100% Auslastung sondern einfach nur, dass der Hauptthread blockiert wird.

Nein, ich habe geschrieben:
Zitat:

Alle Minuten wird ein neues Bild geholt und untersucht. Das wird über einen Timer aktiviert, in der Wartezeit, bis der Timer ausgelöst wird, passiert nichts.
Dass es nicht an einem blockierten Hauptthread liegt (was schon deshalb nicht sein kann, weil der in der Zeit NICHTS tut), ist auch daran zu erkennen, dass über einen Klick auf das Programmicon in der Taskleiste das Formular sofort sichtbar wird.

Zitat:

Zitat von EWeiss (Beitrag 1366179)
Zitat:

Wie mache ich aus einer normalen Form ein nicht minimierbares Fenster?
BorderStyle? bsDialog

Danke, ich denke, damit ist das Problem gelöst.

Zitat:

Zitat von t.roller (Beitrag 1366175)
Mit XE7, WIN8.1 geht folgender Test-Code:
...

Seltsam: Das EXE funktioniert, aber wenn ich den Code in mein Programm einbaue, funktioniert es nicht. Ich kann es mir zwar nicht so recht vorstellen, aber könnte es einen Unterschied ausmachen, ob das Programm sich selbst minimiert hat, wie in deinem Beispiel, ober ob das Programm manuell per Klick auf den Minimieren-Button durch den Programmbenutzer minimiert wurde?

Leider lässt sich dein Projekt mit meinem Delphi 2009 nicht kompilieren, ich bekomme die Fehlermeldung
Code:
[MSBuild Fehler] 0 ist ein ungültiger Wert für den DebugInformation-Parameter der DCC-Aufgabe. Der DebugInformation-Parameter gehört zum System.Boolean-Typ.
Funktioniert das Restore des Fensters in denem Beispielprogramm immer noch, wenn du in der Button1Click Routine die Zeile
Delphi-Quellcode:
Self.WindowState:= wsMinimized;
herausnimmst und statt dessen nach dem Klick auf den Button das Fenster manuell minimierst?

t.roller 2. Apr 2017 13:51

AW: Fenster sichtbar machen
 
Zitat:

Zitat von idefix2 (Beitrag 1366183)
Funktioniert das Restore des Fensters in denem Beispielprogramm immer noch, wenn du in der Button1Click Routine die Zeile
Delphi-Quellcode:
Self.WindowState:= wsMinimized;
herausnimmst und statt dessen nach dem Klick auf den Button das Fenster manuell minimierst?

Wenn ich manuell minimiere mit dem Anklicken des BorderIcons biMinimize funktioniert es auch.

Hinweis: Der mouse_event darf NICHT über dem Element erfolgen (im Beispiel Button1), das den Test ausgelöst hat, weil sonst gleich ein neuer Test ausgelöst wird (Kettenreaktion).
Evtl. mouse_event-Parameter ändern oder Button1 verschieben.

Wegen Debugger: Starte die Compilation versuchsweise mal mit
Umsch+Strg+F9.

idefix2 2. Apr 2017 23:05

AW: Fenster sichtbar machen
 
Zitat:

Zitat von t.roller (Beitrag 1366191)
Wenn ich manuell minimiere mit dem Anklicken des BorderIcons biMinimize funktioniert es auch.

Wirklich seltsam. Es wären doch etliche Anpassungen in deinem Beispielprogramm zu machen, damit es kompiliert, die ganzen Unitnamen passen ja auch nicht. Wenn ich mehr Zeit habe, spiele ich mich damit noch (und werde hier zurückmelden, was ich gefunden habe), weil ich verstehe überhaupt nicht, was bei meinem Programm schuld daran sein könnte, dass genau der gleiche Code, der im Beispielprogramm funktioniert, bei mir nicht geht. Aber jetzt kann ich verhindern, dass das Formular überhaupt minimiert wird, deshalb kommt das fürs erste in die Lade "möchte aber doch gerne wissen warum" und nicht mehr in die Lade "brauche ich unbedingt" :)

Zitat:

Hinweis: Der mouse_event darf NICHT über dem Element erfolgen (im Beispiel Button1), das den Test ausgelöst hat, weil sonst gleich ein neuer Test ausgelöst wird (Kettenreaktion).
Evtl. mouse_event-Parameter ändern oder Button1 verschieben.
Schon klar, in meinem Programm gibt es ja gar keinen entsprechenden Button. Minimiert wurde nur manuell, und in der Timerroutine sollte das Fenster vor dem nächsten Durchlauf wiederhergestellt werden. Und das macht er hartnäckig nicht.

Luckie 3. Apr 2017 00:34

AW: Fenster sichtbar machen
 
Ich würde es immer noch direkt über HTTP probierten. Jetzt hast du so viel Zeit vergagelt... ;)

Luckie 3. Apr 2017 00:39

AW: Fenster sichtbar machen
 
Es wird ja wohl ein Image im Browser angezeigt. Man müsste also die Seite mach dem img-Tag scuhen können. Oder im JS-Script sehen, wo die Images abgelegt werden. FTP wäre noch eine Idee.

Luckie 3. Apr 2017 00:42

AW: Fenster sichtbar machen
 
Oder gibt es für die Kamera keine API?

idefix2 3. Apr 2017 08:36

AW: Fenster sichtbar machen
 
Es gibt für die Kamera keine dokumentierte API, zumindest habe ich im Internet nichts gefunden, und auch keinen dokumentierten FTP-Zugang. Es läuft ein Javascript, das habe ich mir angeschaut, aber bin daraus nicht schlau geworden. Deshalb diese Lösung, mit der ich auch nicht besonders viel "Zeit vergagelt" habe, jedenfalls nicht mehr als mit einer anderen Lösung, bei der ich möglicherweise die Hindernisse auch erst unterwegs bemerkt hätte.
Das Programm ist längst fertig und läuft seit gut einem halben Jahr einwandfrei, von "funktioniert nicht zuverlässig" kann keine Rede sein. Es ist aber jetzt zum zweiten Mal passiert, dass ein Mitarbeiter das Programm irrtümlich minimiert hat. Die Möglichkeit habe ich jetzt mit Forumsunterstützung abgestellt (schöner wärs andersrum, wenn das Programm selbstständig wieder hervorkommen würde, aber das ist nicht wirklich wichtig), und dazu habe ich dem Fenster während des Auslesens des Bildes noch die Eigenschaft stayontop verpasst. An dem Server wird normalerweise nicht gearbeitet, aber es laufen darauf ein paar "Hintergrundprogramme", die ganz sporadisch einen kurzen Bedienereingriff erfordern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.
Seite 3 von 3     123   

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