Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1407403114
atruhin
2014-08-07 13:18
2015.03.22
Нужен совет по алгоритму


2-1391542621
Drowsy
2014-02-04 23:37
2015.03.22
Обновление таблиц на сервере.


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


15-1407394226
alexdn
2014-08-07 10:50
2015.03.22
Гугл кеш


15-1407570953
alexdn
2014-08-09 11:55
2015.03.22
Удалить программу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский