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

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

Два события на одну кнопку [D7, XP]


Страницы:   1 2

Mozgan ©   (2009-03-17 11:57:00) 

Добрый день!

Мастера напомните пожалуйста, совсем забыл, как реализовать примерно следующее:

Есть форма. на ней несколько панелей. На каждой панели есть одна кнопка. Событие кнопки должно расскрывать/прятать панель.
т.е. нажав, панель раскрывается, опять нажав - скрывается.


{RASkov}   (2009-03-18 11:32:00) [1]

> [19] Mozgan   (18.03.09 11:12)
> Когда одна из панелей принимает свойство alClient, то остальные
> ниже пропадают с экрана

Они оказываются под "алигнутой" панелью... И не учавствуют в дележке места... если имют Align=alNone
тебе только самому размещать их у себя. См [22].


clickmaker   (2009-03-18 11:25:00) [2]

> размеры автоматически подгоняются

Form.OnResize


Mozgan   (2009-03-18 11:23:00) [3]


> А куда должны деваться?


Никуда. Они всегда должны быть на виду. т.е. размеры автоматически подгоняются.


Ega23   (2009-03-18 11:22:00) [4]


> то остальные ниже пропадают с экрана.


А куда должны деваться?


Mozgan   (2009-03-18 11:12:00) [5]

Хорошо :)

На форме есть нескольео панелей с кнопками выполянющие вышеуказанные действия над ними. размер панели решил изменить на максимально возможное. Занимало все пространство, т.е. alClient.
Когда одна из панелей принимает свойство alClient, то остальные ниже пропадают с экрана. Вот этого эффекта и хотелось бы избежать. По идее хочу реализовать как в MSDN.


{RASkov}   (2009-03-18 11:06:00) [6]

> [17] Mozgan   (18.03.09 11:02)
> Относительно темы возник вопрос, как лучше реализовать размещение
> панелей так, чтобы когда меняется одна из панелей например
> "alclient", тогда чтобы все остальные были на месте

Во первых не понятно...
Во вторых - это не относительно темы...
В третьих - это уже отдельный вопрос...


Mozgan   (2009-03-18 11:02:00) [7]

Именно такая задача и стояла. Только вопрос немного неправильно (неточно) сформулирован. ок у меня был "для себя". в программе он присутствовал лиш для проверки. Не обращайте внимания, мастера.

Относительно темы возник вопрос, как лучше реализовать размещение панелей так, чтобы когда меняется одна из панелей например "alclient", тогда чтобы все остальные были на месте


{RASkov}   (2009-03-18 10:54:00) [8]

> [13] Mozgan   (18.03.09 10:38)
> Что можете сказать по данному решению

if panel1.Height = 41 then panel1.Height:= 100 else panel1.Height:=41;
Зачем лишний Ок, который всегда False)


brother   (2009-03-18 10:53:00) [9]

по [13] решение не являестя ответом на [0]


brother   (2009-03-18 10:52:00) [10]

procedure TForm1.Button1Click(Sender: TObject);
begin
if panel1.Height = 41 then panel1.Height:= 100;
                      else panel1.Height:=41;
end;


Mozgan   (2009-03-18 10:38:00) [11]

Эх мастера-мастера.....пишите непонятно что и объясняете как-то не так человеку. Извините, плиз.

Я решил задачу с простым if else then
Что можете сказать по данному решению?


procedure TForm1.Button1Click(Sender: TObject);
var ok: boolean;
begin
 ok:= false;
 if panel1.Height = 41 then
 begin
 panel1.Height:= 100;
 ok:=false;
 end else
 if ok = false then
 begin
   panel1.Height:=41;
 end;
end;


pavel_guzhanov   (2009-03-17 14:02:00) [12]

if панель.раскрыта then
  скрыть панель
else
  раскрыть панель;


Ega23   (2009-03-17 12:44:00) [13]


> TPageControl


Если я правильно понимаю то, что нужно автору, то это нифига не TPageControl, а что-то типа Ну которче, как в MSDN сделано - на кнопку нажал - тут же пример какой-нибудь раскрылся.


немо2   (2009-03-17 12:37:00) [14]


> Реализуй компонент

есть такой. TPageControl называется. Юзер вправе на ожидаемую реакцию, а не на нажми на кнопку и  - опа!, а ты думал?!


Ega23   (2009-03-17 12:27:00) [15]

Ну и что? Реализуй компонент. Один компонент - одна панель с одной кнопкой (точнее, 2 панели, но про вторую ты ничего не знаешь).


немо2   (2009-03-17 12:21:00) [16]


> Есть форма. на ней несколько панелей. На каждойпанели есть
> одна кнопка.Событие кнопки должно расскрывать/прятать панель.
>

а что
> реализовать свой компонент

это понятно.


Ega23   (2009-03-17 12:19:00) [17]


> а если панель скроется, то как нажать на кнопку, на ней
> лежащую?

Например, реализовать свой компонент. Главная панель, на ней кнопка и панель с содержимым. При нажатии на кнопку главная панель меняет высоту.


{RASkov}   (2009-03-17 12:03:00) [18]

> [2] Mozgan   (17.03.09 12:00)

Если скрыта тогда раскрыть иначе скрыть;


немо2   (2009-03-17 12:03:00) [19]

а если панель скроется, то как нажать на кнопку, на ней лежащую?


Ega23   (2009-03-17 12:01:00) [20]


> А подробное можно. С примером ?


Ты мне предлагаешь за тебя работу сделать? Я тебе показал, как от конкретной кнопки получить экземпляр объекта TPanel, на которой кнопка лежит.


Страницы:   1 2

Наверх

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