Fórum Aumentar tamanho em run-time #167505
02/07/2003
0
Earmarques
Curtir tópico
+ 0Posts
02/07/2003
Skywalker
Gostei + 0
02/07/2003
Marcelo Saviski
altere as propriedades para:
coloque os nomes deles como P1, P2 ... P8;
e mude os cursors de cada 1 deles
P1 irá ser a alça da esquerda topo
P2 esquerda
P3 esquerda base
P4 Topo
P5 Base
P6 Direita topo
P7 Direita
P8 Direita Base
mude a propriedade tag dos panels comforme seu nome, P1: tag 1, P2: tag 2....
no Form, na parte public (aonde está [i:5d9e86829d]{public eclarations}[/i:5d9e86829d]), digite:
property SelCtrl: TControl;
e pressione [u:5d9e86829d]Ctrl + Shift + C[/u:5d9e86829d]
nessa procedure que criou (SetSelCtrl), coloque esse código
if Assigned(Value) then begin P1.left := Value.left -4; P2.left := Value.left -4; P3.left := Value.left -4; P4.left := Value.left + (Value.width div 2) -4; P5.left := Value.left + (Value.width div 2) -4; P6.left := Value.left + Value.width -4; P7.left := Value.left + Value.width -4; P8.left := Value.left + Value.width -4; P1.top := Value.top -4; P4.top := Value.top -4; P6.top := Value.top -4; P2.top := Value.top + (Value.height div 2) -4; P7.top := Value.top + (Value.height div 2) -4; P3.top := Value.top + Value.height -4; P5.top := Value.top + Value.height -4; P8.top := Value.top + Value.height -4; P1.visible := true; P2.visible := true; P3.visible := true; P4.visible := true; P5.visible := true; P6.visible := true; P7.visible := true; P8.visible := true; end else begin P1.visible := false; P2.visible := false; P3.visible := false; P4.visible := false; P5.visible := false; P6.visible := false; P7.visible := false; P8.visible := false; end;
Selecione todo os componentes(que tenham um evento onmousedown) e de um clique duplo no evento onmousedown e coloque esse código:
SelCtrl := TControl(sender);
isso coloca ele como se fossem os ´pontinhos´ pretos
mas eles não fazem nada ainda, então declare essas variaveis a nível de unidade
XX,YY : integer;
selecione todos os Panels P1 ... P8
De um clique duplo no evento on mouse down;
faça:
XX := X; YY := Y; SelCtrl := TControl(Sender);
no on mouse move {isso com todos os panels selecionados}
var PX, PY: Integer; begin with TPanel(Sender) do if csClicked in ControlState then begin PX := Left + X - XX; PY := Top + Y - YY; case Tag of 1, 2, 3: begin P1.Left := PX; P2.Left := PX; P3.Left := PX; end; 6, 7, 8: begin P6.Left := PX; P7.Left := PX; P8.Left := PX; end; end; case Tag of 1, 4, 6 begin P1.Tp := SY; P4.Tp := SY; P6.Tp := SY; end; 3, 5, 8 begin P3.Tp := SY; P5.Tp := SY; P8.Tp := SY; end; end; P4.Left := (P1.Left + P6.left) div 2; P5.Left := P4.Left; P2.Top := (P1.Top + P3.Top) div 2; P6.Top := P2.Top; SelCtrl.SetBounds(P1.left + 4, P1.Top + 4, P8.Left - P1.Left, P8.Top - P1.Top);
não testei mas espero que funcione :wink:
[color=blue:5d9e86829d][b:5d9e86829d]Responda nesse tópico para dizer se funcionou ou não.[/b:5d9e86829d][/color:5d9e86829d]
Gostei + 0
02/07/2003
Marcelo Saviski
Ex:
se vc quer mover um edit >> TEdit(...
se é um Image >> TImage(...
Gostei + 0
17/08/2004
Macario
Cara esse esquema é bem legal, mas não esta redimencionando o componente.
Se voce puder me passar um dica e tambem como mover ele eu agradeço.
eu estou fazendo uns testes aqui mas até agora não obtive exito.
Grato.
P.s: Me desculpem por trazer um topico tão antigo.
Gostei + 0
17/08/2004
Marcelo Saviski
Gostei + 0
18/08/2004
Tatuweb
:arrow: http://delphiforum.icft.com.br/forum/viewtopic.php?t=43965
Gostei + 0
18/08/2004
Macario
Ainda não instalei o componente, mas devido a ser free apenas para uso não comercial não ira me servir. Pois estou desenvolvendo um aplicativo
que vai ser distribuido junto a um produto, que vai ser vendido.
Gostei + 0
18/08/2004
Tatuweb
Gostei + 0
18/08/2004
Macario
um abraço.... :D 8)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)