![]() |
MainForm minimieren - UnterForm sichtbar
Hi,
ich habe bei einem Projekt eine 2.Form, die ich mit dem Start von Form1 anzeigen lasse. Wenn ich aber nun die MainForm Form1 minimiere, wird auch automatisch Form2 minimiert, was ich aber garnicht möchte. Wie kann ich das verhindern? Gruß Yheeky |
Hi,
du könntest im OnShow von Form2, form1.Hide oder minimize, schreiben. Grüsse, Daniel :) |
Beide Formen werden aber zur gleichen Zeit angezeigt. Das geht ja dann so garnicht. Ich habe die beiden Formen vor mir und möchte Form1 minimieren und dann minimiert sich Form2, was sie aber nicht soll.
Gruß Yheeky |
Hi,
habs misverstanden, sorry. Du könntest aber im OnMinimize von Form1, Form2.Show; schreiben. Ich kanns nicht ausprobieren, sollte aber gehen. Grüsse, Daniel :) |
Eine Form hat kein OnMinimize Ereignis oder muss ich das irgendwie in den Quellcode schreiben?
Gruß Yheeky |
Neuer Versuch. Ich hab leider kein Dlephi da und kann deswegen nicht nachschauen.
das Ereignis OnHide tritt auf, wenn das Formular verborgen wird, also auch dann, wenn Close mit caHide aufgerufen wird. Probiers mal. Ich bin mir nicht sicher ob Onhide auftritt wenn man es minimiert. Vielleicht kann mal jemand in der OH nachschauen, ich kanns nicht. Grüsse, Daniel :) |
Hallo yheeky,
es kommt darauf an, wie du das Hauptformular minimierst. Nutzt du dazu die Minimize Methode von TApplication werden auch die anderen Formulare, die ja Kinder von Application sind minimiert. Du kannst aber folgendes in OnCreate machen: [code:1:c4de3a7777] procedure TForm1.FormCreate(Sender: TObject); begin |
Hi,
hat leider auch beides nicht funktioniert :( Weiss noch jemand was? Gruß Yheeky |
Hi,
Überschreibe die CreateParams und weise dem Parent-Handle der 2. Form den Desktop zu.
Code:
unit Unit2;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm2 = class(TForm) private { Private-Deklarationen } procedure CreateParams(var Params: TCreateParams); override; public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.DFM} procedure TForm2.CreateParams(var params: TCreateParams); begin inherited CreateParams(params); params.ExStyle := params.ExStyle or WS_EX_APPWINDOW; params.WndParent := GetDesktopwindow; end; end. |
Hallo Yheeky,
ich habe den Code bei mir ausprobiert (den mit WindowState) und er funktioniert. Was passiert denn bei dir? Wie wird deine Form2 (die, die nicht verkleinert werden soll) erzeugt? Automatisch oder erzeugst du sie manuell mit TForm.Create? Falls letzteres zutrifft, welchen Parameter übergibst du bei Create? |
@Mr.Spock: Also ich habe es so komischerweise nicht hinbekommen, aber wenn du sagst, dass der Code geht, scheine ich da noch irgendwas falsch zu machen.
@Toms: Funzt einwandfrei! Danke! @All: Trotzdem danke für eure Bemühungen! Gruß Yheeky Nachtrag: Eine Frage hätte ich noch: Wie kann ich den Eintrag in der Taskbar verstecken? Ich denke mal, dass das möglich ist, oder? |
So z.B.
Code:
Oder, wie Luckie sagen würde: Stil auf "bsToolWindow" einstellen.
ShowWindow(Application.Handle,SW_HIDE);
Code:
SetWindowLong(Application.Handle,
GWL_EXSTYLE, GetWindowLong(Application.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW); |
Sorry, falsch ausgedrückt :o
Ich möchte den Taskbareintrag von der Form2 ausblenden, nicht von der Application allgemein. Gruß Yheeky |
:idea: ... Achtung, Ironie! - Wenn ich ein Programmierer wäre, dann würde ich testen, ob die Änderung von "Application.Handle" in "Form2.Handle" was bringt ... :idea:
|
Witzbold...*applaus* geht natürlich net...hab das natürlich als erstes getestet, ging aber nicht. Er hat die Form dann garnicht mehr angezeigt...
Ich hoffe mir kann noch jemand helfen, von - Entschuldigung - "dummen" Kommentaren kann ich mir nichts kaufen. Sorry @MathiasSimmack, aber das hätte man auch anders formulieren können. Gruß Yheeky |
Zitat:
+ Zitat:
|
@Yheeky:
Da du offenbar die CreateParams-Methode von toms benutzt, zitiere ich an der Stelle einfach mal das PSDK: Zitat:
------------ Nachtrag: Außerdem gibt´s in deiner ganzen Idee (vielleicht) einen Widerspruch. Ist die Form2 ein Dialog? Ein Toolwindow? Oder ist sie ein ganz normales Fenster mit den Buttons Minimieren, Maximieren. Dann wär´s interessant zu erfahren, wie der User die minimierte Form wieder erscheinen lassen soll, wenn du ihm keinen Knopf in der Taskbar zugestehst? |
Yo, ist ein Ansatzpunkt. Steht da auch im PSDK wie man den Eintrag in der Taskleiste verbergen kann?
@Toms: Die Frage hat sich auf meinen Nachtrag - ein paar Postings vorher - bezogen... Gruß Yheeky |
ToolWindows haben keinen Button in der Taskleiste.
|
Zitat:
Zitat:
Editiert von MathiasSimmack für Yheeky |
Könnte mir das jemand sagen? Hab das PSDK nicht...
Gruß Yheeky |
Erstmal folgendes...ich fand deinen ironischen Kommentar einfach nicht so gut gelungen. Ich habe hier was gefragt und wenn ich es wüsste, würde ich nicht fragen. Logisch war es, ja, aber ich hatte es auch schon getestet und es hatte nicht funktioniert. Hätte das geklappt, hätte ich das schon gepostet...
Naja, aber egal...mit dem Auszug aus der PSDK hast du mir jedenfalls sehr geholfen :lol: Funktioniert jetzt alles! DANKE! Gruß Yheeky |
Moin Yheeky,
bezogen auf Dein Posting, welches zu Mathias' Ironie-Kommentar führte: In so einem Falle ist es ganz hilfreich die Dinge, die Du schon getestet hast zu erwähnen, ggf. natürlich inclusive des Resultates. Da jeder wohl auch mal das offensichtlichste übersieht, war der Hinweis auf Form2.Handle ja nicht verkehrt. ' ist halt das Problem bei schriftlicher Kommunikation: Schreiben ist langwieriger als sprechen, so dass man gerne mal was weglässt. |
Ja klar, aber die Art, wie er es rübergebracht hat, hat mich gestört. Ein einfaches "probiere es mal mit Form2.Handle" hätte es ja auch getan...aber wie gesagt -ist jetzt egal, hat sich für mich erledigt 8).
Gruß Yheeky |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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