Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FormStyle (https://www.delphipraxis.net/91422-formstyle.html)

Z32 4. Mai 2007 17:51


FormStyle
 
Hallo,

Ich habe eine Frage zur FormStyle:

Ich habe folgenden Code, der zum speichern von Einstellungen zuständig ist.

Delphi-Quellcode:
if checkbox2.Checked=true then
begin
  ini02.WriteString('x','y','true');
  form1.FormStyle:=fsstayontop; //das geht
end
else
begin
  ini02.WriteString('x','y','false');
  form1.FormStyle:=fsnormal; //das geht nicht
end;
Mein Problem:

Wenn die Form jetzt im Vordergrund ist, und ich den Hacken wieder aus der Checkbox rausnehme, bleibt die Form im Vordergrund, jedoch wird die Einstellung an sich abgespeichert. Warum? Stimmt das "fsnormal" nicht? :gruebel:

//Edit: Textformatierung geändert :wink:

turboPASCAL 4. Mai 2007 19:15

Re: FormStyle
 
Das simmt schon so (ausser die Textformatierung ;) ). Du hast im OI die Eigenschaft
FormStyle auf fsStayOnTop stehen ? Dann setze sie mal auf fsNormal das sollte helfen.

Z32 4. Mai 2007 19:40

Re: FormStyle
 
Ich habe im OI nichts geändert. Sinn der Sache ist, dass wenn der Benutzer einen Hacken in die checkbox macht, und dann auf den übernehmen button drück, dass das form in den vordergrund kommt. Und wenn der Hacken wieder rausgemacht wird, dass das Form dann wieder normal wird, aber das geht halt nicht.

Oder hab ich da jetzt wa falsch verstanden...

Apollonius 4. Mai 2007 21:08

Re: FormStyle
 
Ich weise einfach mal ganz dezent darauf hin, dass es im Deutschen auch Haken gibt...

Bei mir funktioniert der Code wunderbar. Wenn die Checkbox aktiviert ist, dann kann ich das Formular nicht minimieren, wenn kein Haken da ist, schon. Willst du, dass das Formular minimiert wird?

Nebenbei bemerkt:
Man sollte nicht if Checkbox2.checked=true schreiben. if Checkbox2.checked reicht vollkommen aus und vermeidet Fehler.

Z32 5. Mai 2007 13:12

Re: FormStyle
 
Also,

um mein Problem nochmal genauer zu beschreiben.

Ich habe auf meinem Formular eine Checkbox. Und wenn die aktiviert ist (also der Haken :wink: gesetzt ist) soll die Anwendung in den Vordergrund und auch dort bleiben. Das geht ja auch. Aber wenn ich den Haken aus der Checkbox wieder entferne geht die Anwendung nicht wieder aus dem Vordergrund raus, d.h. sie kann nicht von anderen Fenster überdeckt werden, wie im Normalzustandt.

Und meine Frage ist jetzt: Woran kann das liegen? :gruebel:

Luckie 5. Mai 2007 13:26

Re: FormStyle
 
Dann lies mal in der Hilfe:
Zitat:

Note: It is not advisable to change FormStyle at runtime.
Nimm statt dessen lieber MSDN-Library durchsuchenSetWindowPos.

Z32 5. Mai 2007 13:49

Re: FormStyle
 
Zitat:

Zitat von Luckie
Dann lies mal in der Hilfe:
Zitat:

Note: It is not advisable to change FormStyle at runtime.
Nimm statt dessen lieber MSDN-Library durchsuchenSetWindowPos.


OK werde ich mir mal angucken, kann aber sein, dass ich dazu noch eine Frage habe...

Z32 5. Mai 2007 14:08

Re: FormStyle
 
Aja...das war ein guter Tipp...danke

jetzt gehts, ich verwende das hier:

Für Top:

Delphi-Quellcode:
 
SetWindowPos(Self.Handle ,HWND_TOPMOST,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Und für Normal:

Delphi-Quellcode:
SetWindowPos(Self.Handle ,HWND_NOTOPMOST,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

Z32 5. Mai 2007 14:36

Re: FormStyle
 
Also so langsam zweifel ich an meinem Verstand... :gruebel:

Ich benutze jetzt die beiden oben genannten Befehle. Die klappen auch, habs getestet. Einen Button mit den Befehl für Top belegt und einen mit dem Befehl für wieder normal belegt. Das hat funktioniert! Aber in meinem eigentlichen Projekt steuer ich die Fensterposition meines Hauptforms über ein kleines Einstellungsfenster. Un wenn ich da jetzt die Befehle verwende -natürlich statt self.handle formname.handle- geht mein Mainform auch in den Vordergrund, aber das Problem ist, dass es nicht mehr aus dem Vordergrund rausgeht?

Warum ? In meinem Testproject hats ja auch geklappt...oder muss ich wegen dem Fensterübergreifenden steuren etwas beachten :?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz