|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.11.2007, 20:16 | #1 |
Пользователь
Регистрация: 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 |
09.11.2007, 21:29 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
На самый первый взгляд - разница в разделе USES.
А вообще, что за самоистязание - набирать вручную? Вот уж действительно - удивлению нет прЕдела... Может, вы и расчеты на калькуляторе с помощью деревянных счетов проверяете? Или вы копировать текст не умеете? |
09.11.2007, 21:56 | #3 |
Пользователь
Регистрация: 03.11.2007
Сообщений: 25
|
Дело в том, что мне необходимо вставить процедуру OnError, а она необрабатывается. Я долго голову морочил пока заметил что новые процедуры не обробатываются.
Причем только процедуры, ненаю как их назвать, вобщем те которые не явно запускаются в программе, а те, что должна запускать система при определенном событии |
09.11.2007, 22:46 | #4 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Или у вас трудность именно с внесением кода в имеющийся листинг? |
|
10.11.2007, 08:56 | #5 | |
Пользователь
Регистрация: 03.11.2007
Сообщений: 25
|
Цитата:
Заранее благодарен. |
|
10.11.2007, 14:09 | #6 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
В инспекторе объектов выбери нужный, зайди на вкладку 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)
Проверь себя! Онлайн тестирование | Мой блог |
|
10.11.2007, 14:56 | #7 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
(Надо кого-то из гестапо звать - клиент молчит, как партизан. Мол, помогите в том, не знаю в чем...) |
|
10.11.2007, 18:28 | #8 |
Пользователь
Регистрация: 03.11.2007
Сообщений: 25
|
Мне нужно обрабатывать ошибку соедения с сервером. Благодаря вам разобрался, огромное спасибо всем за помощь.
Чтоб не создавать новую тему подскажите... Есть программа, хочу добавить в нее настройки, т.е. нажимаешь на основном окне кнопку и должно появляться еще одно окно (кажется оно называется подчиненное) там я размещу настройки. Я сделал так - создал новое приложение, в нем две формы. Вопрос: какие команды нужно записать на кнопке чтобы перейти (показать, передать управление) второй форме. И какими командами эту форму скрыть и вернуться на основное окно? |
10.11.2007, 18:43 | #9 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Код:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать так,чтобы в 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 |