Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.25;
Скачать: CL | DM;

Вниз

Вопрос, наверно, по основам. Создаю приложение без формы...   Найти похожие ветки 

 
Fredericco ©   (2002-04-11 10:36) [0]

Код юнита:

unit Ulc;

interface
uses
ExtCtrls, ScktComp,Dialogs;

type
TF=class(TObject)
ClientSocket1: TClientSocket;
Timer1: TTimer;
procedure Creat();
procedure Tmr(Sender: TObject);
procedure DisCon(Sender: TObject;
Socket: TCustomWinSocket);
end;

var
F:TF;
implementation


procedure TF.Creat();
begin
ShowMessage("Работает");
ClientSocket1:=TClientSocket.Create(nil);
Timer1:=TTimer.Create(nil);
ClientSocket1.Host:="localhost";
ClientSocket1.Port:=20000;
ClientSocket1.OnDisconnect:=DisCon;
Timer1.OnTimer:=Tmr;
end;

procedure TF.DisCon(Sender: TObject;
Socket: TCustomWinSocket);
begin
ClientSocket1.Free;
Timer1.Free;
F.Free
end;

procedure TF.Tmr(Sender: TObject);
begin
if ClientSocket1.Active=True then ClientSocket1.Socket.SendText("aa");
end;


end.

Код программы:

program Prlc;

uses
Forms,
Ulc in "Ulc.pas";

{$R *.RES}

begin
Application.Initialize;
Application.Run;
end.

Вообщем цель программы вы уже наверно поняли, только вот как сделать чтобы все это работало? ShowMessage в юните не всплывает и когда я нажимаю Run программа открывается и тут же закрывается :-(
Заранее благодарен.


 
Fredericco ©   (2002-04-11 10:38) [1]

Совсем забыл. В юните в процедуре TF.Creat есть еще строка F:=TF.Create;


 
Anatoly Podgoretsky ©   (2002-04-11 10:46) [2]

procedure TF.Creat(); это наверно очепятка, надо .Create;

Fredericco © (11.04.02 10:38)
Где эта строка и когда вызывается?


 
Fredericco ©   (2002-04-11 11:08) [3]

Anatoly Podgoretsky >> Привожу пример юнита с поправками:

unit Ulc;

interface
uses
ExtCtrls, ScktComp,Dialogs;

type
TF=class(TObject)
ClientSocket1: TClientSocket;
Timer1: TTimer;
constructor Create();
procedure Tmr(Sender: TObject);
procedure DisCon(Sender: TObject;
Socket: TCustomWinSocket);
end;

var
F:TF;
implementation


constructor TF.Create();
begin
ShowMessage("Работает");
F:=TF.Create;
ClientSocket1:=TClientSocket.Create(nil);
Timer1:=TTimer.Create(nil);
ClientSocket1.Host:="localhost";
ClientSocket1.Port:=20000;
ClientSocket1.OnDisconnect:=DisCon;
Timer1.OnTimer:=Tmr;
end;

procedure TF.DisCon(Sender: TObject;
Socket: TCustomWinSocket);
begin
ClientSocket1.Free;
Timer1.Free;
F.Free
end;

procedure TF.Tmr(Sender: TObject);
begin
if ClientSocket1.Active=True then ClientSocket1.Socket.SendText("aa");
end;


end.


 
SVM   (2002-04-11 12:23) [4]

Организуй вместо Application.Run цикл сообщений. Или создай главное окно.


 
Anatoly Podgoretsky ©   (2002-04-11 12:29) [5]

Тебе что стека не жалко, ты же пытаешь рекурсивно сам себя создавать

constructor TF.Create();
begin
ShowMessage("Работает");
F:=TF.Create;

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


 
Fredericco ©   (2002-04-11 12:57) [6]

Anatoly Podgoretsky >> Все понял, кроме одного, что писать до строчки

Application.Run;

?


 
Fredericco ©   (2002-04-11 12:58) [7]

SVM >> Как раз окно-то мне и ненужно. А что такое цикл сообщений?


 
Anatoly Podgoretsky ©   (2002-04-11 13:06) [8]

Объект надо создать, он у тебя нигде не создается.


 
Fredericco ©   (2002-04-11 13:22) [9]

Anatoly Podgoretsky >> F:=TF.Create; не создает?



Страницы: 1 вся ветка

Текущий архив: 2002.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-80894
f0rm
2002-04-14 15:19
2002.04.25
Нужна процедура загрузка и сохранения item ов в listview e


6-81027
Dmitriy_0
2002-02-11 09:30
2002.04.25
Как


14-81053
Kozhanov
2002-03-19 15:06
2002.04.25
IMHO ?


1-80883
GrayWolf
2002-04-14 09:05
2002.04.25
MDI-приложение


1-80930
Yakudza
2002-04-11 16:03
2002.04.25
Symbol was eliminated by linker