programa sem form

Delphi

10/12/2003

Estou precisando abrir um programa. Mas que não use form.
A aplicação não precisa fazer nada. Apenas abrir.
Não sei se explicando direito o que preciso mas preciso fazer um project sem usar form nenhum, para que quando mande executar não abra nada tela, mas que eu possa localizar com
FindWindow(nil, ´Project´).

Como faço isso?


Michele

Michele

Curtidas 0

Respostas

Marconi

Marconi

10/12/2003

Se voce deixar a propriedade do form Visible:= false, acho que vai funcioanar.

Marconi


GOSTEI 0
Tnaires

Tnaires

10/12/2003

Olá michele, tudo bem?

Vá no menu Project, clique em View Source. Agora, retire a instrução Application.Create para o form principal. Aí vc usa essa unit pra escrever seu programa. Mas vc vai ter q importar as units q vc precisar manualmente (exemplo, se vc precisar utilizar ShowMessage, tem q colocar Dialogs na cláusula uses).

Sucesso


GOSTEI 0
Lucas Silva

Lucas Silva

10/12/2003

não seria melhor você fazer um programa ao invés de uma aplicação???
Lucas!


GOSTEI 0
Tnaires

Tnaires

10/12/2003

Mas uma aplicação console mostra uma tela de prompt de comando...


GOSTEI 0
Edmarfonseca

Edmarfonseca

10/12/2003

altere a propriedade do form principal BorderStyle para bsNone e no evento OnCreate do mesmo form coloque duas linhas:

Width := -1;
Height := -1;

não sei se é a melhor forma mas resolve

abraços


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

10/12/2003

crie um novo projeto

clique em: [img:67ecc15bb8]http://www.camaradabacana.kit.net/img/B.gif[/img:67ecc15bb8]

remova a Unit1

vai em Project> View Source
detete a Unit Forms do uses e cooque apenas a Windows

detete tudo entre o begin e o end.

coloque o WinExec(...) entre o Begin e o end, compile e teste,

PS: de uma olhada no tamanho do .exe :wink:[/img]


GOSTEI 0
Lucas Silva

Lucas Silva

10/12/2003

[quote:112b2a2496=´Marcelo Saviski´]crie um novo projeto

temujm ´-´ vermelho, clique e remova a Unit1

vai em Project> View Source
detete a Unit Forms do uses e cooque apenas a Windows

detete tudo entre o begin e o end.

coloque o WinExec(...) entre o Begin e o end, compile e teste,

PS: de uma olhada no tamanho do .exe :wink:[/quote:112b2a2496]

É bem melhor fazer um PROGRAMA ao ives de uma aplicação neste caso!
Lucas!


GOSTEI 0
Tnaires

Tnaires

10/12/2003

Olá Lucas

Vc tem razão. Mas se vc estiver falando de uma aplicação console (Menu File - New - Other... - Console Application), qdo rodar aparece uma tela de comando (´tela preta´). Mas isso pode ser resolvido retirando-se a diretiva de compilação {$APPTYPE CONSOLE} (algo parecido com isso).

Sucesso


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

10/12/2003

fiz um equivoco aqui:

para poder localizar depois, você precisa registrar uma classe com o Register Class, criar um loop com while GetMessage(...) do ;
e depois um UnregisterClass ou um PostQuitMessage


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

10/12/2003

Olá Lucas Vc tem razão. Mas se vc estiver falando de uma aplicação console (Menu File - New - Other... - Console Application), qdo rodar aparece uma tela de comando (´tela preta´). Mas isso pode ser resolvido retirando-se a diretiva de compilação {$APPTYPE CONSOLE} (algo parecido com isso). Sucesso


se você tirar a diretiva, vai virar uma Aplicação GUI sem janelas, fazendo de qualquer um dos modos, o resultado vai ser o mesmo


GOSTEI 0
Tnaires

Tnaires

10/12/2003

Olá Marcelo

É impressionante como há várias maneiras de resolver um mesmo problema não? Qdo vi sua mensagem, reli todo o tópico... A michelle não vai ter do q reclamar d soluções... :lol:

Sucesso a todos


GOSTEI 0
Michele

Michele

10/12/2003

Agradeço a todos, funcionou!
O que eu estava precisando na verdade e não estava conseguindo era fechar um programa por acesso remoto, mas este programa tinha o seguinte comando no Onclose --- Action:=Canone;

Então achei uma solução meio esquisita, mas funcionou.
Antes de mandar fechar o tal programa eu mando abrir este sem o form e o outro programa que preciso fechar, só fecha se este sem o form estiver aberto.
Sei que não é uma solução muito convencional, já que não consegui com o comando que fecha um programa.

Mais uma vez agradeço a ajuda de todos e lendo os tópicos confesso que surgiu uma dúvida, não entendi a diferença entre programa e aplicação.


GOSTEI 0
Moonlight

Moonlight

10/12/2003

Uma vez q eu precisei disso, fiz uma gambiarra pra sair mais rápido..
no OnCreate, coloquei uma funcao que chamava todas as funcoes q precisavam ser executadas...
E depois dessa função.. Application.Terminate.
Não mostrou Form nenhum.

Não é o ideal, mas eu precisava de solução rápida.


GOSTEI 0
Tnaires

Tnaires

10/12/2003

Olá michelle

Na prática, diferença entre programa e aplicação não existe. Mas analisando o Delphi, podemos dizer q aplicação é um tipo de programa. Acho q esse termo surgiu qdo os programas começaram a ter muitos módulos, com vários arquivos integrados (units, bancos de dados, etc).

Sucesso


GOSTEI 0
Caninha51

Caninha51

10/12/2003

Tenta isso no oncreate!

Application.ShowMainForm := False;


GOSTEI 0
POSTAR