Width e Height
Quando maximizo o form ele muda o Width e Height, mas eu queria saber o Width e o Height do form em estado normal tem como saber quando o form está no estado de maximizado??
Rudá
Curtidas 0
Respostas
Steve_narancic
22/06/2006
voce pode criar duas variaiveis e no on create do form grava o Width e Height nestas variaveis
GOSTEI 0
Rudá
22/06/2006
E se a pessoa redireciona o form como é que vai saber!
GOSTEI 0
Marco Salles
22/06/2006
E se a pessoa redireciona o form como é que vai saber!
evento OnResize
procedure TForm1.FormResize(Sender: TObject); begin h:=form1.Height; W:=form1Width; end;
GOSTEI 0
Rudá
22/06/2006
Obrigado, funcionou!
Agora mais uma dúvida, eu to querendo fazer o seguinte:
É gravado no registro o tamanho do form e o WindowState, para que quando ele entrar de novo no form se for fechado o programa ficar do mesmo tamanho e WindowState. Só que achei esse problema do tamanho do form, se ele sair do programa com o form maximizado, então quando ele entrar de novo vai tar maximizado só que se ele restaurar para o normal ele tem que tar do mesmo tamanho que o cara colocou antes de fechar o programa!
Exemplo é o programa do msn se vc deixa maximizado e fecha ele quando abrir de novo ele vai tar maximizado, se vc deixa normal com um determinado tamanho, quando fechar e abrir vai tar do mesmo modo, eu estou querendo fazer isso pode me ajudar??
Agora mais uma dúvida, eu to querendo fazer o seguinte:
É gravado no registro o tamanho do form e o WindowState, para que quando ele entrar de novo no form se for fechado o programa ficar do mesmo tamanho e WindowState. Só que achei esse problema do tamanho do form, se ele sair do programa com o form maximizado, então quando ele entrar de novo vai tar maximizado só que se ele restaurar para o normal ele tem que tar do mesmo tamanho que o cara colocou antes de fechar o programa!
Exemplo é o programa do msn se vc deixa maximizado e fecha ele quando abrir de novo ele vai tar maximizado, se vc deixa normal com um determinado tamanho, quando fechar e abrir vai tar do mesmo modo, eu estou querendo fazer isso pode me ajudar??
GOSTEI 0
Marco Salles
22/06/2006
Exemplo é o programa do msn se vc deixa maximizado e fecha ele quando abrir de novo ele vai tar maximizado, se vc deixa normal com um determinado tamanho, [b:fd3d67d78c]quando fechar e abrir vai tar do mesmo modo, eu estou querendo fazer isso pode me ajudar[/b:fd3d67d78c]??
eu nun entendi a dificuldade.... se voce mesmo diz que usa os registros do windows
É gravado no registro o tamanho do form e o WindowState
, porque não ao fechar o form voce grava os valores e ao abrir o form voce usa esses valores..
GOSTEI 0
Rudá
22/06/2006
Se eu coloco o OnResize quando maximizo ele muda tb o tamanho, ai não tem como saber o tamanho do form no estado normal!
fiz tb assim mas não funcionou!
Pode me ajudar??
fiz tb assim mas não funcionou!
if(WindowState = wsNormal) then Tamanho.Text:= IntToStr(Width) + ´ x ´ + IntToStr(Height);
Pode me ajudar??
GOSTEI 0
Marco Salles
22/06/2006
Se eu coloco o OnResize quando maximizo ele muda tb o tamanho, ai não tem como saber o tamanho do form no estado normal!
é porque as coisas acontecem depois do evento onResize
uma solução para istop é enviar uma mensagem para o windows e depois captura-la
tente aplicar esses conceitos abiaxo em seu programa
private
procedure Wmuser(var msg:Tmessage);message wm_user;
{ Private declarations }
public
{ Public declarations }
end;procedure TForm1.FormResize(Sender: TObject); begin postmessage(handle,wm_user,0,0); end;
procedure TForm1.Wmuser(var msg: Tmessage); begin //aqui voce vai testar o estado "futuro" do form..isto é logo //apos ele ser alterado.... if form1.WindowState = wsMaximized then showmessage(´maximizado´) else showmessage(´alterou´); end;
GOSTEI 0
Rudá
22/06/2006
Valeu pela ajuda pessoal mas consegui uma coisa mais simples!
Esse código mostra o tamanho do form no seu estado normal!
var Pl: TWindowPlacement; R: TRect; begin Pl.Length:= SizeOf(TWindowPlacement); GetWindowPlacement(Form.Handle,@Pl); R:= Pl.rcNormalPosition; // Width:= R.Right-R.Left; // Height:= R.Bottom-R.Top; // Left:= R.Left; // Top:= R.Top;
Esse código mostra o tamanho do form no seu estado normal!
GOSTEI 0