Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Resize em tempo de Execução


robinhocne

Pergunta

Como faço para redimensionar um "Frame" em tempo de execução ?

Pois tenha um frame criado com algumas lógicas mas depois de estar executando a aplicação eu preciso aumentar esse frame ou diminuir, mexer igual ao resize...

tentei algo assim...:

//Código do Frame teste

unit frResizeParams;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs;

type
  TFrmResizeParams = class(TFrame)
  private
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public declarations }
  end;

implementation

{$R *.dfm}

{ TFrame1 }

procedure TFrmResizeParams.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle OR WS_EX_OVERLAPPEDWINDOW;

end;

end.

mas nada funcionou....

Editado por robinhocne
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

exemplo:

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TFrame2 = class(TFrame)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

{$R *.dfm}

procedure TFrame2.Button1Click(Sender: TObject);
var NewR: TRect;
begin
   NewR := Panel1.BoundsRect;
   Dec(NewR.Right, 32);
   Dec(NewR.Bottom, 32);
   Button1.Parent := Self;
   Button2.Parent := Self;
   Panel1.Free;
   Panel1 := TPanel.Create(Self);
   Panel1.BoundsRect := NewR;
   Panel1.Parent := Self;
   Button1.Parent := Panel1;
   Button2.Parent := Panel1;
end;

procedure TFrame2.Button2Click(Sender: TObject);
begin
   Panel1.Height := Panel1.Height - 32;
   Panel1.Width := Panel1.Width - 32;
end;

end.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
exemplo:

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TFrame2 = class(TFrame)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

{$R *.dfm}

procedure TFrame2.Button1Click(Sender: TObject);
var NewR: TRect;
begin
   NewR := Panel1.BoundsRect;
   Dec(NewR.Right, 32);
   Dec(NewR.Bottom, 32);
   Button1.Parent := Self;
   Button2.Parent := Self;
   Panel1.Free;
   Panel1 := TPanel.Create(Self);
   Panel1.BoundsRect := NewR;
   Panel1.Parent := Self;
   Button1.Parent := Panel1;
   Button2.Parent := Panel1;
end;

procedure TFrame2.Button2Click(Sender: TObject);
begin
   Panel1.Height := Panel1.Height - 32;
   Panel1.Width := Panel1.Width - 32;
end;

end.

abraço

mas assim ai vai diminuindo conforme vai clicando......eu queria que ao chegar na borda do panel que vai estar no frame, aparecesse o cursor do resize e assim ao clicar segura ele aumentar ou diminuir, como é feito nos componentes......

Link para o comentário
Compartilhar em outros sites

  • 0
isso é só um exemplo de como mudar para um tamanho maior ou menor

veja outros exemplos

http://stackoverflow.com/questions/753134/...forms-in-delphi

http://stackoverflow.com/questions/1840937...vent-for-tframe

abraço

não consegui resultado, mas vou tentar fazer....vou tentar de outra maneira....

obrigado Jhonas, pois não estou conseguindo entender....

Link para o comentário
Compartilhar em outros sites

  • 0

o que o segundo link esta mostrando é que o redimensionamento também poderia ser feito pela colocação de um painel sobre a moldura, com todos os componentes dentro.

voce tem que tentar entender o que o código faz ...

todos os links que passei não tem a solução pronta, mas tem o caminho para chegar ao que voce quer

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
o que o segundo link esta mostrando é que o redimensionamento também poderia ser feito pela colocação de um painel sobre a moldura, com todos os componentes dentro.

voce tem que tentar entender o que o código faz ...

todos os links que passei não tem a solução pronta, mas tem o caminho para chegar ao que voce quer

abraço

Ok, Jhonas valeu pela atenção, fiz uns testes utilizando o JvCaptionPanel e ele já tem essa funcionalidade.....

valeu Jhonas.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...