nunopicado Posted March 26, 2012 at 01:15 PM Report #445709 Posted March 26, 2012 at 01:15 PM Normalmente criarmos as forms de uma aplicação Delphi directamente no IDE, e depois em runtime, apenas as chamamos e tornamos visíveis. É fácil, é rápido, é barato, só não dá é milhões como o totoloto (às vezes)! 😄 No entanto, numa aplicação que se quer dinâmica e que gaste o mínimo de recursos possível a cada momento, muitas vezes a solução passa por não criar certas forms em Designtime, e deixar esse trabalho para o momento em que ela é necessária. Mas como o fazer? Como em quase tudo, o Delphi dá-nos uma solução simples para esse problema: 1. O primeiro passo é criar uma classe para a nossa nova form, derivada da classe mãe das TForm's. 2. De seguida, é claro, criar um identificador para essa classe. 3. O terceiro passo é criar a form propriamente dita, usando o Constructor da nossa nova classe. 4. Agora vem a personalização. Criar também aqui os componentes que desejamos, sejam botões ou labels, edits ou memos ou outra coisa qualquer 5. Mostrar a form 6. Quando o trabalho estiver terminado, libertar da memória a nossa form. Ex.: program TesteMinhaForm; uses SysUtils, Forms, Windows; // 1º passo: Criar a classe, derivada da TCustomForm type TMinhaForm=Class (TCustomForm) end; // 2º passo: Criar um identificador para a form var MinhaForm:TMinhaForm; begin // 3º passo: Criar a nova form MinhaForm:=TMinhaForm.CreateNew(nil); // 4º passo: Personalizar a form with MinhaForm do begin // Personalizar propriedades da própria form Caption:='Minha Form'; Left:=100; Top:=100; Width:=500; Height:=200; // Aqui criam-se e configuram-se, ao estilo runtime, quaisquer componentes que queiramos ver na form // 5º passo: Mostrar a form ShowModal; end; // 6º passo: Quando a form não é mais necessária, podemos libertá-la para recuperar os recursos utilizados MinhaForm.Free; end. E pronto, temos uma form simples de fazer, mas com as mesmas funcionalidades de qualquer outra... "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now