Как пользоваться TFrame

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Как пользоваться TFrame

Сообщение AbakAngelSoft » 22.01.2010 18:07:55

Все верно - только кэширует память не ось а менеджер памяти rtl. Он делает все правильно - отдать распределенный блок намного быстрее чем запрашивать его у системы. В определенные моменты времени (например если памяти осталось мало) опереционная система обращается ко всем приложениям (зная такую "жадность менеджеров памяти") с просьбой вернуть то что им не нужно. XP делает это при сворачивании главного окна приложения.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Как пользоваться TFrame

Сообщение qivi » 09.02.2010 13:05:59

qivi
Заведи тему - я кажется понял твою проблему, но здесь отвечать не буду - захламим интересное обсуждение.


Давай здесь продолжим, буду признателен!
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как пользоваться TFrame

Сообщение AbakAngelSoft » 09.02.2010 13:54:07

Если я правильно понял:
Фрэймы одного класса могут быть созданы на двух различных формах, методами этих форм. (некой кнопочкой показать)
Ссылки на эти фреймы каждая форма хранит у себя для доступа к свойствам фрэйма. (например в полях)
Скрывается и уничтожается фрайм своим собственным кодом. (например обработчиком кнопки "закрыть" на самом фрейме)
Возникает вопрос как указать форме что фрейм более не доступен через ссылку.

Варианты решения:
1. При уничтожении фрейма проверять к какой форме относится текущий экземпляр. Проверять можно через:
1.1. owner (если при создании фрейма он указан - что в общем-то очень рекомендуется)
1.2. parent (если фрэйм лежит непосредственно на форме)
2. В форме перегрузить procedure Notification(AComponent: TComponent; Operation: TOperation) - все компоненты при своем уничтожении сообщают об этом

PS Я бы предпочел второй вариант как более легко масштабируемый.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Как пользоваться TFrame

Сообщение qivi » 10.02.2010 01:45:51

Да пожалуй FedeX прав... надо почитать что то по общей теории ООП. Дело тут в том, что паскаль/лазарус - это для меня не работа, просто нравится, занимаюсь для души. Плохо что на него толком времени не хватает, работа с учёбой съедают практически всё время. Остаётся только по вечерам.

AbakAngelSoft, не совсем тебя понял, можеш показать на примере, я собрал маленькую демочку моделирующую мою ситуацию без учёта ваших советов (то есть фактически не рабочюю), если есть пара минут можете её переправить под рекомендуемые вами методы с небольшими коментариями?... :oops:


demo.7z
Последний раз редактировалось qivi 10.02.2010 14:07:57, всего редактировалось 1 раз.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как пользоваться TFrame

Сообщение AbakAngelSoft » 10.02.2010 10:49:26

Архив не открывается - запакуйте в более популярный формат, например .tar
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Как пользоваться TFrame

Сообщение qivi » 10.02.2010 11:12:36

Не проблема:
demo.tar


Я его кстате сейчас прямо от сюдова скачал, открылся без проблем. 7z вообще класный архиватор, поинтереснее rar будет.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как пользоваться TFrame

Сообщение AbakAngelSoft » 10.02.2010 11:24:39

:) Вы хотите что бы я Вам помог? Или будете меня учить как выбирать архиватор?
Менеджер архивов в Ubuntu 9.10 (File Roller 2.28.1) Ваш архив не открывает, несмотря на том что поддержка 7z заявлена.
Другие архивы с тем же расширением открываются (50/50).
Я не буду переустанавливать операционную систему для того что бы открыть Ваш архив.
Конечно если основная часть контента в интернете станет распространятся в таком формате я буду вынужен найти решение для 100% открытия этих архивов - а пока не вижу смысла напрягаться.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Как пользоваться TFrame

Сообщение v-t-l » 10.02.2010 11:42:17

[offtop]
Если 7-zip - из последних бета-версий, то проблемы могут быть например из-за нового алгоритма сжатия LZMA2
[/offtop]
v-t-l
энтузиаст
 
Сообщения: 735
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Как пользоваться TFrame

Сообщение Climber » 10.02.2010 12:20:28

Виндовый 7z открывает без проблем. Только вот код написан вроде нормально, выглядит работоспособным... Но ошибки вылетают, я час промучился, так ничего и не понял... Отложу до завтра :roll:
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Как пользоваться TFrame

Сообщение qivi » 10.02.2010 13:49:30

Не по теме => Сжимал дома, Убунта 9.10, 7zip из стандартных реп..., на работе виндовый (не новый бета) открывает без проблем. Проблем с открытием 7z файлов не под одной из систем не испытывал.

Только вот код написан вроде нормально, выглядит работоспособным... Но ошибки вылетают, я час промучился, так ничего и не понял... Отложу до завтра :roll:


Код рабочий для первого открываемого окна Form2, а во тором окне открывается по умолчанию второй фрейм, в модуле которого код реализован исключительно для первого окна, следовательно во втором окне вызывает ошибки. По этому я и говорю что пока что он не рабочий.

AbakAngelSoft, сможете помочь? Я выложил примерчек в tar'е.
А на счёт архиватора близко к сердцу не берите :wink: , это к теме не относится, просто поделился личным мнением, само как то вырвалось. :)
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как пользоваться TFrame

Сообщение AbakAngelSoft » 11.02.2010 14:12:53

Добавил то о чем говорил - работает. Логику вашей программы не понял но ошибки исправил :).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Как пользоваться TFrame

Сообщение qivi » 24.02.2010 06:09:31

То что я хотел навоять не получилось и пока что я от этого отступил. Однако для одной формы я использую набор фреймов (аналогично примеру выложеному постом выше AbakAngelSoft'ом)... возникла новая проблема...

Одному из фреймов раскрывающемуся на данной форме я прописал модуль другого окна (формы) и открываю это окно из этого фрейма (ну или не открываю - как потребуется по ходу действий), в независимости открывал я это окно или нет отработка процедуры уничтожения фрейма и закрытия ока:

Код: Выделить всё
if Assigned(Okno_US.fr01) then
  begin
   FreeAndNil(Okno_US.fr01); // Уничтожаем фрейм
   Okno_US.Close;            // Закрывам окно
  end;   


вызывает ошибку и окошко асемблера. До того как я подкючил модуль этого окна всё работало как часы... что не так? :?:
Помогите пожалуйста...
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как пользоваться TFrame

Сообщение AbakAngelSoft » 24.02.2010 20:18:20

код в студию. Того что вы привели не достаточно...
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Как пользоваться TFrame

Сообщение qivi » 25.02.2010 06:11:11

:shock: ПИПИЦ!!!!!

Вынес проблемную конструкцию из своего проекта в пример... и она работает без проблем, а в реальном проекте вызывает ошибку?!!! Как такое может быть?

Тем не мение пример с данной реализацией прилагаю. Сразу отмечу там в модулях фреймов подюзены модули окон которые в примере не используются, это для того чтоб полностью воспроизвести связи из реального проекта.
02.tar.gz
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как пользоваться TFrame

Сообщение AbakAngelSoft » 25.02.2010 14:30:18

Не могу открыть ваш проект - требует пакет Gradienti
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43

Рейтинг@Mail.ru