Criar formulario (ou form) dinamicamente em tempo de execucao, e uma tarefa simples e eficiente.Vantagens:Ao criar formularios no Delphi, automaticamente eles sao criados na lista de formularios.A memoria tem diversos trabalhos, como, carregar conexoes de banco de dados, abertura de tabelas, configuracoes, arquivos, etc... isso faz com que este carregamento seja um processo demorado.Para alivio dos programadores, existe a criacao dinamica dos formularios, que fara com que o aplicativo carregue mais rapidamente, deixando de ser pesado, pois mantera toda essa memoria alocada por toda a execucao do mesmo.Inicialmente, o formulario principal deveria ser o unico criado automaticamente.Mas existem algumas excecoes:-> Data Modules pois sao utilizados em todo o sistema ou em varios formularios. Mas lembre-se: deixe todas as tabelas fechadas em tempo de projeto, e abra somente quando necessario.-> Formularios nao modais que sao mostrados o tempo todo.Seguindo todas essas instrucoes, a memoria nao tera mais tanto trabalho, e o tempo de carregamento do "que e necessario" na memoria, sera bem reduzido. Vejamos:Vamos comecar:1o- Crie um Formulario Novo, ele recebera o nome de Form2.2o- Va no menu Project/Options,vai ter 2 list boxes, conforme mostrada figura abaixo, o da esquerda "Auto-create forms" contem os forms que serao criados automaticamente quando a aplicacao for iniciada. Mova o Form2 para o ListBox da direita "Available forms" (este devera conter os forms que serao criados dinamicamente).3o- Pronto, o Delphi nao mais criara o Form2 automaticamente. Para nao dar erro ao compilar o projeto, entao o Form1 antes, ira fazer uma referencia, utilizando no codigo uses a chamada da Unit2.4o- No Form1 crie um botao e digite o codigo da chamada do segundo formulario em seu evento Click.O codigo ficara assim no Form1:...implementationuses Unit2;{$R *.DFM} {Segue aqui o Codigo do Botao fazendo a chamda do segundo formulario}procedure TForm1.Button1Click(Sender: TObject); beginForm2 := TForm2.Create(Self); // criaForm2.ShowModal; //exibeForm2.Free; //libera da memoriaend;end.************************************************************************Faca download do arquivo: Criar Form Dinamicamente.rar************************************************************************"A mente do homem, uma vez ampliada por uma nova ideia,jamais retorna a sua dimensao anterior." Oliver Wendell Holmes. Apresentarei aqui duas formas de exibicao de mensagem usando o MessageBox.No primeiro caso, o texto a ser mostrado, e armazenado em duas variaveis do tipo String. Exemplo no botao 1:procedure TForm1.BitBtn1Click(Sender: TObject);var Txt1, Txt2: String;beginTxt1 := ''; //limpa a variavelTxt2 := ''; //limpa a variavelTxt1 := 'Testando MessageBox';Txt2 := 'Rio de Janeiro';MessageBox(Application.Handle, PChar(Txt1), 'Teste 1', MB_ICONINFORMATION + MB_OK);MessageBox(Application.Handle, PChar('Moro no '+Txt2), 'Teste 2', MB_ICONINFORMATION + MB_OK);end;* * * * * * * * * * * * ** ** * *** * * * * * **Ja no segundo caso, a mensagem e armazenada em uma variavel do tipo PChar. Exemplo no botao 2:procedure TForm1.BitBtn2Click(Sender: TObject);var Msg : PChar;beginMsg := ''; //limpa a variavelMsg := 'Testando MessageBox';Application.MessageBox(Msg,'Teste 1',MB_ICONINFORMATION);//ou tambem pode ser:MessageBox(Application.Handle, Msg, 'Teste 2', MB_ICONINFORMATION + MB_OK);end;******************************************************************Faca o download do arquivo: Usando MessageBox.rar******************************************************************"Pense grande.Quem ja ouviu falar de Alexandre, o Medio?" Giles Montgomery. Entre uma rotina e outra, as vezes e necessario efetuarmos calculo de percentual.Para calcular o percentual (%) de um determinado valor, insira essa funcao no projeto:function GeraPercentual(Valor:real;Percent:Real):real;{Retorna a porcentagem de um valor}beginpercent := percent / 100;try valor := valor * Percent;finally result