| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Turbo Vision!!! |
| Автор: Fighter 14.4.2005, 02:25 |
| Я делаю программу на Turbo Vision. Что за программа - не важно. Допустим, что для того чтобы создать новый документ у меня в программе будут строки ... var R: TRect; begin R.Assign(0,0, 80, 23); Desktop^.Insert(New(PMyDoc, Init(R, '', 0))) end; ... В данном случае PMyDoc - это мой собственный класс окна с документом. Предположим что моя программа работает с массивом строк (заметьте, это не текстовый редактор). Этот массив строк программа должна выводить в окно и т.д. Программа многодокументная. Вопрос следующий - где мне следует описать этот массив строк, в классе приложения или в классе окна? Хотя мне почему то кажется что в классе окна. Прав ли я? |
| Автор: Fedor 14.4.2005, 07:34 |
| Все зависит от того, где ты используешь этот массив строк. Если он юзается постоянно втечение работы программы для всех окон один и тотже, то тогда нужно в классе приложения. Если для каждого окна соотв вот такой массив, то кончено в классе окна. Если один такой массив соответствует конкретному документу, то классу документа. |
| Автор: Romtek 14.4.2005, 22:29 |
| PMyDoc потомок какого объекта? |
| Автор: Fighter 15.4.2005, 04:31 | ||||
PMyDoc = ^TMyDoc; TMyDoc = object(TWindow) ... end;
У меня, кстати, если точнее, то не массив а коллекция. Да, кстати, у меня прямо в самой коллекции есть функция записи в файл всей коллекции (функция SaveToFile). Даже если я и объявлю её в классе окна, то как мне через приложение мне обратиться к окну чтобы я мог вызвать эту функцию? |
| Автор: Romtek 15.4.2005, 09:28 |
| Стоит всё-таки объявлять объявлять глобальной переменной. Хранение строк в коллекции не имеет оношения к тому, кто их отображает. Вот, писал где-то год назад программу для Турбо Вижна: мини база данных (создание, редактирование, поиск) на основе коллекций. Смотри как я реализовал её: Добавлено @ 09:31 Для записи различных типов документов перекрывай в потомке коллекции функцию SaveToFile. |
| Автор: Fighter 16.4.2005, 03:21 | ||
Это чуть-чуть не совсем так. В коллекции у меня хранятся не строки а объекты пользовательского типа (записи, одна булевая переменная и две другие стринговые). Во-время работы комп должен просчитывать что выводить в окно. У меня приложение многодокументное и если хранить все в глобальной переменной, то при каждом создании окна надо создавать объект. А я думал что он будет создаваться автоматически при создании окна. Так же легче и тем более определять, к кому относится данный объект совсем не нужно. |
| Автор: Romtek 18.4.2005, 16:17 |
| Ну... зависит от реализации. Это делай уже как тебе удобнее. "Автоматически" - тогда надо описывать в конструкторе (инициализация объекта). Я не понял, ты получил ответ на вопрос или нет? |