Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2007, 20:16   #1
zAlexandrz
Пользователь
 
Аватар для zAlexandrz
 
Регистрация: 03.11.2007
Сообщений: 25
По умолчанию при ручном наборе некоторые процедуры неработают?

Удивлению нет придела, проконсультируйте.

Разрабатываю систему клиент-сервер. Особо невдоваясь в подробности, скажу, есть программа пример чата, сократил ее до такой формы:

unit MainUnit;

interface

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

type
TForm1 = class(TForm)
ServerSocket: TServerSocket;
ClientSocket: TClientSocket;
ChatMemo: TMemo;
ClientBtn: TButton;
procedure ClientBtnClick(Sender: TObject);
procedure ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.dfm}
procedure TForm1.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ChatMemo.Lines.Add('['+TimeToStr(Time)+'] Подключение к серверу.');
end;

procedure TForm1.ClientBtnClick(Sender: TObject);
begin
ClientSocket.Port:=7777;
ClientSocket.Address:='127.0.0.1';
ClientSocket.Active:=True;
end;
end.

Все работает, ура.
НО если делать самому "с чистого листа"(тупо вручную набрать с распечатки)

Вобщем НАБРАННАЯ работает, запускается, подключается к серверу НО несрабатывает процедура (при трасcировке это видно)

procedure TForm1.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);

и остальные (здесь я их не привел) почему так? Может кто сталкивался?

Вот то что я набираю вручную:

unit Unit1;

interface

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

type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure clientsocket1connect(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Port:=7777;
clientsocket1.Address:='127.0.0.1';
clientsocket1.Active:=true;
end;
procedure tform1.clientsocket1connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('['+TimeToStr(Time)+'] Подключение к серверу.');
end;
end.

Для создания выбираю: file->new-> application
zAlexandrz вне форума Ответить с цитированием
Старый 09.11.2007, 21:29   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

На самый первый взгляд - разница в разделе USES.
А вообще, что за самоистязание - набирать вручную? Вот уж действительно - удивлению нет прЕдела...
Может, вы и расчеты на калькуляторе с помощью деревянных счетов проверяете?
Или вы копировать текст не умеете?
mihali4 вне форума Ответить с цитированием
Старый 09.11.2007, 21:56   #3
zAlexandrz
Пользователь
 
Аватар для zAlexandrz
 
Регистрация: 03.11.2007
Сообщений: 25
По умолчанию

Дело в том, что мне необходимо вставить процедуру OnError, а она необрабатывается. Я долго голову морочил пока заметил что новые процедуры не обробатываются.

Причем только процедуры, ненаю как их назвать, вобщем те которые не явно запускаются в программе, а те, что должна запускать система при определенном событии
zAlexandrz вне форума Ответить с цитированием
Старый 09.11.2007, 22:46   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Дело в том, что мне необходимо вставить процедуру OnError
А вы определили место и условие ее вызова? Параметры ее?
Или у вас трудность именно с внесением кода в имеющийся листинг?
mihali4 вне форума Ответить с цитированием
Старый 10.11.2007, 08:56   #5
zAlexandrz
Пользователь
 
Аватар для zAlexandrz
 
Регистрация: 03.11.2007
Сообщений: 25
По умолчанию

Цитата:
А вы определили место и условие ее вызова? Параметры ее?
нет и незнаю кк это сделать, подскажите где это нужно указывать или дайте ссылку на статью

Заранее благодарен.
zAlexandrz вне форума Ответить с цитированием
Старый 10.11.2007, 14:09   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Дело в том, что мне необходимо вставить процедуру OnError
OnError чего?
В инспекторе объектов выбери нужный, зайди на вкладку Events, найди событие OnError и дважды кликни мышью.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 10.11.2007, 14:56   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от zAlexandrz Посмотреть сообщение
нет и незнаю кк это сделать, подскажите где это нужно указывать или дайте ссылку на статью.
Заранее благодарен.
Ну, а хотя бы на словах вы можете объяснить, какую ошибку вы хотите обрабатывать?
(Надо кого-то из гестапо звать - клиент молчит, как партизан. Мол, помогите в том, не знаю в чем...)
mihali4 вне форума Ответить с цитированием
Старый 10.11.2007, 18:28   #8
zAlexandrz
Пользователь
 
Аватар для zAlexandrz
 
Регистрация: 03.11.2007
Сообщений: 25
По умолчанию

Мне нужно обрабатывать ошибку соедения с сервером. Благодаря вам разобрался, огромное спасибо всем за помощь.

Чтоб не создавать новую тему подскажите...

Есть программа, хочу добавить в нее настройки, т.е. нажимаешь на основном окне кнопку и должно появляться еще одно окно (кажется оно называется подчиненное) там я размещу настройки.

Я сделал так - создал новое приложение, в нем две формы.

Вопрос: какие команды нужно записать на кнопке чтобы перейти (показать, передать управление) второй форме. И какими командами эту форму скрыть и вернуться на основное окно?
zAlexandrz вне форума Ответить с цитированием
Старый 10.11.2007, 18:43   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Я сделал так - создал новое приложение, в нем две формы.
Вопрос: какие команды нужно записать на кнопке чтобы перейти (показать, передать управление) второй форме. И какими командами эту форму скрыть и вернуться на основное окно?
Шаг 1. Открыть файл проекта *.dpr и удалить оттуда строку
Код:
Application.CreateForm(TForm2, Form2);
Шаг 2. Обработка нажатия кнопки открытия формы 2:
Код:
Form2:=TForm2.Create(Self);//создаем форму 2
Form2.ShowModal;//пока она не закроется, форма 1 недоступна
param1:=Unit2.param1;//присвоение новых параметров
param2:=Unit2.param2;//
...
Form2.Free;//освобождаем ресурсы
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так,чтобы в StatusBar-е отображались некоторые сведения из БД???? Alexij БД в Delphi 1 16.06.2008 07:53
DVD-RW дисковод не хочет читать некоторые диски ERASERROR Компьютерное железо 10 02.05.2008 01:00
Похоже, некоторые проблемы... mihali4 Свободное общение 3 08.03.2008 23:41
Перспективы развития рунета, заметки и некоторые выводы. Alar Свободное общение 13 22.01.2008 16:05
Обнуление значений $_SESSION[*] при переходе на некоторые страници kkkggg PHP 3 11.09.2007 23:09