Главная страница
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.012 c
14-81080
fliz
2002-03-21 09:21
2002.04.25
вчера уронил кактус. на руку :)))


1-80973
Explorer
2002-04-12 12:20
2002.04.25
Как в QuickRep создать несколько страниц


14-81072
Suntechnic
2002-03-20 22:37
2002.04.25
Вот, наткнулся в Инете....


14-81059
limon
2002-03-20 10:59
2002.04.25
Юбилей: компьютерной мышке 50 лет


3-80760
DimNK
2002-04-02 09:07
2002.04.25
Секретность паролей в IB