Форум: "Начинающим";
Текущий архив: 2015.03.22;
Скачать: [xml.tar.bz2];
Внизперекрытие панелькой Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.001 c