Тема: Hello, World
Показать сообщение отдельно
  #1  
Старый 14.03.2011, 01:43
Iskatel_S Iskatel_S вне форума
Прохожий
 
Регистрация: 27.11.2010
Адрес: Москва (съёмное жильё)
Сообщения: 14
Репутация: 10
По умолчанию Hello, World

Про то как выводить данные через формы я разобрался. Следующий вопрос: разобраться как компилируется бинарный код.

Сначала я обнаружил, что написать программу которая выводит окно и в нём приветствует мир, можно двумя способами.

Способ первый:
Код:
{код проекта}
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.



{код модуля}
unit Unit1;

interface

uses
  Forms, Controls, StdCtrls, Classes, Buttons;

type
  TForm1 = class(TForm)
    btn1: TBitBtn;
    lbl1: TLabel;
    procedure FormCreate(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  lbl1.Caption:='Hello, World'
end;

end.


Способ второй:
Код:
{код проекта}
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Unit1.Form1.lbl1.Caption:='Hello, World';
  Application.Run;
end.



{код модуля}
unit Unit1;

interface

uses
  Forms, Controls, StdCtrls, Classes, Buttons;

type
  TForm1 = class(TForm)
    btn1: TBitBtn;
    lbl1: TLabel;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

Скажите, какой из этих двух способов, идеалогически более верный?

И вот что, в обоих случаях размер конечного exe-файла у меня получается 382Кбайт. Почему так много? Что у меня оказывается в готовом бинарном коде? Ведь я так понимаю, сама программа рисованием на экране окна не занимается, это делает Windows, а программа просто передаёт ей инструкцию, вывести на экран окно и вывести в нём надпись "Hello, World".
Ответить с цитированием