Avatar billede canker Nybegynder
13. november 2002 - 13:24 Der er 8 kommentarer og
2 løsninger

applikation uden form

Hvis man vil køre en applikation uden en form skal man så:

  Application.Initialize;
//Application.CreateForm(TForm1, Form1);
  Application.Run;

eller er der en anden måde?

programmet skal bare køre noget kode og slutter så med application.terminate
Avatar billede hermandsen Juniormester
13. november 2002 - 13:28 #1
Kan du ikke bare lave en konsol-applikation?
Avatar billede mjohansen Nybegynder
13. november 2002 - 13:29 #2
Du kan bare glemme alle Application.etellerandet og skrive den kode du vil udføre.
Avatar billede mjohansen Nybegynder
13. november 2002 - 13:30 #3
Jo, du kan også lave en konsol-applikation, men så får du et konsolvindue op når programmet kører, og det vil du vel ikke?
Avatar billede canker Nybegynder
13. november 2002 - 13:33 #4
den skal ikke bruge krudt på at åbne noget som helst, den skal bare udføre koden fra før :-)


procedure TForm1.FormCreate(Sender: TObject);
var
  H: hWnd;
begin
  H := Handle;
  while H <> 0 do
    begin
      if not ((H = Handle) or (H = Application.Handle)) then
        if IsWindowVisible(H) then
          PostMessage(H, WM_SYSCOMMAND, SC_MINIMIZE, 0);
      H := GetNextWindow(H, GW_HWNDNEXT);
    end;
application.Terminate;
end;
Avatar billede mjohansen Nybegynder
13. november 2002 - 13:36 #5
Det kan du godt, men så har du ikke handle til at starte med.
Men så skal du bare bruge:
H := GetWindow(0, GW_HWNDFIRST);
i linien efter begin
Avatar billede hermandsen Juniormester
13. november 2002 - 13:47 #6
Vælg File->New...->Console Application

program Project1;
{$APPTYPE CONSOLE}
uses
  Windows;
const
  WM_SYSCOMMAND = $0112;
var
  H: THandle;
begin
  H := FindWindow('Shell_TrayWnd', nil);
  H := GetNextWindow(H, GW_HWNDFIRST);
  while H <> 0 do
    begin
      if IsWindowVisible(H) then
        PostMessage(H, WM_SYSCOMMAND, SC_MINIMIZE, 0);
      H := GetNextWindow(H, GW_HWNDNEXT);
    end;
end.
Avatar billede canker Nybegynder
13. november 2002 - 13:50 #7
jeg får nogle fejl prøv lige at vis helt oppe fra:

program Project1;

og den skal ikke use forms
Avatar billede mjohansen Nybegynder
13. november 2002 - 13:54 #8
Copy og paste hele koden over i notepad og gem det som en .dpr fil.
Navnet på .dpr filen skal være det samme som navnet efter program
Dobbeltklik på filen og delphi åbner sig med projektet.
Avatar billede canker Nybegynder
13. november 2002 - 14:03 #9
tak skal i ha
Avatar billede hermandsen Juniormester
13. november 2002 - 14:06 #10
Jeg nåede ikke lige at få det til at virke, men hvis ikke gider at se på det konsol-vindue der kommer frem, så kan det her måske være nyttigt:

function GetConsoleWindow: THandle;
//Get handle for console Window
var
  S: AnsiString;
  C: Char;
  hConsole: THandle;
begin
  Result := 0;
  Setlength(S, MAX_PATH+1);
  if GetConsoleTitle(PChar(S), MAX_PATH) <> 0 then
  begin
    C := S[1];
    S[1] := '$';
    SetConsoleTitle(PChar(S));
    hConsole := FindWindow(nil, PChar(S));
    S[1] := C;
    SetConsoleTitle(PChar(S));
    Result := hConsole;
  end;
end;


Så burde du bare kunne smide ShowWindow(GetConsoleWindow, SW_HIDE); ind i starten af programmet, men jeg fik det desværre ikke rigtig til at fungere, men nu har du da funktionerne! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester