Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 182
  • Last Modified:

Formless application

Hi everybody!

I'm making a small application, which only copies a file from one to an other location. Is it possible to avoid the use of forms, because actually I don't need them. ( But i need some units to be included. )
I would be also happy of any suggestions on how to decrease the size of the application's EXE file ( of course if it is possible).

Thanx
0
xmary
Asked:
xmary
  • 7
  • 5
  • 3
  • +3
1 Solution
 
EpsylonCommented:
It's easy! This is all you need:


------ Project1.dpr -------

program Project1;

uses
  Windows,
  Unit1 in 'Unit1.pas';

begin
  if ParamCount >= 2 then
    CopyFile(PChar(ParamStr(1)), PChar(ParamStr(2)), false);
end.


------ Unit1.pas -------

unit Unit1;

interface

implementation

// put your function here

end.

--------------------------


You can easily add formless units using [File menu > New] and then select Unit.
0
 
xmaryAuthor Commented:
Any suggestions about how to decrease the EXE file size?
0
 
EpsylonCommented:
My example creates a 17 KB exe. You can't have it much smaller than that.
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
X_KaliburCommented:
Epsylon,

Do you really even need "Unit 1"....

Cause when i write small formless apps, i code it straight into the main Project unit..

is there any advantage/disadvatage of dong it different ways?

-x
0
 
xmaryAuthor Commented:
Hi Epsylon!

Could you please show me an example of such a code?

Thanx
0
 
xmaryAuthor Commented:
To Epsylon:

Hi! I made a mistake on my last comment. Of course i did'n mean to show me an example of the code...it's on the top of the page. I meant if you have set up the compiler or linker to achieve such a small code.
0
 
xmaryAuthor Commented:
To Epsylon:

I've written only the following code:

**Project1.dpr**

program Project1;

uses
  Dialogs;

begin
showmessage('hello');
end.

As you can see there isn't any form. But when i compiled it, the result was an 205kB executable...far away from 17 kB. Have I done something wrong? (I have Delphi 3)
0
 
karouriCommented:
hmm
uses dialogs;
I suppose this will link in a lot of unnesessary code, only to use showmesssage.Am I right?
0
 
Alisher_NCommented:
xmary!

go to File/New, choose 'Console application', exclude 'sysutils' from 'uses' if you don't need it.... you can't do it even smaller now
0
 
EpsylonCommented:
X_Calibur:

>Do you really even need "Unit 1"....
No, I added it because xmary needed to


Alisher_N:

That's exactly the same as what I showed, so the size will be the same too...
include some (formless) units.


xmary:

I didn't setup anything in the linker or compiler. It's just a matter of what you 'use'. For example if you 'use' Dialogs, then the size increases and you can do very little about it except stipping the ShowMessage function from Dialogs.pas. And that's not easy. In this case you can better use Windows API functions like MessageBox. The API function MessageBox is defined in Windows.pas so put 'Windows' in the uses clause.


program Project1;

uses
  Windows;

begin
  MessageBox(0, 'Some text', 'My title', MB_OK);
end.
0
 
EpsylonCommented:
Btw: this example creates a 16 KB exe....
0
 
xmaryAuthor Commented:
To Epsylon:

Well, i thought i've done something wrong with the settings of the compiler, but if you say that the reason of the big filesize is the use of units, i think i can't do much. Above I made just an example of how little code is necessary to make a large file. (Actually I don't need to display that message.) In my application I have to use at least 3 units, so from what i understood, the executable will remain big.

Thanx anyway (if you wish, i can evaluate your answer)
0
 
EpsylonCommented:
Alright, thanks.
0
 
darinwCommented:
This duplicate account has been suspended.

darinw
Customer Service
0
 
EpsylonCommented:
Yes, and my points...?
0
 
darinwCommented:
If this customer will not agree to abide by the Customer Agreement, then I will force the grade for you.

darinw
0
 
EpsylonCommented:
I guess you have to force it...
0
 
darinwCommented:
Done.

darinw
Customer Service
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

  • 7
  • 5
  • 3
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now