Entwickler-Ecke
Windows API - Prob. mit TPopupMenu in TNA - Anwendungen
FaTaLGuiLLoTiNe - Fr 16.05.03 13:46
Titel: Prob. mit TPopupMenu in TNA - Anwendungen
Hallo zusammen!
Ich habe gerade eine Anwendung geschrieben, welche sich statt in die Taskbar in die Win TNA "minimiert". Ich benutze ein TPopupMenu, um die unsichtbare Anwendung auf den Screen zurückzuholen. Das klappt alles auch.
Ich hatte noch ein Problem mit dem Menü, weil es immer sichtbar geblieben ist, wenn man nicht direkt auf einen Menüeintrag oder auf das Programmformular klickt. Dieses Problem habe ich behoben, indem ich SetForegroundWindow(Handle) benutze. Dadurch habe ich jetzt allerdings ein neues Problem, weil SetForegroundWindow auch Fenster in den Vordergrund holt, die ein anderes modal geöffnet haben!
Das heisst wenn ich auf das Tray Icon drücke während z.B. ein Dialog modal offen ist, dann kommt plötzlich das Hauptfenster wieder in den Vordergrund ... es ist aber weiterhin inaktiv.
Dieses Verhalten finde ich, gelinde gesagt, Sch***e.
Gibt es keine bessere Alternative zu SetForegroundWindow()?
Delete - Fr 16.05.03 14:50
Wenn dein Programmfenster offen ist, bin ich der Meinung, sollte das Icon in der TMA von deinem Programm sowieso verschwinden.
FaTaLGuiLLoTiNe - Fr 16.05.03 15:20
Freut mich das zu hören aber das ist 1. meine Anwendung und 2. würde mein Chef sicher nur ungerne das Pflichtenheft umschreiben. (Nein, es gibt kein Plichtenheft, nenn es dramaturgische Überspitzung :wink: )
Ich bin immer für Tips offen aber würde lieber meine Frage beantwortet haben als zu wissen wie ich meine Oberfläche zu programmieren habe.
Nix für ungut.
Ausserdem machen professionelle Anwendungen sowas auch (z.B. der G6 FTP Server) und ich finde es nicht wirklich unsinnig.
Delete - Fr 16.05.03 15:28
Öhm, wo ist das Problem, wenn es deine Anwendung ist? Dann mach deinen Chef klar, dass es nur verwirrt, wenn das Programm offen ist und das Icon in der TNA sichtbar und das es das Problem löst.
Zweitens nicht alles was Geld kostet und von Programmierern programmiert wurde, die bezahlt werden, muß gut sein und als Vorbild dienen.
FaTaLGuiLLoTiNe - Fr 16.05.03 15:43
Ich halte es schon für sinnvoll das Icon nicht auszublenden, weil es nicht nur dazu da ist um das Hauptfenster wieder sichtbar zu machen, sondern weil da auch Befehle drin sind, die man evtl mal schnell ausführen möchte ohne erst das Hauptfenster zu reanimieren.
Sagen wir einfach, dass es für die meisten Anwendungen sicher sinnvoll ist deinen Weg zu gehen, aber für mein Programm stelle ich mir etwas anderes vor.
Aber da du mir ja nicht nur nicht helfen zu können, sondern augenscheinlich auch gar nicht zu wollen scheinst, ist die Diskussion eh schon jetzt was für die Tonne.
Delete - Fr 16.05.03 16:01
Falls du es nicht gemerkt hast: Meine Hilfe bestand darin dir andere Wege auf zu zeigen.
Der Thread ist nicht durch mich in der Tonne , sondern daran bist du selber Schuld. Dies ist ein
Diskussions-Forum, wo man
mögliche Lösungen diskutieren kann. Und ich habe eine solche Lösungs-
Diskussion begonnen. Und ich hätte auch nicht mehr geantwortet nach diesen den deinigen Absatz:
| Zitat: |
Ich halte es schon für sinnvoll das Icon nicht auszublenden, weil es nicht nur dazu da ist um das Hauptfenster wieder sichtbar zu machen, sondern weil da auch Befehle drin sind, die man evtl mal schnell ausführen möchte ohne erst das Hauptfenster zu reanimieren.
|
damit wäre für mich alle geklärt gewesen, du hast mir damit plausibel geschildert, warum du dein Icon in der TNA trotz, geöffnetem Hauptfenster, anzeigen willst. Dies verstehe ich und für mich wäre die Sache gegessen gewesen - fertig.
FaTaLGuiLLoTiNe - Fr 16.05.03 16:26
Okay, dann entschuldige meinen etwas frevelhaften Ton, lass Gras (Yeah, Gras) über die Sache wachsen und überleg' mal ob du mir nicht vielleicht doch noch helfen kannst, da ich dir ja jetzt klar gemacht habe dass ich durchaus weiss was ich vorhabe und das auch begründen kann (obwohl ich immer noch nicht weiss warum ich das muss).
FaTaLGuiLLoTiNe - Mi 21.05.03 12:32
Titel: Mögliche Antwort
Hab' das Problem gelöst ... sieht jedenfalls ganz gut aus.
Wenn man Application.BringToFront benutzt, hat man den gleichen Effekt (das Menü verschwindet korrekt) und das ganze klappt auch bei modal geöffneten Fenstern, weil ja die Anwendung und nicht das Hauptfenster in den Vordergrund geholt wird.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!