Fenster beim Start minimieren

Rund um die LCL und andere Komponenten
Antworten
Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Fenster beim Start minimieren

Beitrag von Eclipticon »

Hi,

ich moechte eine mit Lazarus entwickelte Applikation gleich minimiert starten, das Fenster soll aber vom Nutzer durch einen Klick auf den entsprechenden Eintrag im Taskbar aufgerufen werden koennen. Klingt einfach, in FormCreate

Code: Alles auswählen

WindowState := wsMinimized;
Das tut auch seinen Job, wenn man aber dieses minimierte Fenster wiederherstellen moechte, erscheint es nur in der Groesse der Titelzeile. Erst ein weiterer Klick auf den "Wiederherstellen" Button dieser verwaisten Titelzeile stellt es wieder in Originalgroesse her.

Was verdammt mach ich hier falsch? :evil:

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Fenster beim Start minimieren

Beitrag von MAC »

ka,
aber wenn doch die Titelzeile angezeit wird könnnte sein das lazarus das OnShow odr In WisdowsStateChange event aufruft.
In Einen dieser Events würde ich einfach ein

Code: Alles auswählen

WindowState := wsNormal;
Show;
versuchen...

Code: Alles auswählen

Signatur := nil;

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Fenster beim Start minimieren

Beitrag von Bauer321 »

wenns über die taskbar aufgerufen wird wäre doch auch Form.Hide ne Lösung(denk ich mal)
www.mcpatcher.net | www.hoeper.me

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Fenster beim Start minimieren

Beitrag von Eclipticon »

Hi Mac,
MAC hat geschrieben:wenn doch die Titelzeile angezeit wird könnnte sein das lazarus das OnShow odr In WisdowsStateChange event aufruft.
In Einen dieser Events würde ich einfach ein

Code: Alles auswählen

WindowState := wsNormal;
Show;
versuchen...
ungluecklicherweise werden beide Events schon aufgerufen, wenn das Formular erzeugt wird ... aus diesem Grund kann ich den Code schlecht reinpacken, weil sich sonst ja das minimiert starten ad absurdum fuehrt ...

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Fenster beim Start minimieren

Beitrag von Eclipticon »

Hier noch ein Thread, wo dieses Problem schon mal beschrieben ist:

http://lazarus.freepascal.org/index.php?topic=9860.0" onclick="window.open(this.href);return false;

Der Loesungsvorschlag dort (Application.Minimize) funktioniert leider auch bei mir nicht, das Fenster startet dann mit wsNormal, scheint aber aus dem Taskbar rauszuzoomen ...

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Fenster beim Start minimieren

Beitrag von MmVisual »

Im WindowsStateChange bei State wsNormal den Wert für Height / Width setzen
EleLa - Elektronik Lagerverwaltung - www.elela.de

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Fenster beim Start minimieren

Beitrag von Eclipticon »

Auch das funktioniert leider nicht, genausowenig Application.Restore in WindowsStateChange ...

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Fenster beim Start minimieren

Beitrag von MmVisual »

Also ich mache das so:
Bei Beenden Programm schreibe ich in die INI die Größe/Position Fenster, aber nur dann wenn das Fenster in wsNormal ist. Oder wsMaximized.

Bei Laden lese ich zu erst die Position/ Größe (in FormCreate), danach setzte ich wsXYZ je nach dem alten Status. Allerdings ist dann das Formular nur wsNormal oder wsMaximized.

Versuche man das wsMinimized erst bei FormActivate zu setzen, dann sollte es besser klappen.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Fenster beim Start minimieren

Beitrag von Eclipticon »

Hi, MmVisual!

So etwas aehnliches mache ich auch ... aber halt auch mit wsMinimized und das treibt mich in den Wahnsinn! ;-)

Bei FormActivate? Was ist das fuer ein Event?

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Fenster beim Start minimieren

Beitrag von MmVisual »

OnActivate.

Ich habe einfach verboten, dass der Minimized startet, denn wenn jemand eine EXE startet, dann will der doch die sehen. Normalerweise. Zumindest meine ;-)
EleLa - Elektronik Lagerverwaltung - www.elela.de

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Fenster beim Start minimieren

Beitrag von Eclipticon »

WindowState := wsMinimized im Handler von OnActivate bringt leider genau das selbe problematische Ergebnis wie in OnCreate oder OnShow (oder OnClick in dem Thread auf lazarus.freepascal.org, den ich oben verlinkt habe).

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Fenster beim Start minimieren

Beitrag von MmVisual »

Mache in OnShow ein Visible := False rein, dann

einen Timer, Intervall := 1.
Wenn der auslöst Timer.Enable = False; und Minimieren und Visible := True;

(Auch bei Delphi oder C++ ist es der gleiche Krampf, es liegt an den Windows internen Strukturen, die man "aushebeln" muss)
EleLa - Elektronik Lagerverwaltung - www.elela.de

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Fenster beim Start minimieren

Beitrag von Maik81ftl »

Hmmm eure Vorschläge zu dem Thema klingen Sehr gut.

ich verwende nach wie vor

Code: Alles auswählen

Visible:= false;
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Antworten