Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

перекрытие панелькой


vera ©   (2014-02-03 21:59:00) 

вот есть форма (1), на кот. запрашивается неск. параметров, потом производятся действия и выводится результат.
вижу, что если результ выводить на новой форме - прога растет в размерах.

поверх формы 1 (на нейже), добавляю невидимую панель с контролами результатов (мемо, едиты, лабелы). панель активируется поверх всех первоначальных контролов запроса с выводом инфы (основном текст и кнопкой "готово"), по кнопе панель закрывается и снова доступны контролы для ввода на основной форме.

нормально ли это с точки зрения ресурсов и тп?
вроде как нов. форму не создаю, результ. доступны, и тп.

гложет вопрос - вот когда я эту панельку активирую над теми кто под ней - нельзяли (или можно ли) как то туда ТАБ или др пробраться и там поменять чтото (результ от тех галок зависит)?
или надо перед видимостью панели с результом проходить по всем контролам и делать их енайбле= фальш?

или мож отдельной формой все же?


Dennis I. Komarov   (2014-02-05 09:42:00) [1]

В реальности будет:
... then begin
 бла
 бла
 бла
end;

А в [0] даже ModalResult не нужен, а возможно лучше Show - несколько форм с результатами при различных исходных...


Ega23   (2014-02-05 00:39:00) [2]


>  В реальности же по-другому писать будешь.


Почему? В реальности я именно так и пишу:

 if ShowModal <> ... then
  ////


Dennis I. Komarov   (2014-02-04 20:31:00) [3]


> Просто как бы получение результата от ShowModal уже подразумевает
> то, что форма была закрыта.


А вон ты про что... Я и не заметил, автоматом написал. В реальности же по-другому писать будешь.


Ega23   (2014-02-04 16:57:00) [4]


> ну смотря что нужно от этого диалога...


Просто как бы получение результата от ShowModal уже подразумевает то, что форма была закрыта.


Dennis I. Komarov   (2014-02-04 16:44:00) [5]


> А зачем в твоём примере Close?

ну смотря что нужно от этого диалога...
По-хорошему caFree а OnClose, но не в этом суть...


Ega23   (2014-02-04 15:34:00) [6]


> поверх формы 1 (на нейже), добавляю невидимую панель с контролами
> результатов (мемо, едиты, лабелы). панель активируется поверх
> всех первоначальных контролов запроса с выводом инфы (основном
> текст и кнопкой "готово"), по кнопе панель закрывается и
> снова доступны контролы для ввода на основной форме.


Если тебе так вот прямо необходимо сделать всё строго в одной форме, то, ИМХО, лучше взять PageControl с двумя TabSheet-ами без закладок, и на этих шитах уже свои контролы располагать. Управлять переключением - PageControl.ActiveTab
Но я бы сделал отдельную форму с результатом.


Ega23   (2014-02-04 15:30:00) [7]


> Где в моем примере растрата памяти?


А зачем в твоём примере Close?


vera   (2014-02-04 00:25:00) [8]

спасиб. смысл уже завтра пойму.


RWolf   (2014-02-03 22:31:00) [9]

всё, что на форме не должно работать, надо явно запрещать/прятать.
если нет, то контролы будут выбираться, и с ними можно будет взаимодействовать.
можно сгруппировать контролы в контейнеры вроде тех же панелей, и запрещать панель целиком.


Dennis I. Komarov   (2014-02-03 22:31:00) [10]


> если с панелькой поверх делаю - норм? то что под ней окажется
> - будет себя тихо вести?

Глупости:
1. Пару-тройку таких панелей - уже за\x10путаешься.
2. Про память уж молчу :)


Dennis I. Komarov   (2014-02-03 22:28:00) [11]


> 1. по вашему получается использование памяти - это не нужно,
>  хочется оставить текущий размер
> 2. ну и что что был актуален. что теперь - сорить ими чтоли
> .. я вот может только сейчас мыслю..

Где в моем примере растрата памяти?


vera   (2014-02-03 22:28:00) [12]

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


RWolf   (2014-02-03 22:20:00) [13]

а я и не о памяти говорю (экономить память на элементах GUI — в чистом виде бесполезная трата времени).
речь шла об исчерпании хэндлов GDI.


vera   (2014-02-03 22:15:00) [14]

кстати спасибо за ответ, ато в соседней ветке все молчат..


vera   (2014-02-03 22:14:00) [15]

обоим.
1. по вашему получается использование памяти - это не нужно, хочется оставить текущий размер
2. ну и что что был актуален. что теперь - сорить ими чтоли .. я вот может только сейчас мыслю..

>> Если скрыть панель, все контролы на ней тоже скрываются, табом их выбрать нельзя, передать фокус тоже.

да, но вопрос не о них, а о тех кто под ними


RWolf   (2014-02-03 22:04:00) [16]

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


Dennis I. Komarov   (2014-02-03 22:03:00) [17]

with TResultForm.Create() do
try
if ShowModal = mrOK  then
 Close;
finally
 Free;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо