ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Movimentar Form C/ Propriedade Style Como: bsNone[Resolvido]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
mr.solutions
Aprendiz
Aprendiz


Registrado: Terça-Feira, 2 de Setembro de 2008
Mensagens: 278

MensagemEnviada: Qua Mai 27, 2009 6:25 pm    Assunto: Movimentar Form C/ Propriedade Style Como: bsNone[Resolvido] Responder com Citação

Moderadores do Active-Delphi escreveu:

Tópico editado por: johnny-walker
Motivo: Regras do fórum
Título Original: [RESOLVIDO]MOVIMENTAR FORM C/ PROPRIEDADE STYLE COMO: BSNONE


Ola pessoal estou eu de novo...com mais uma duvida...estou com um form...com essa propriedade bsnone ativada...so que preciso que esse form seje arrastado certo...cmo todos sabem essa propriedade como ta marcada ele não da de mover se caso não fizer alguns ajustes no codigo blz...eu to usando um codigo que funciona blz mover ele, so que ocorreu um problema...os componentes ficam todos desabilitados, BUTTONS...

segue o codigo

///a partir dessa lnha coloquei os codigos
private
{ Private declarations }
public
procedure WMNChitTest(var M: TWMNchitTest); message WM_NCHITTEST;
{ Public declarations }

end;

var
Form2: TForm2;


procedure TForm2.WMNchitTest(var M:TWMNChitTest);
begin
inherited;
if M.result = htclient then
M.result := htCaption;

end;


aí está ...bom espero que me ajudem novamente...


Editado pela última vez por mr.solutions em Qui Mai 28, 2009 3:44 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Mai 28, 2009 12:34 am    Assunto: Responder com Citação

eis aih meu amigo:

Código:

  private
    { Private declarations }
    procedure WMNCHitTest(var M: TWMNCHitTest); message WM_NCHITTEST;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
//  MOVIMENTA O FORMULÁTRIO
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
  inherited;
  if (M.XPos>=Left + Left) and (M.XPos<Left>=Top + Top) and (M.YPos<=Top + Top + Height) then
  M.Result := htCaption;
end;





bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qui Mai 28, 2009 8:52 am    Assunto: Responder com Citação

vc tem q testar seo mouse ta sobre algum componente ou não
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mr.solutions
Aprendiz
Aprendiz


Registrado: Terça-Feira, 2 de Setembro de 2008
Mensagens: 278

MensagemEnviada: Qui Mai 28, 2009 9:43 am    Assunto: Responder com Citação

