![]() |
Re: Form unschliessbar udn onTop machen?
Zitat:
Zitat:
Zitat:
Die Windows-API sieht solch einen Fall nicht vor. Ja, man kann auch tricksen mit unsauberen Mitteln was ich dir aber nicht zeige, da so etwas Murx ist. Man kann ermitteln welches Fenster in oberster Ebene sitzt und seines darübersetzen. Das kann bei Fullscreenanwendungen zu unschöhnen Effeckten wie flackern etc. führen. Also, mache es so wie die meisten (guten) Programierer und nutze einfach "fsStayOnTop". Gruss... |
Re: Form unschliessbar udn onTop machen?
Zitat:
Aber frmAnzeige bzw. Form2 da funktioniert es nicht, auch wenn man
Delphi-Quellcode:
macht!
procedure TfrmAnzeige.chkBoxTopClick(Sender: TObject);
begin if chkBoxTop.Checked then frmAnzeige.FormStyle := fsStayOnTop else frmAnzeige.FormStyle := fsNormal; end; Das ist es ja was ich die ganze zeit versuche, eine 2.Form, die nicht die MainForm ist, onTop zu bringen! |
Re: Form unschliessbar udn onTop machen?
Vlt. mal ein ganz trivialer Ansatz, bevor ihr euch noch gegenseitig die Köpfe einschlagt:
Novo, wäre es für dich vlt. möglich, das Fenster was oben bleiben soll, als MainForm zu machen? So musst du zwar ein paar andere Probleme umgehen (zB. das deine Applikation beim schließen der eigentlichen Hauptform jetzt nicht mehr ausgeht), aber das hier wäre gelöst :-D (Weiß ya nicht, wie groß und wichtig das Projekt ist) [edit] Oder wo wir schon dabei sind: Je nachdem könnte man aus der "kleinen Form" eine eigene Applikation machen. Ich weiß ya nicht woher sie ihre Daten bezieht. Sollte sie diese vom Hauptprogramm bekommen, so müssten diese natürlich noch über einen der vielen Wege übergeben werden. Aber das Problem, dass fsStayOnTop nur bei der Hauptform funktioniert, wäre somit erledigt - und das auch noch auf eine recht elegante Weise. [/edit] |
Re: Form unschliessbar udn onTop machen?
Zitat:
sollte bei 2Forms möglich sein xD Damit wäre das Problem nicht wirklich gelöst, sondern umgangen. Es kann doch nicht wahr sein, dass man nicht eine x beliebige Form onTop machen kann! Mfg novo |
Re: Form unschliessbar udn onTop machen?
Liste der Anhänge anzeigen (Anzahl: 1)
@Novo:
möchtest du sowas machen? Siehe Anhang: (nicht mit WIN + D minimierbar, jedenfalls bei mir, WinXP) |
Re: Form unschliessbar udn onTop machen?
Zitat:
nu erzähl mal, wie du das angestellt hast!!! :cheers: |
Re: Form unschliessbar udn onTop machen?
Das ist nicht schwer:
Delphi-Quellcode:
Durch das Setzen von Params.WndParent auf "Desktop" erscheint für eine Form ein neuer Eintrag in der Taskleiste. Das kannst du auch verhinden, jedoch möcht ich dir das nicht vorkauen.
type
TForm1 = class(TForm) { ... } procedure FormCreate(Sender: TObject); private { Private-Declarations } protected procedure CreateParams(var Params: TCreateParams); override; end; implementation { ... } var MitRand : boolean = True; procedure TForm1.FormCreate(Sender: TObject); begin if MitRand then // Wenn du nen Fensterrahmen haben willst, dann musst du "Minimieren" deaktivieren BorderIcons := BorderIcons - [biMinimize] else // Oder gleich "Keinen Fensterrahmen" setzen BorderStyle := bsNone; // Nun noch nach ganz oben FormStyle := fsStayOnTop; end; procedure TForm1.CreateParams(var Params: TCreateParams); begin inherited; // Flags setzen Params.Style := Params.Style or WS_OVERLAPPED; // Parent auf "Desktop" setzen Params.WndParent := GetDesktopWindow; end; Grüße |
Re: Form unschliessbar udn onTop machen?
Danke danke danke!
Es funktioniert! Hat sich die mühe doch gelohnt, 3 Seiten lang drauf zu beharren, dass sowas geht! PS: habe hier nützliche Codeschnipsel zum mannipulieren von Windows, Fenster und co gepostet! ![]() Mfg novo //Thema beantwortet! |
Re: Form unschliessbar und onTop machen?
das so etwas geht hat niemand abgetrtitten. Es ging immer nur um die Behauptung das es möglich ist das ein Fenster IMMER ganz oben bleibt.
|
Re: Form unschliessbar und onTop machen?
Hallo,
Entschuldigung, dass ich diesen alten, emotionalen Thread wieder aufgreife, aber ich habe da mal eine Frage zu: Kann man zur Laufzeit des Programmes diese Einstellung (Form immer im Vordergrund) auch wieder rückgängig machen, wenn man z.B. möchte, dass der Benutzer dies auswählen kann (immer Vordergund ja oder nein)? CreateParams wird ja nur bei Erstellung der Form aufgerufen, und da ich eher Hobbyprogrammierer bin habe ich keinen Ahnung wie man es anstellt die Parameter neu einzulesen. Wäre für einen Tipp sehr dankbar. Mit freundlichen Grüssen, PinKing2. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 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