Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Turbo Vision!!! 
:(
    Опции темы
Fighter
Дата 14.4.2005, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Я делаю программу на Turbo Vision. Что за программа - не важно. Допустим, что для того чтобы создать новый документ у меня в программе будут строки

...
var
R: TRect;
begin
R.Assign(0,0, 80, 23);
Desktop^.Insert(New(PMyDoc, Init(R, '', 0)))
end;
...

В данном случае PMyDoc - это мой собственный класс окна с документом. Предположим что моя программа работает с массивом строк (заметьте, это не текстовый редактор). Этот массив строк программа должна выводить в окно и т.д. Программа многодокументная. Вопрос следующий - где мне следует описать этот массив строк, в классе приложения или в классе окна?

Хотя мне почему то кажется что в классе окна. Прав ли я?
PM MAIL   Вверх
Fedor
Дата 14.4.2005, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



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


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Romtek
Дата 14.4.2005, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



PMyDoc потомок какого объекта?
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Fighter
Дата 15.4.2005, 04:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Цитата(Romtek @ 14.4.2005, 22:29)
PMyDoc потомок какого объекта?


PMyDoc = ^TMyDoc;
TMyDoc = object(TWindow)
...

end;


Цитата(Fedor @ 14.4.2005, 07:34)
Если один такой массив соответствует конкретному документу, то классу документа.


У меня, кстати, если точнее, то не массив а коллекция. Да, кстати, у меня прямо в самой коллекции есть функция записи в файл всей коллекции (функция SaveToFile). Даже если я и объявлю её в классе окна, то как мне через приложение мне обратиться к окну чтобы я мог вызвать эту функцию?
PM MAIL   Вверх
Romtek
Дата 15.4.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Стоит всё-таки объявлять объявлять глобальной переменной. Хранение строк в коллекции не имеет оношения к тому, кто их отображает.

Вот, писал где-то год назад программу для Турбо Вижна: мини база данных (создание, редактирование, поиск) на основе коллекций. Смотри как я реализовал её:
Добавлено @ 09:31
Для записи различных типов документов перекрывай в потомке коллекции функцию SaveToFile.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  stud_db.rar
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Fighter
Дата 16.4.2005, 03:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Цитата(Romtek @ 15.4.2005, 09:28)
Стоит всё-таки объявлять объявлять глобальной переменной. Хранение строк в коллекции не имеет оношения к тому, кто их отображает.

Это чуть-чуть не совсем так. В коллекции у меня хранятся не строки а объекты пользовательского типа (записи, одна булевая переменная и две другие стринговые). Во-время работы комп должен просчитывать что выводить в окно.
У меня приложение многодокументное и если хранить все в глобальной переменной, то при каждом создании окна надо создавать объект. А я думал что он будет создаваться автоматически при создании окна. Так же легче и тем более определять, к кому относится данный объект совсем не нужно.
PM MAIL   Вверх
Romtek
Дата 18.4.2005, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Ну... зависит от реализации. Это делай уже как тебе удобнее.
"Автоматически" - тогда надо описывать в конструкторе (инициализация объекта).

Я не понял, ты получил ответ на вопрос или нет?
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.