johnny-walker escreveu:
if (M.XPos>=Left + Left) and (M.XPos<Left>=Top + Top) and (M.YPos<=Top + Top + Height) then
[/code


da um erro nessa linha....
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mr.solutions
Aprendiz
Aprendiz


Registrado: Terça-Feira, 2 de Setembro de 2008
Mensagens: 278

MensagemEnviada: Qui Mai 28, 2009 9:45 am    Assunto: Responder com Citação

gilsonnrodrigues escreveu:
vc tem q testar seo mouse ta sobre algum componente ou não



´Poderia passar p gente como faz?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Mai 28, 2009 9:52 am    Assunto: Responder com Citação

Antes de te enviar amigo eu testei e funcionou tudo bem, mas qual o problema que aconteceu que vc não conseguiu...

Mas eu utilizaava isto em outra área por isto coloquei desta maneira...

Mas vc pode comentar esta linha:
Código:

if (M.XPos >= Left + Left) and (M.XPos <= Left + Width + Left) and (M.YPos >= Top + Top) and (M.YPos <= Top + Top + Height) then then
  M.Result := htCaption;
end;



É que eu desenhava uma imagem no Timage e fazia o movimento do formulário através dele, por isto fiz desta forma mas no seu caso vc pode simplesmente deixar assim:

Código:

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
  inherited;
  M.Result := htCaption;
end;


Desculpe não ter explicado antes, pois esta imagem ficava como o caption do formulário e como está aih, qualquer lugar que vc clicar no formulário não precisará das outras linhas...

eis o código original que eu usava na aplicacação para movimentar pelo TImage:
Código:

procedure TClock.WMNCHitTest(var M: TWMNCHitTest);
begin
  inherited;
  if (M.XPos >= Left + MoveArea.Left) and (M.XPos <= Left + MoveArea.Width + MoveArea.Left)
  and (M.YPos >= Top + MoveArea.Top) and (M.YPos <= Top + MoveArea.Top + MoveArea.Height) then
  M.Result := htCaption;
end;



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qui Mai 28, 2009 11:47 am    Assunto: Responder com Citação

teste assim:

Código:
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
var
  vCtrl : TControl;
begin
  vCtrl := ControlAtPos(ScreenToClient(SmallPointToPoint(M.Pos)), False);
  if (vCtrl <> nil) and not (vCtrl is TLabel) and not (vCtrl is TImage) then
    M.Result := HTCLIENT
  else
    M.Result := htCaption;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mr.solutions
Aprendiz
Aprendiz


Registrado: Terça-Feira, 2 de Setembro de 2008
Mensagens: 278

MensagemEnviada: Qui Mai 28, 2009 11:50 am    Assunto: Responder com Citação

gilsonnrodrigues escreveu:
teste assim:

Código:
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
var
  vCtrl : TControl;
begin
  vCtrl := ControlAtPos(ScreenToClient(SmallPointToPoint(M.Pos)), False);
  if (vCtrl <> nil) and not (vCtrl is TLabel) and not (vCtrl is TImage) then
    M.Result := HTCLIENT
  else
    M.Result := htCaption;
end;



funcionou perfeitamente...obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mr.solutions
Aprendiz
Aprendiz


Registrado: Terça-Feira, 2 de Setembro de 2008
Mensagens: 278

MensagemEnviada: Qui Mai 28, 2009 12:04 pm    Assunto: Responder com Citação

mr.solutions escreveu:
gilsonnrodrigues escreveu:
teste assim:

Código:
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
var
  vCtrl : TControl;
begin
  vCtrl := ControlAtPos(ScreenToClient(SmallPointToPoint(M.Pos)), False);
  if (vCtrl <> nil) and not (vCtrl is TLabel) and not (vCtrl is TImage) then
    M.Result := HTCLIENT
  else
    M.Result := htCaption;
end;



funcionou perfeitamente...obrigado

e como faço para componentes TPanel...??????????
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qui Mai 28, 2009 3:01 pm    Assunto: Responder com Citação

um pouquinho mais complicado


mas precisa do painel?

pode ser um bevel não?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mr.solutions
Aprendiz
Aprendiz


Registrado: Terça-Feira, 2 de Setembro de 2008
Mensagens: 278

MensagemEnviada: Qui Mai 28, 2009 3:43 pm    Assunto: Responder com Citação

gilsonnrodrigues escreveu:
um pouquinho mais complicado


mas precisa do painel?

pode ser um bevel não?


não...a minha idéia era fazer tipo um alto relevo no form...então achei a tabcontrol e fica tipo 3d....blz...o panel não serviu...coloquei a tbcontrol e funcionou do geito que tava precisando obrigado pelo codigo de movimentar o form...amigo...

att..mr solutions
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
harleydk
Profissional
Profissional


Registrado: Quinta-Feira, 4 de Setembro de 2008
Mensagens: 635

MensagemEnviada: Qua Set 09, 2009 4:20 pm    Assunto: Responder com Citação

gilsonnrodrigues escreveu:
teste assim:

Código:
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
var
  vCtrl : TControl;
begin
  vCtrl := ControlAtPos(ScreenToClient(SmallPointToPoint(M.Pos)), False);
  if (vCtrl <> nil) and not (vCtrl is TLabel) and not (vCtrl is TImage) then
    M.Result := HTCLIENT
  else
    M.Result := htCaption;
end;


gilson, fiz exatamente assim... funfa... mas nao consigo clicar no fechar(X) na barra de titulo...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB