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

Join the conversation

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

Guest
Reply to this topic...

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

×
×
  • Create New...