Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Resize em tempo de Execução


robinhocne

Question

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....

Edited by robinhocne
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...