Jump to content

Form dinâmico em PageControl


brunomf01

Recommended Posts

Estou com um problema há alguns dias, onde não consigo criar forms de forma dinamica em tabs (no caso criar varios forms de uma vez, para editar detalhes de registros em algumas telas do meu sistema, assim como tenho na aplicação em VCL)

function TMainForm.CreateView(pView: TUniFormClass;
  pContainer: TWinControl): TUniForm;
var
  vForm: TUniForm;
  vFormClass: TUniFormClass;
begin
  vFormClass := TUniFormClass(pView);
  vForm := vFormClass.Create(UniApplication);

  vForm.Parent := pContainer;
  vForm.Position := poOwnerFormCenter;
  vForm.Height := pContainer.Height -5;  {Desconta a borda do form pai}
  vForm.Width := pContainer.Width -5;
  vForm.BorderStyle := bsNone;
//  vForm.Align := alClient;
  vForm.BorderIcons := [];
//  vForm.Repaint;
//  TUniBaseView(vForm).WindowState := wsMaximized;

  Result := vForm;
  Result.Show;
end;

para usar a função eu já tenho o pageControl na tela com as 3 paginas criadas, 3 forms para teste criados e uso o seguinte código para chamar a função acima:

  CreateView(TUniForm1, UniTabSheet6);
  CreateView(TUniForm2, UniTabSheet7);
  CreateView(TUniForm3, UniTabSheet8);

O problema no caso é que ele cria o form nas duas primeiras tabs mas na terceira não como na imagem do link a seguir:

https://www.dropbox.com/s/isstu0udr7au0iv/tabs_forms_dinamic.jpeg?dl=0

e gera o erro do link a seguir também:

https://www.dropbox.com/s/8kh6y2hly64r5dg/tabs_forms_dinamic_error.jpeg?dl=0

já faz alguns dias que estou tentando achar o que é o problema, caso alguém puder ajudar, fico muito grato.

PS: eu já notei que com TUniFrame funciona, porém já fiz a base do sistema todo usando TUniForm

PS2: uniGUI Versão 1.10.0.1466

Link to comment
Share on other sites

  • 2 weeks later...

Bruno, o que estás fazendo é algo estranho. 

O princípio básico do form , seja unigui ou VCL, é que ele foi feito para ser mostrado de forma livre (Show) ou de forma acorrentada (Showmodal).

Você tá usando o form para fazer justamente algo que ele não foi feito para fazer (Placed), que é a finalidade do Frame. 

Seja lá em qual etapa estiver do seu projeto, aconselho corrigir isto o quanto antes. O tempo que você vai perder resolvendo este e outros possíveis problemas será muito maior do que o tempo da correção. Sugiro alterar um dos forms de forma textual (alterando os arquivos .pas e .dfm) substituindo "class = (TUniForm)" para "class = (TUniFrame)" e ver o que acontece. Se funcionar, automatize as substituições.

Link to comment
Share on other sites

  • 3 weeks later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...