Autor Beitrag
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 19.07.13 11:47 
Ich verwende folgenden Code:
ausblenden Delphi-Quelltext
1:
2:
3:
    Application.MainForm.Hide;
    frmXYZ.ShowModal;
    Application.MainForm.Show;

Wenn ich die sichtbare Form jetzt minimiere, erscheint sie links unten auf dem Desktop, wie in einer MDI-Anwendung. Außerdem erscheint nichts in der Taskbar, sobald das MainForm.Hide durchgeführt wurde.

Ziel soll eigentlich sein, dass der Anwender nur ein Fenster der Anwendung sehen kann. Natürlich kann er andere Anwendungen daneben verwenden und ist durch die Arbeit sicher auch mal gezwungen diese Beispiel-Anwendung zu minimieren. Es soll sich aber das übliche Verhalten unter Windows nicht ändern.

Hat jemand einen Tipp, woran das liegt oder was ich anders machen sollte?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 19.07.13 14:17 
Bei Delphi 2005 (laut Profil) gab es noch keine eingebaute Möglichkeit die weiteren Fenster auf der Taskleiste anzeigen zu lassen. Sprich da wirst du das selbst machen müssen:
delphi.about.com/od/...logs/l/aa073101b.htm

(Ab Delphi 2007 gibt es Application.ShowMainFormOnTaskbar.)


Zuletzt bearbeitet von jaenicke am Fr 19.07.13 16:45, insgesamt 1-mal bearbeitet
jasocul Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 19.07.13 14:36 
Ich verwende D2005 und XE2. Das Problem will ich in XE2 lösen. (Stehen auch beide im Profil :wink: )
Application.ShowMainFormOnTaskbar kennt der Compiler nicht. Zumindest mault er rum, dass er es nicht kennt. :?

Ich komme leider erst Montag wieder dazu, dass im Detail zu prüfen. Trotzdem schonmal Danke für den Ansatz.
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Fr 19.07.13 15:00 
Hallo,

Es ist keine Methode, sondern eine Property: Application.MainFormOnTaskbar := true;.
Bei meinem Minesweeper habe ich das gleiche Problem, allerdings wird das ShowModal-Formular bereits im OnFormShow-Ereignis zum ersten Mal aufgerufen, dort zumindest will sich auch so kein Taskleisteneintrag zeigen.

Mein Delphi 2010 packt Application.MainFormOnTaskbar := true; übrigens schon automatisch in die .dpr-Datei zum Projekt.

Grüße,
Daniel

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)


Zuletzt bearbeitet von Hidden am Fr 19.07.13 16:23, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 19.07.13 16:19 
user profile iconjasocul hat folgendes geschrieben Zum zitierten Posting springen:
Ich verwende D2005 und XE2. Das Problem will ich in XE2 lösen. (Stehen auch beide im Profil :wink: )
Da du da keins fett markiert hast, gehe ich immer vom Worst Case aus. :mrgreen:

user profile iconjasocul hat folgendes geschrieben Zum zitierten Posting springen:
Application.ShowMainFormOnTaskbar kennt der Compiler nicht. Zumindest mault er rum, dass er es nicht kennt. :?
Dann fehlt an der Stelle die Unit Forms, aber das sollte ohnehin normalerweise nur im Projektquelltext vor dem Erzeuge des ersten Formulars gesetzt werden.
// EDIT: Ok, MainFormOnTaskbar ohne Show.


Zuletzt bearbeitet von jaenicke am Fr 19.07.13 16:46, insgesamt 1-mal bearbeitet
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Fr 19.07.13 16:24 
Da hat sich die wesentliche Information bei mir oben ver-Freud'scht: Die Property heißt MainFormOnTaskbar, nicht ShowMainFormOnTaskbar. :idea:

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
jasocul Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Sa 20.07.13 12:25 
MainFormOnTaskbar? Jaja, manchmal sind es Kleinigkeiten, die zu Verwechselungen führen.
Montag gehe ich das nochmal an und berichte dann hier. Zuhause habe ich nur D2005 und kein XE2 und kann das daher nicht testen.
jasocul Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 22.07.13 08:15 
Das hatte auch keine Wirkung. Sobald ich Application.MainForm.Hide; ausführe, ist kein Eintrag mehr in der Taskbar. Die Property war auch schon standardmäßig gesetzt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 22.07.13 08:36 
Ja, und wenn du dazu noch den Link oben nimmst und das CreateParams überschreibst, wirst du jedes Fenster einzeln in der Taskleiste haben, wenn es sichtbar ist.
(Mit SetWindowLong lässt sich das auch dynamisch setzen.)

Für diesen Beitrag haben gedankt: jasocul
jasocul Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 22.07.13 08:51 
Vielen Dank.

Ich hatte den Link zwar schon einmal aufgerufen, aber inhaltlich ignoriert, da ich die Anwendung in XE2 programmiere. Vermutlich werde ich das dann erstmal dynamisch einbauen.
Sollte ich dabei noch auf Probleme stoßen, melde ich mich hier wieder. Aber so kompliziert ist das ja nun auch wieder nicht.
whitef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 202
Erhaltene Danke: 1

Windows X
Delphi XE X
BeitragVerfasst: So 15.12.13 22:08 
hi,
ich habe nochmal eine anschlussfrage:

ich würde gerne meine mainform "hiden" und form2 anzeigen lassen.
beim hide vorgang wird ja der task auch von der taskbar "gehidet".
Ein Application.MainFormOnTaskBar := True; bringt bei diesem Vorgehen auch keine Lösung.

Wie löst ihr soetwas?

ausblenden Delphi-Quelltext
1:
2:
3:
mainform.hide;
Application.MainFormOnTaskBar := True;
form2.show;


VG
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Mo 16.12.13 10:49 
Zitat aus der Delphi-Hilfe :
Zitat:
MainFormOnTaskBar sollte beim Start gesetzt werden und während der gesamten Anwendungsdauer erhalten bleiben. Das Ändern dieser Eigenschaft zur Laufzeit könnte unerwartetes Verhalten verursachen.