Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Principal";
Arquivo atual: 2003.05.01;
Download: [xml.tar.bz2];

Para baixo

Como criar um formulário a partir de dfm? Encontre agências semelhantes


AndrewK   (2003-04-16 14:15) [0]

Há um desejo de criar formas dinamicamente. É possível carregar formulários do dfm como um encadeamento ou terei que descrever um conjunto limitado de controles e escrever meu próprio formato para criar formulários?



evvcom   (2003-04-16 14:51) [1]

А
Form1: = TForm.Create; Button1: = TButton.Create (Form1); Button1.Parent: = Form1;
e assim por diante não combina?



kull   (2003-04-16 15:52) [2]

Consulte a Ajuda: TCustomForm.CreateNew

Talvez você precise?



Shirson   (2003-04-16 16:09) [3]

Como AndrewK, ele pede outra coisa. No dfm, esboçar formulários em branco usando Delphi como editor de formulários e, em seguida, esses formulários são vinculados ao programa dinamicamente. I.e. o ponto é que o programa não recompila ao adicionar novos formulários.
IMHO a tarefa ainda é ...



kull   (2003-04-16 16:18) [4]

Descrição

Use CreateNew em vez de Create para criar um formulário sem usar o arquivo .DFM associado para inicializá-lo. Sempre use CreateNew se o descendente do TCustomForm não for um objeto TForm ou um descendente do TForm.

WriteComponentResFile ("Temp.dfm", Form1);

...
Form2: = TForm.CreateNew (Aplicativo);

ReadComponentResFile ("Temp.dfm", Form2);




AndrewK   (2003-04-18 09:49) [5]

Che não funciona ... :(



savva   (2003-04-18 11:00) [6]

Eu fiz assim:

projeto
programa Project1; usa Formulários Aulas Unit1 em "Unit1.pas" {Form1}; {$ R * .RES} // {$ DEFINE REFRESH_FORM} começar Application.Initialize; {$ IFDEF REFRESH_FORM} Application.CreateForm (TForm1, Form1); WriteComponentResFile ("Test.dfm", Form1); Form1.free; {$ ENDIF} Form1: = TForm1.CreateNew (aplicativo); ReadComponentResFile ("Test.dfm", Form1); Form1.Show; repetir Application.HandleMessage até Application.Terminated; Form1.free; fim.
forma
unidade Unit1; interface usa Windows, Mensagens, SysUtils, Classes, Gráficos, Controles, Formulários, Diálogos, StdCtrls; tipo TForm1 = classe (TForm) btnSaveForm: TButton; Memo1: TMemo; Label1: TLabel; procedimento Button1Click (Sender: TObject); procedimento FormClose (Remetente: TObject; var Ação: TCloseAction); particular {Declarações particulares} público {Declarações públicas} fim; var Form1: TForm1; implementação {$ R * .DFM} procedimento TForm1.btnSaveFormClick (Sender: TObject); começar WriteComponentResFile ("Test.dfm", Form1); fim; procedimento TForm1.FormClose (Remetente: TObject; var Ação: TCloseAction); começar Application.Terminate; fim; fim.
Os pontos importantes são destacados:
1) A diretiva REFRESH_FORM é usada para atualizar o formulário se você o modificou (em particular, novos componentes e manipuladores de eventos)
2) Como o formulário no exemplo é um, ou seja, é o principal, quando o fecharmos, assumiremos que o aplicativo está terminando (aqui são possíveis variações).



savva   (2003-04-18 11:09) [7]

embora também haja pouco sentido - o máximo que pode ser feito é mover, alterar o texto etc. Ou seja, apenas altere as propriedades. Para processar eventos, o código deve estar presente no corpo do programa. Mesmo se um botão (ou qualquer outro elemento de controle) for adicionado ao formulário, será muito difícil conectar eventos (é difícil prever todas as opções possíveis).



Страницы: 1 filial inteira

Fórum: "Principal";
Arquivo atual: 2003.05.01;
Download: [xml.tar.bz2];

em cima





Memória: 0.56 MB
Hora: 0.021 c
3-482
INVERNO
2003-04-14 17:08
2003.05.01
Aplicativo do servidor de arquivos. Havia um problema se eu abrir


6-656
Novichek
2003-03-06 15:20
2003.05.01
TWebBrowser - proibição de abrir uma nova janela por hiperlink


14-782
Palmadinha
2003-04-15 14:23
2003.05.01
Programa para resolver sistemas de equações


14-727
Ivan L
2003-04-13 22:39
2003.05.01
Paleta de componentes


3-479
vil
2003-04-14 14:56
2003.05.01
Adoquery





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese Romeno Russa sérvio Slovak esloveno Espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol