Avatar billede futterama Nybegynder
04. februar 2005 - 11:00 Der er 4 kommentarer og
1 løsning

Program uden units og forms

Hej,

Jeg er ved at lave et program som  kopierer nogle filer, og dette skulle gerne foregå i baggrunden så brugeren ikke bliver generet af det.
Jeg har så læst et sted at man kan skrive alt sin kode i .dpr filen og helt undlade units og forms. Jeg har ikke noget imod at bruge en unit, men der skal ikke være nogen forms.

Jeg kan imidlertid ikke få det til at virke med procedures og jeg kender ikke til rækkefølgen af koden. Jeg får en fejlmeddelselse: "Identifier expected but 'PROCEDURE' found" samt et par andre stykker.

Her er hvad jeg indtil videre er nået frem til:

program Project1;

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  procedure FileSearch(const PathName, FileName: string);
  function FormatInt(i_value, i_width: Integer): String;
end;

var
  i_NewFileName: Integer;
  s_UserName, s_FilePath: String;
  Size : Cardinal;
  SearchRec: TSearchRec;

{$R *.RES}

begin
procedure FileSearch(const PathName, FileName : string);
..noget kode..
end;

function FormatInt(i_value, i_width: Integer): String;
begin
..noget kode..
end;

..Hovedprogramkode..

  Application.Terminate;

end.
Avatar billede futterama Nybegynder
04. februar 2005 - 11:01 #1
Hov, jeg kommer lige til at se at programmet nok ikke ligefrem behøver Application.Terminate da det vel afsluttes når det har nået al koden igennem...?
Avatar billede doc404 Novice
04. februar 2005 - 12:04 #2
Prøv med File|New|Other og vælg Console Application. Så får du en god gammeldavs app.
Avatar billede kammeyer Nybegynder
04. februar 2005 - 12:18 #3
hvor ofte skal der kopieres? Er det noget der skal overvåges? Måske en service i baggrunden der laver arbejdet?

Ellers formoder jeg at du kan (ikke testet) sætte en evt. forms Visible til FALSE - burde egentlig være nok eller ?
Avatar billede futterama Nybegynder
04. februar 2005 - 13:03 #4
Jeg vil ikke have en konsol app. den er jo også synlig.

Jeg kan godt skjule formen, men stadig, der er en unødvendig form.

Jeg har selv fundet en løsning som jeg da lige vil poste her:

Man opretter en alm. application, sletter formen med Project Manager, og skriver alt sin kode i .dpr filen på følgende vis:

program MitProgram;

uses
  Windows,
  SysUtils;

var
  SomeVars: String:

function SomeFunc(Parameters: Integer): String;
begin
... noget kode ...
end;

procedure SomeProc(Parameters: String);
var
  SomeVars: String;
begin
... noget kode ...
end;

begin
... hoved program koden ...
end.

Det man så SKAL huske, det er at alt der skal bruges i f.eks. funktionen skal stå OVER funktionen... dvs. funktionen kan ikke bruge proceduren fordi programmet afvikles fra øverste linie og ned. Alle variabler skal også erklæres før de skal bruges.
Når programmet når "end." afsluttes det, så der er ik brug for Application.Terminate; eller Close;

Håber dette hjælper andre :-)
Avatar billede kammeyer Nybegynder
06. februar 2005 - 02:58 #5
angående rækkefølgen, så er det samme "sang" i alm. delphi.

Men i dit tilfælde kunne du forward erklære SomeProc før SomeFunc - så kunne de begge benytte hinanden :P
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