Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Geovane Velmer

[Resolvido] Form qndo não maximizado viriar barra de menu do lado

Recommended Posts

Como eu fasso para quando o form não estiver maximizado ele ficar em um tamanho que eu determinar e do lado superior direito da tela,

só que tambem eu possa mudar ele de lugar na tela, mais como padrão ele fica lá

 

Alguem tem alguma ideia de como eu fasso isso ?

 

Deem um mãozinha ai!

 

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

vai aí um simples exemplo ... é só adaptar como quiser ...

 

        if form1.WindowState <> wsMaximized then
        begin
                form1.Width:= 200;
                form1.Height:= 100;
                form1.Top:= 0;
                form1.Left:= monitor.Width - form1.Width - 15;
        end;

 

abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vai aí um simples exemplo ... é só adaptar como quiser ...

 

        if form1.WindowState <> wsMaximized then
        begin
                form1.Width:= 200;
                form1.Height:= 100;
                form1.Top:= 0;
                form1.Left:= monitor.Width - form1.Width - 15;
        end;

 

abraços !!!

 

Em que evento eu poderia colocar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí depende do que pretende ...

 

uma maneira é colocar no evento OnResize do Form ...

 

abraço !!

 

Eu quero que o form inicia maxmizado e quando e quando clicar no botão de maximizar ele fique pequeno como uma barra no canto superior direito.

 

e no onresize não funcionou nao...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acho que não entendeu..

eu quero que ele inicie em tela cheia... (wsMaximized)

 

e quando ele não estiver wsMaximized ele fique do lado direito superior da tela

com o tamanho que eu determinar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acho que não entendeu..

eu quero que ele inicie em tela cheia... (wsMaximized)

 

e quando ele não estiver wsMaximized ele fique do lado direito superior da tela

com o tamanho que eu determinar..

 

pois é exatamente isso que postei ... você testou ??? se testou, o que aconteceu que não deu certo ??

 

obs: você reparou que a segunda rotina que te passei teve uma pequena alteração ???

 

 

abraços!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é exatamente isso que postei ... você testou ??? se testou, o que aconteceu que não deu certo ??

 

obs: você reparou que a segunda rotina que te passei teve uma pequena alteração ???

 

 

abraços!!!

 

Correto Daniel, desculpe por não falar se testei, mais eu testei sim.. e seu código funciona o primeiro o segundo não testei

e tenho certeza que não ira funcionar, e a diferança entre os dois código é essa

 

WindowState = wsMaximize

e

 

WindowState <> wsMaximize

A segunda não deve funcionar por que o WindowState deve ser diferente do wsMaximize e não igual.

 

Primeiro eu testei o código no evento oncreate do form, só que para funcionar nesse evento o form não pode iniciar maximizado

deve iniciar diferente de wsMaximized, eu fiz o teste não iniciando maximizado e funcionou corretamente o seu código.

Mas como já disse eu quero o form inicie maximizado e quando não estiver maximizado ele fique no canto superior direito

portanto o preciso sabe é em que evento eu devo colocar esse código para que funcione da maneira que eu disse

ou se devo fazer alguma alteração ou coisa do tipo.

 

Espero que tenha entendido dessa vez.

 

Abraços!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

...e seu código funciona o primeiro o segundo não testei

e tenho certeza que não ira funcionar...

 

olha !!! acho que antes de dizer certeza, você deveria testá-lo ... apenas olhando e aplicando a teoria,

não dá pra saber... eu testei o segundo código, iniciando o form maximizado (evento OnResize) e funcionou perfeitamente ...

bom, é isso, fica o tópico aberto para se alguém mais se habilitar a responder ...

 

 

abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o teste Daniel, e funciona assim:

 

Quando o form inicia ele inicia com WindowState = wsMaximized

e fica com tamanho pequeno no canto superior direito, e quando eu clico no botão Maximizar para deixar o form como wsNormal

ele fica com tamanho pequeno no canto superior direito e se eu clicar denovo no botão ele volta pro estado wsMaximized mais em tela cheia

e depois disso funciona como eu quero.

 

Mas.. eu quero que ele inicie em tela cheia e só quando eu clicar no botão pra deixar o form como wsNormal é pra ele ficar tamanho pequeno no canto superior direito

 

 

=)

 

isso ta dando um trabalhão em Daniel... hehe ja tentei um monte de coisas aqui e até agora nada.

Qualquer coisa posta ai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha !! eu fiz o teste e funcionou normal... abriu o sistema com o form maximizado e quando clicar no botão maximizar ele virava o menu que você quer ... vou fazer uns testes aki e qq eu posto novamente ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz uns testes aki e percebi o seguinte:

 

quando o evento OnResize do form é ativado, a propriedade WindowState ainda não está atualizada, por isso ocorre o erro de checagem ...por exemplo: o form está maximizado e você redimenciona ele, o evento OnResize é chamado,

estando a propriedade WindowState = wsMaximized... redimencionando o form novamente, o evento OnResize é chamado,

estando a propriedade WindowState = wsNormal...

 

o q fazer para solucionar o problema ???

 

teoricamente, seria invertendo a verificação conforme modificação que te passei, trocando o <> wsMaximized por = wsMaximized... porém, na primeira etapa ele não funciona ...

 

no momento estou sem idéias para resolver este problema... se tiver algo dou um tok ...

 

 

abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Daniel, tem me ajudado muito, obrigado pela atenção cara e caso tenha alguma ideia posta ai, se eu consiguir resolver eu aviso

 

 

flw cara Abraços!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça esse teste aí ... aki funcionou...

 

 

procedure TForm1.FormResize(Sender: TObject);
var
vMax: boolean;
begin
        vMax:= not (form1.WindowState <> wsMaximized);

        if vMax then
        begin
                form1.Height:= 100;
                form1.Width:= 200;
                form1.Left:= monitor.Width - form1.Width - 15;
                form1.Top:= 0;
        end;
end;

é simplesmente uma outra forma de fazer a mesma coisa ... rsrsrs mas aki deu certo ...

post aki o resultado ...

 

abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.