Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];

Вниз

Два события на одну кнопку   Найти похожие ветки 

 
Mozgan   (2009-03-17 11:57) [0]

Добрый день!

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

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


 
Ega23 ©   (2009-03-17 11:58) [1]

TPanel(TButton.Parent)  ?


 
Mozgan   (2009-03-17 12:00) [2]

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


 
Сергей М. ©   (2009-03-17 12:00) [3]


> нажав, панель раскрывается


Что значит "раскрывается" ? Становится видимой что-ли ?


 
Ega23 ©   (2009-03-17 12:01) [4]


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


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


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

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


 
{RASkov} ©   (2009-03-17 12:03) [6]

> [2] Mozgan   (17.03.09 12:00)

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


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


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

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


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


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

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

это понятно.


 
Ega23 ©   (2009-03-17 12:27) [9]

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


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


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

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


 
Ega23 ©   (2009-03-17 12:44) [11]


> TPageControl


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


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

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


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

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

Я решил задачу с простым 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;


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

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


 
brother ©   (2009-03-18 10:53) [15]

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


 
{RASkov} ©   (2009-03-18 10:54) [16]

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

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


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

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

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


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

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

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


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

Хорошо :)

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


 
Ega23 ©   (2009-03-18 11:22) [20]


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


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


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


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


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


 
clickmaker ©   (2009-03-18 11:25) [22]

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

Form.OnResize


 
{RASkov} ©   (2009-03-18 11:32) [23]

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

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



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

Форум: "Начинающим";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.006 c
2-1238002705
Alex_C
2009-03-25 20:38
2009.05.03
Ограничения ф-ции Pos?


11-1200042094
=BuckLr=
2008-01-11 12:01
2009.05.03
Нашествие спамеров на форум


15-1235856601
Юрий
2009-03-01 00:30
2009.05.03
С днем рождения ! 1 марта 2009 воскресенье


2-1237562026
Япотерялсянезнаю
2009-03-20 18:13
2009.05.03
CreateFileMapping(INVALID_HANDLE_VALUE..), когда откл. своп.


15-1236070491
Ega23
2009-03-03 11:54
2009.05.03
Можно ли открыть все юниты в Project Group





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский