![]() |
Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
mittels folgendem Code versuche ich eine Form anzeigen zu lassen, ohne das sie den Fokus erhält (Code aus dem Forum).
Delphi-Quellcode:
Es funktioniert auch soweit. Also soweit dass die Form ohne Fokus angezeigt wird.
If sichtbar then
ShowWindow(Handle, SW_SHOWNOACTIVATE) else ShowWindow(Handle, SW_HIDE); Leider seh ich nur ein weisses Feld in der Größe der Form, dummerweise aber total leer. Auf dem Bild sieht man es. Ich sollte noch erwähnen, dass folgende Eigenschaft gesetzt ist:
Delphi-Quellcode:
.
BorderStyle = bsNone
Mach ich aber
Delphi-Quellcode:
seh ich alles auf der Form. Nur hat die Form damit auch den Fokus, was ich aber nicht möchte.
Show
Was ist da faul? - Bzw. wie bekomme ich es hin, dass die Form keinen Fokus hat, dafür aber alles sichtbar ist? |
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Passiert was, wenn du ein
Delphi-Quellcode:
hinterherschickst?
Perform(CM_VISIBLECHANGED, Ord(sichtbar), 0);
Ist Visible danach True? |
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Zitat:
|
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Und wenn du da nach das Fenster neu zeichnen lässt?
|
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Zitat:
Es ändert sich nichts an der Sichtbarkeit der Komponenten auf der Form - sie werden nicht angezeigt. |
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Delphi-Quellcode:
Das sollte helfen. Beim SW_HIDE natürlich Visible := False setzen.
ShowWindow(Form3.Handle, SW_SHOWNOACTIVATE);
Form3.Visible := True; |
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Delphi-Quellcode:
?
ShowWindow(Handle, SW_SHOWNOACTIVATE);
Visible := True; [edit] Ups, wo kommt den jbg denn urplötzlich her. :shock: Aber scheinbar sieht es so gut aus. :) |
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Zitat:
Habs jetzt so gemacht:
Delphi-Quellcode:
Stimmt die Erklärung, dass mit ShowWindow "an der VCL vorbei" das Fenster angezeigt wird und deswegen die VCL eigentlich gar nicht weiss das das Fenster angezeigt werden soll. Deswegen muss mit Visible das Fenster auch für die VCL sichtbar gemacht werden?!
If sichtbar then
begin ShowWindow(Handle, SW_SHOWNOACTIVATE); Visible := true; Repaint; BringToFront; end else begin ShowWindow(Handle, SW_HIDE); Visible := false; end; |
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
Ich weiß das ich gerade gefahrlaufe Threadnecrophelie zu betreiben, aber da ich gerade vor dem selben Problem stand(was hiermit gelößt wurde) möchte ich noch meine 2Cent zur letzten Frage des Threaderstellers abgeben(falls später nochmals jemand hier drauf googlet):
In diesem speziellen Fall geht das nutzen von ShowWindow sogar soweit, das nichtmal irgendwelche Events von einer Control/Form getriggert werden. Das dürfte bestätigen, das hier an der VCL vorbeigearbeitet wird, da diese dann auch außen vor ist, was Message-Abarbeitung angeht. Sowas ist also wohl mit Vorsicht zu genießen. MFG Memnarch |
AW: Inhalt einer Form bei Aufruf "SW_SHOWNOACTIVATE" nicht sichtbar
weil das Thema sowieso aufgewärmt wurde, muss ich gleich noch ein Problem loswerden:
Bei WinXP (ja, das gibt's noch) seh ich leider den Inhalt der Form nicht muss man dabei etwas (anderes) beachten? [Edit] Kommando zurück - das Problem liegt auf meiner Seite (dumme If-Anweisung wird ned true) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz