Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.03.22;
Скачать: CL | DM;

Вниз

перекрытие панелькой   Найти похожие ветки 

 
vera   (2014-02-03 21:59) [0]

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

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

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

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

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


 
Dennis I. Komarov ©   (2014-02-03 22:03) [1]

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


 
RWolf ©   (2014-02-03 22:04) [2]

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


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

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

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

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


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

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


 
RWolf ©   (2014-02-03 22:20) [5]

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


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

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


 
Dennis I. Komarov ©   (2014-02-03 22:28) [7]


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

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


 
Dennis I. Komarov ©   (2014-02-03 22:31) [8]


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

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


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

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


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

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


 
Ega23 ©   (2014-02-04 15:30) [11]


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


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


 
Ega23 ©   (2014-02-04 15:34) [12]


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


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


 
Dennis I. Komarov ©   (2014-02-04 16:44) [13]


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

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


 
Ega23 ©   (2014-02-04 16:57) [14]


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


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


 
Dennis I. Komarov ©   (2014-02-04 20:31) [15]


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


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


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


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


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

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


 
Dennis I. Komarov ©   (2014-02-05 09:42) [17]

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

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



Страницы: 1 вся ветка

Текущий архив: 2015.03.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.003 c
15-1406733714
ТимоховДА
2014-07-30 19:21
2015.03.22
MS Office Excel 2010 (про позднее связывание)


15-1407326171
Дмитрий СС
2014-08-06 15:56
2015.03.22
Лазерный модуль


3-1303464880
worldmen
2011-04-22 13:34
2015.03.22
TDBGridEh визуальная группировка.


15-1407164036
Rouse_
2014-08-04 18:53
2015.03.22
100 вопросов на собеседовании :)


15-1407616203
Юрий
2014-08-10 00:30
2015.03.22
С днем рождения ! 10 августа 2014 воскресенье