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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2010, 19:12   #1
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию Скрытие кнопки при нажатии на нее

Здравствуйте. Вот написал программу, здесь при нажатии на Button1 в ScrollBox появляются кнопки. Как реализовать такое(с минимальными затратами), что при клике на каждую кнопку ее Visible переходил в False?
Реализацию тупым методом я знаю...но не хочется писать для каждой кнопке по процедуре...

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 i: Byte;

begin
 if verCreated then
   exit;
 verCreated := true;
 for i := 1 to 10 do
 begin
 {Create the buttons}
 RunTimeButtons[i] := TButton.Create(Self);
 with RunTimeButtons[i] do
 begin
  Parent := ScrollBox1;
  Caption := 'Button' + IntToStr(i);
  Top := i*height;
  Tag := i;
  {Assign a OnClick handler}
     Visible := True;
 end;
  end;
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 03.08.2010, 19:48   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Код:
procedure TForm1.ButtonClick(Sender: TObject);
begin
 (Sender as TButton).visible := false  
end;
и назначай этот обработчик всем кнопкам
пыщь
JTG вне форума Ответить с цитированием
Старый 03.08.2010, 21:23   #3
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

В вышеуказаном коде, аналогом указал создание TMemo, в ваш обработчик поставил :

Код:
procedure TForm1.ButtonClick(Sender: TObject);
begin
 (Sender as TButton).visible := false;
(Sender as TMemo).Visible:=true;
end;
Неужели это ошибочно?

Вот полный код:
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Byte;
n: integer;
begin
if verCreated then
exit;
verCreated := true;
n:=strtoint(edit1.text);
for i := 1 to n do
begin

RunTimeButtons[i] := TButton.Create(Self);
RunTimeButtons1[i] := TMemo.Create(Self);
with RunTimeButtons[i] do
begin
Parent := ScrollBox1;
Caption := '#' + IntToStr(i);
Top := i*height;
Tag := i;
{Assign a OnClick handler}
Visible := True;
align:=alTop;
onclick:=buttonclick;

with RunTimeButtons1[i] do
begin
Parent := ScrollBox1;
Text := '#' + IntToStr(i);
Top := i*height;
Tag := i;
Visible := false;
align:=alTop;

end;
end;
end;
end;
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 03.08.2010, 21:30   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Так... И откуда TMemo взялся? Что именно нужно сделать-то?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 03.08.2010, 21:35   #5
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Выпадающий список все еще хочу сделать вот так) При клике по кнопке, созданная ТМемо, должна становится висибл(индекс Мемо и индек Баттон совпадают). Но она ни висибл ни инвизибл становиться не хочет...
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 03.08.2010, 21:43   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

FindComponent ???
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 03.08.2010, 21:45   #7
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Нет, хочу свой список. у всех компонентов очень узкая специфика.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 03.08.2010, 21:47   #8
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Код:
procedure TForm1.ButtonClick(Sender: TObject);
begin
 (Sender as TButton).visible := false;
(Sender as TMemo).Visible:=true;
end;
и всеже почему неправильно?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 03.08.2010, 21:50   #9
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

По видимому один из end'ов не там поставлен... И какого типа эти RunTimeButtons?

Sender - это кнопка на которую нажали, а вы пытаетесь к нему обратиться как к memo... Узнайте какой у Sender индекс и скрывайте мемо с таким же индексом...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 03.08.2010, 22:03   #10
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
По видимому один из end'ов не там поставлен... И какого типа эти RunTimeButtons?
массив, все компилируется но вылетает какаято ошибка
Цитата:
Sender - это кнопка на которую нажали, а вы пытаетесь к нему обратиться как к memo... Узнайте какой у Sender индекс и скрывайте мемо с таким же индексом...
как узнать этот индекс и как им пользоваться?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск формы при нажатии кнопки SkrudjMakdak Microsoft Office Excel 4 30.07.2010 22:29
событие при нажатии кнопки мыши за формой Izlom Помощь студентам 4 21.07.2010 16:02
Не работает клава а при нажатии на нее перестает работать мышь!! Дима я Компьютерное железо 10 02.03.2010 17:10
Ошибка при нажатии кнопки Skynet91 БД в Delphi 1 08.02.2010 19:45
Скрытие интерфейса при нажатии на кнопку kostghost Общие вопросы Delphi 3 28.08.2009 11:10