![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| АлексейБ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.7.2005 Репутация: нет Всего: нет |
Подскажите пожалуйста, что я не правильно сделал.
В процедуре HandleEvent, пишет ошибку в этой строке cmNewWin: PrintClientList; (Unknown identifier). Из учебника: В описание типа прикладной программы добавьте новый метод для просмотра коллекции, назвав его, например, PrintClientList. Свяжите вызов этой процедуры с некоторой командой меню. Для этого перекройте обработчик событий прикладной программы - метод TApplication.HandleEvent и в нем сопоставьте вызов данной процедуры соответствующей команде. Мне непонятно, как перекрыть и где? Заранее Благодарю.
|
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
АлексейБ,
во-первых, не забывай инициализировать объект Client (в вышеприведенной программе его инициализации я не увидел)... Теперь об ошибке: она возникает, потому что метод PrintClientList определен в TClient, а вызывать его ты пытаешься из TMyAppl ... Делай так:
|
|||
|
||||
| АлексейБ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.7.2005 Репутация: нет Всего: нет |
во-первых, не забывай инициализировать объект Client (в вышеприведенной программе его инициализации я не увидел)...
Извини не совсем понимаю можно для "чайника" с примером Добавлено @ 11:46 Просто нужно было добавить строку в constructor TClient.Init; inherited Init; |
|||
|
||||
| АлексейБ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.7.2005 Репутация: нет Всего: нет |
сейчас выдает ошибку (Stack overflowe error)
в процедуре PrintClient(P:Pclient);far; после слова begin |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
И ты уверен, что после этого у тебя Client инициализируется? Я вынужден тебя разочаровать... Попробуй, установи на вновь добавленную строку курсор и нажми на F4 ( меню Run -> Go To Cursor) |
|||
|
||||
| АлексейБ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.7.2005 Репутация: нет Всего: нет |
ты прав.
а как это исправить не подскажешь |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
У тебя просто перемешано все в программе. Нужно разделить понятия "клиент" и "список клиентов". Например, вот так:
Это сообщение отредактировал(а) volvo877 - 2.9.2005, 14:24 |
|||
|
||||
| АлексейБ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.7.2005 Репутация: нет Всего: нет |
Просто супер. работает
Большое спасибо |
|||
|
||||
| АлексейБ |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.7.2005 Репутация: нет Всего: нет |
для промстора коллекции нужно создать окно, в которое необходимо поместить объект TTerminal, который выводит информацию со скроллингом из некоторого буфера.
я создал новый тип
создал экзмепляр стандартного окна (типа TWindow)
создаем терминал... открываем файл buff.txt, client.txt. организовываем цикл пока не конец файла считывается строка из файла client.txt и записывается в buff.txt. теперь связываем b (переменная файла buff.txt) с терминалом
Выводит новое окно с вертик. и горизонт. полосой прокрутки. БЕЗ ИНФОРМАЦИИ (коллекции из файла) Ошибок не выдает, но конечного результата нет подскажите плиз |
||||||
|
|||||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Тебе обязательно нужно работать с TTerminal-ом? По-моему проще для просмотра коллекции унаследоваться от TListBox ... |
|||
|
||||
| АлексейБ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.7.2005 Репутация: нет Всего: нет |
мне нужно сделать работу
есть методичка там в кратце указано, что нужно делать вот я и пытаюсь но в результате должно получится: - вывод коллекции (- Диски( Название, Автор, год, кол-во песен) и если можно при выборе диска открывалось еще одно окно для просмотра инфо. о песнях - на этом диске); - сортировка; - поиск; посоветуй если лучше сделать это по другому |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Вот, набросал тебе пример построения списка прямо из коллекции, без чтения файла. Чтобы посмотреть, как это работает - запусти программу и жми F9 (или Database -> View) :
Для того, чтобы реализовать сортировку, TClientList наследуй не от TCollection, а от TSortedCollection, тогда сортировка будет производиться автоматически по заданному тобой в методе Compare критерию... Это сообщение отредактировал(а) volvo877 - 5.9.2005, 12:17 |
|||
|
||||
| АлексейБ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 1.7.2005 Репутация: нет Всего: нет |
т.е. Constructor TClientList.Init - сюда нужно дописать, чтоб считывал информацию из файла.
а при выходе из программы записывал все в файл процедура: PrintClient(P: PClient) уже не нужна, а TClientList.PrintClientList - нужно очистить буду думать |
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |