Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2015, 11:38   #1
salernitana
Пользователь
 
Регистрация: 18.04.2012
Сообщений: 10
По умолчанию Не активен Edit

Добрый день, прошу вашей помощи.
Создаю небольшой проект для себя... только учусь)))
Есть главная форма с 2-мя панелями,
есть несколько форм, которые открываются в пределах одной из панелей главной формы.
на всех таких формах не активен компонент EDIT
как мне это исправить?

формы в передлах панели создаются следующим кодом

Код:
procedure TFGeneral.ChassisPriceClick(Sender: TObject);
begin
if FChassisPrice=nil then
FChassisPrice:=TFChassisPrice.Create(Self);

FChassisPrice.parent:= panel1;
FChassisPrice.Show;
end;
заранее благодарен.
salernitana вне форума Ответить с цитированием
Старый 16.10.2015, 12:22   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

не активен = в соответствующем окне не видна каретка(курсор позиции ввода) ?
Код:
FchassisPrice.Show;
FchassisPrice.Edit???.SetFocus;
Вместо динамического создания форм (для показа на панелях другой формы) лучше было бы использовать фреймы (TFrame)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 16.10.2015, 12:33   #3
salernitana
Пользователь
 
Регистрация: 18.04.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
не активен = в соответствующем окне не видна каретка(курсор позиции ввода) ?
Код:
FchassisPrice.Show;
FchassisPrice.Edit???.SetFocus;
Вместо динамического создания форм (для показа на панелях другой формы) лучше было бы использовать фреймы (TFrame)
именно так - не видна каретка.
FChassisPrice.Edit1.SetFocus; - решает проблему только при открытии окна.
если убрать фокус из EDIT1 вернуть его обратно не получается(
ну по крайней мере у меня)


на счет фреймов...
все окна создаются в единственном экземпляре и все имеют свое единственный неповторимый вид.
хотя может я эти фреймы "не умею готовить"
salernitana вне форума Ответить с цитированием
Старый 16.10.2015, 12:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если убрать фокус из EDIT1 вернуть его обратно не получается(
Ты формы засовываешь в панели? Тогда не удивляйся что что-то не так работает.
Действительно вместо форм создай Frame, на нем размести компоненты и работай с ним. Или делай MDI приложение, в котором все дочерние формы висят внутри главной.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2015, 13:03   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

фреймы готовятся точно так же как и формы.
c одним единственным отличием (New -> Form ) as (New -> Frame )
и еще для его показа он (готовый фрейм) быть установлен на какую либо форму(сам по себе он не может быть показан).

после того как фрейм будет готов
его можно
а) сразу установить на нужную форму как обычный компонент
Standart -> Frame -> далее выбрать нужный

б) установить программно (аналогично тому что вы делаете с формой).
Код:
f:=TFrameXXX.Create(self);
f.parent:=self.panelXXX;
здесь есть пример
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 16.10.2015 в 13:17.
evg_m вне форума Ответить с цитированием
Старый 16.10.2015, 14:35   #6
salernitana
Пользователь
 
Регистрация: 18.04.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ты формы засовываешь в панели? Тогда не удивляйся что что-то не так работает.
Действительно вместо форм создай Frame, на нем размести компоненты и работай с ним. Или делай MDI приложение, в котором все дочерние формы висят внутри главной.
MDI формы работают абсолютно не так как это нужно. изначально через MDI я и реализовывал свой проект.

с фреймами действительно все ок: EDIT доступен, но к этим фреймам еще кучу всего необходимо прикручивать(((
мне нужна возможность сворачивать одно окно и пользоваться другим.
salernitana вне форума Ответить с цитированием
Старый 16.10.2015, 16:21   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
но к этим фреймам еще кучу всего необходимо прикручивать(((
можно пример того что надо прикрутить.

Для того чтобы НЕ прикручивать чтобы-то не было к КАЖДОМУ (если это надо будет прикрутить ко всем) надо использовать НАСЛЕДОВАНИЕ.

делаем форму (или фрейм без особой разницы ) к которой "прикручиваем" это общее.

ВСЕ остальные формы(фреймы) создаем как наследников
File ->New -> Other... ->
в окне(ФОРМЕ NewItems) находим вкладку проекта (с именем твоего проекта)
на вкладке находим нужного нам родителя.
В итоге все необходимое уже прикручено. если надо ДОБАВЛЯЕМ недостающее.

P.S. обсуждение лучше вести в ОБЩЕМ форуме. (больше шансов что получите ответ)
чем вас не устроил MDI (показ одного и сворачивание там есть "из коробки") ?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 16.10.2015, 16:30   #8
salernitana
Пользователь
 
Регистрация: 18.04.2012
Сообщений: 10
По умолчанию

Вообще чтоб было понятнее, я хочу повторить интерфейс 1С
1) меню находится над панелью инструментов
2) панель инструментов главного видна пользователю независимо от того есть развернутые окна или нет.
3) все открывающиеся из меню окна разворачиваются в пределах ограниченой зоны (между панелюь интсрументов и стату строкой) - это не устраивает в MDI хотя может я не знаю где и как это настроить или прописать.
4) окна в свернутом состоянии находятся на отдельной панели и их можно развернуть в любой момент не сворачивая остальные окна.

Если брать MDI приложение - то такая ерунда во всем MICROSOFT OFFICE если не изменить размер развернутого окна никогда не узнаешь сколько у тебя еще есть свернутых.
salernitana вне форума Ответить с цитированием
Старый 16.10.2015, 16:31   #9
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
фреймы готовятся (New -> Form ) as (New -> Frame )
и еще для его показа он (готовый фрейм) быть установлен на какую либо форму(сам по себе он не может быть показан).
здесь есть пример
Как давно я это ждал!
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 20.10.2015, 12:22   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
4) окна в свернутом состоянии находятся на отдельной панели и их можно развернуть в любой момент не сворачивая остальные окна.
Вы уверены что там именно свернутые окна, а не СПЕЦИАЛЬНЫЕ заглушки (некие "стандартные" панели-кнопки) которые имеют ДОСТУП (привязку) к одному из "спрятанных" окон.
лично я бы так и реализовывал "меню открытых окон"
панель-кнопка единого образца
+ настройка вида по данным связанного окна
+ действия по разворачиванию, показу связанного окна.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать что бы в Edit был прозрачный текст который при введение в Edit все исчез alman12 Общие вопросы Delphi 22 09.06.2014 22:21
DIV не активен record222 JavaScript, Ajax 2 15.12.2013 15:58
Export Template не активен... Или как делать шаблоны проектов? TwiX Visual C++ 2 03.10.2011 18:33
Не активен блок Ссылки и списки литературы. Word2010 (14) user__ Microsoft Office Word 4 19.04.2011 10:52
Курсор не активен segail Microsoft Office Excel 4 20.03.2010 21:10