![]() |
parent minimieren
hallo zusammen,
ich habe eine von tbutton abgeleitete klasse die zur Laufzeit auf einem form erstellt wird. das Click-event habe ich überschrieben um damit eine aktion auszulösen. Gibts ne möglichkeit das parentform aus der mybutton-Klasse zu minimieren? so in der art: parent.minimize ;-) ich danke euch gruss Kh |
Re: parent minimieren
Versuch mal
Delphi-Quellcode:
Parent.Hide;
|
Re: parent minimieren
Zitat:
aber so ist das Form ja "versteckt". ich brauche das Form aber minimiert, damit es auf der taskleiste liegt. Gruss KH |
Re: parent minimieren
.Minimize vielleicht?
Dust Signs |
Re: parent minimieren
Kennt Lazarus WindowState?
|
Re: parent minimieren
Eine WM_SYSCOMMAND Nachricht mit SC_MINIMIZE an das Parenthandle schicken?
|
Re: parent minimieren
Zitat:
|
Re: parent minimieren
Wäre es nicht besser, mit GetParentForm das Elternformular zu ermitteln? Parent kann ja auch z.B. ein Panel sein.
|
Re: parent minimieren
Zitat:
minimize funktioniert nicht, hatte ich schon probiert ich denke das mit dem systemkommando sollte gehen, ich weiss da nur nicht die genaue syntax, wie ist die? ( es reicht aus,wenn unter windows funktioniert) Gruss KH |
Re: parent minimieren
Delphi-Quellcode:
SendMessage(<ParentHandle>, WM_SYSCOMMAND, SC_MINIMIZE, 0);
|
Re: parent minimieren
Zitat:
und dann in abhängigkeit des ergebnises minimieren. |
Re: parent minimieren - erweitert
Zitat:
ich danke euch, so funktionierts richtig: parentForm:= GetParentForm(self); if (Parent.ClassType.InheritsFrom(TForm)) then begin SendMessage(parentForm.handle, WM_SYSCOMMAND, SC_MINIMIZE, 0); end; gruss Kh |
Re: parent minimieren
um das ganze noch zu erweitern, würde ich gerne diese message im parent abfragen und unterschiedlich darauf reagieren.
wenn ich mir die msg im parent anzeigen lasse hab ich den integerwert, der jedesmal anders ist, wie weiter ? Es soll quasi das parent dann entscheiden ob es das minimize kommando ausführt. Geht das, und wenn ja wie ? danke euch |
Re: parent minimieren
Wie fängst Du die Message denn ab?
|
Re: parent minimieren
Zitat:
ShowMessage(IntToStr(self.Handle)); aber ich denke mal das passt so nicht :-( gruss Kh |
Re: parent minimieren
Delphi-Quellcode:
type
TDeinForm = class(TForm) ... private { Private-Deklarationen } procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; ... end; ... implementation ... procedure TDeinForm.WMSysCommand(var Msg: TWMSysCommand); begin if Msg.CmdType = SC_MINIMIZE then ShowMessage('Minimieren') else inherited; end; |
Re: parent minimieren
ich danke dir.
und wie reagiert das form jetzt darauf? ich muss die private Proc doch irgendwo aufrufen? über nen timer? oder wie? Gruss Kh |
Re: parent minimieren
Schreib das doch einfach mal in Deinen Code und minimiere das Formular.
|
Re: parent minimieren
Zitat:
keine msgbox :-( Gruss Kh |
Re: parent minimieren
Hmm... unter Delphi funktioniert das so. Setz doch mal einen Breakpoint auf die Zeile
Zitat:
|
Re: parent minimieren
Zitat:
:-( gruss Kh |
Re: parent minimieren
Zeig doch mal den interface-Teil Deiner Unit.
|
Re: parent minimieren
Zitat:
type { Tmenueauswahlform } Tmenueauswahlform = class(TForm) beendenButton: TButton; Label1: TLabel; dbnameLabel: TLabel; Label2: TLabel; Panel1: TPanel; procedure beendenButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; public { public declarations } end; var menueauswahlform: Tmenueauswahlform; newbox: TmyButton; implementation |
Re: parent minimieren
Das sieht OK aus. Muss ich mir wohl doch Lazarus unter Windows installieren, sonst finde ich das eh nicht.
|
Re: parent minimieren
Zitat:
ich denke es macht ja auch sinn, das form entscheiden zu lassen. Gruss Kh |
Re: parent minimieren
Den Effekt kann ich bestätigen, die Methode wird nicht durchlaufen. Es gibt zwar das Ereignis OnWindowStateChange, aber das wird erst nach der Änderung ausgelöst. Somit muss ich leider passen, Lazarus-Experten an die Front.
|
Re: parent minimieren
Zitat:
Gruss Kh |
Re: parent minimieren
Funktionierts auch nicht, wenn Du die
![]() |
Re: parent minimieren
Zitat:
kannst du das mal bitte probieren, du kennst dich da besser aus und bist sicher schneller als ich. Gruss Kh |
Re: parent minimieren
Wenn man die Minimieren-Schaltfläche in der Titelleiste klickt, wird kein WM_SYSCOMMAND gesendet.
|
Re: parent minimieren
Stattdessen kommt WM_SHOWWINDOW. Wie man da noch Veto einlegen will, weiß ich allerdings nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 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 by Thomas Breitkreuz