Ajuda, Controle de Form....
Caros amigos estou com o seguinte problema.
Ao mandar um Form Minimizar, eu preciso passar a propriedade FormStyle de fsMDIChild, para fsStayOnTop, e hora que eu mandar restaurar o tamanho, ele deve passar a propriedade de fsStayOnTop para
fsMDIChild novamente. Alguem sabe como posso fazer isso?!
Atenciosamente
Luiz Claudio V. Santos
Ao mandar um Form Minimizar, eu preciso passar a propriedade FormStyle de fsMDIChild, para fsStayOnTop, e hora que eu mandar restaurar o tamanho, ele deve passar a propriedade de fsStayOnTop para
fsMDIChild novamente. Alguem sabe como posso fazer isso?!
Atenciosamente
Luiz Claudio V. Santos
Luiz.claudio.vieira
Curtidas 0
Respostas
Jc_analista
10/12/2004
procedure TFrmmenu.WMSysCommand(var Msg: TWMSysCommand);
var
h:hwnd;
begin
if (Msg.CmdType = SC_MINIMIZE) then
form1.formstyle=fsstayontop;
if (Msg.CmdType = SC_MAMIXIZE) then
form1.formstyle=fsMDIchild;
DefaultHandler(Msg);
end;
var
h:hwnd;
begin
if (Msg.CmdType = SC_MINIMIZE) then
form1.formstyle=fsstayontop;
if (Msg.CmdType = SC_MAMIXIZE) then
form1.formstyle=fsMDIchild;
DefaultHandler(Msg);
end;
GOSTEI 0
Luiz.claudio.vieira
10/12/2004
Muito Obrigado colega.... :P
GOSTEI 0
Luiz.claudio.vieira
10/12/2004
Caro amigo, desculpa a ignorância, mas não consegui usar o código! Ele vai em qual form?! O Mae ou o filho?! Como utilizo procedures?!
Um abraço e me desculpe a ignorância mais 1 vez...
Um abraço e me desculpe a ignorância mais 1 vez...
GOSTEI 0
Jc_analista
10/12/2004
Coloque no form mãe.
GOSTEI 0
Luiz.claudio.vieira
10/12/2004
E pq ele aparece a mensagem de erro ao tentar compilar:
´undeclared indetifier: WMSysCommand´? como resolvo isso?!
Atenciosamente
Luiz Claudio V. Santos
´undeclared indetifier: WMSysCommand´? como resolvo isso?!
Atenciosamente
Luiz Claudio V. Santos
GOSTEI 0
Martins
10/12/2004
E pq ele aparece a mensagem de erro ao tentar compilar:
´undeclared indetifier: WMSysCommand´? como resolvo isso?!
Atenciosamente
Luiz Claudio V. Santos
Veja
procedure TFrmmenu.WMSysCommand(var Msg: TWMSysCommand); var h:hwnd; begin if (Msg.CmdType = SC_MINIMIZE) then form1.formstyle=fsstayontop; if (Msg.CmdType = SC_MAMIXIZE) then form1.formstyle=fsMDIchild; DefaultHandler(Msg); end;
Esta é uma procedure [b:93974c331f]WMSysCommand(var Msg: TWMSysCommand);[/b:93974c331f]
então se vc fizer assim:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TFrmmenu = class(TForm)
private
{ Private declarations }
procedure WMSysCommand(var Message : TWMSysCommand) ;
public
{ Public declarations }
end;
var
Frmmenu: TFrmmenu;
implementation
{$R *.dfm}
procedure TFrmmenu.WMSysCommand(var Msg: TWMSysCommand);
var
h:hwnd;
begin
if (Msg.CmdType = SC_MINIMIZE) then
frmmenu.formstyle=fsstayontop;
if (Msg.CmdType = SC_MAMIXIZE) then
frmmenu.formstyle=fsMDIchild;
DefaultHandler(Msg);
end;
end.
Espero q funcione agora!
GOSTEI 0
Luiz.claudio.vieira
10/12/2004
Ai Martins, agora mudou o erro, esta ocasionando o seguinte erro!
Declaration of ´WMSysCommand´ differs from previous declaration
Desculpa se o erro e coisa banal, e pq eu ainda estou meio verde em procedures...
Declaration of ´WMSysCommand´ differs from previous declaration
Desculpa se o erro e coisa banal, e pq eu ainda estou meio verde em procedures...
GOSTEI 0
Massuda
10/12/2004
Como WMSysCommand não é uma simples procedure, mas sim um tratador de mensagens do Windows, o jeito correto de declarar essa procedure éTanto WM_SYSCOMMAND como TWMSysCommand são declarados na unit Messages.
type TFrmmenu = class(TForm) private procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; // ...
GOSTEI 0
Massuda
10/12/2004
Declaration of ´WMSysCommand´ differs from previous declaration
Isso está acontecendo porque na interface o argumento está como ´Message´
procedure WMSysCommand(var Message : TWMSysCommand) ;
procedure TFrmmenu.WMSysCommand(var Msg: TWMSysCommand);
Deixe os dois iguais (sugestão: use ´Msg´) que resolve.
GOSTEI 0
Luiz.claudio.vieira
10/12/2004
Ai galera o codigo compilou mais não funcionou não, ora que minimizo o Form ele não muda a propriedade do mesmo, nem quando eu maximizo... Pq será? :(
GOSTEI 0
Luiz.claudio.vieira
10/12/2004
Bom amigos, depois de tanto encher o saco de vcs consegui resolver o problema e colocar o codigo pra funcionar, muito obrigado a todos...
GOSTEI 0