Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое создание кнопок 
:(
    Опции темы
Fhusy
Дата 22.6.2010, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.11.2006

Репутация: нет
Всего: нет



Здарова народ, нужна ваша помощь. есть массив типа tspeedbutton. он нужен для того чтоб на форме по клику появлялись кнопки, как то так:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
   inc(i);
   a[i]:=tspeedbutton.Create(self);
   a[i].Parent:=self;
end;


 и ещё эти кнопки надо двигать по форме перетаскиванием вроде так:

Код

procedure
TForm1.Speedbutton1MouseDown(Sender: TObject; Button: TMouseButton; Shift:
TShiftState; X, Y: Integer);
begin
if Button <> mbLeft then
exit;
X0 := X;
Y0 := Y;
move := true;
(Sender as
TControl).BringToFront;
end;

procedure
TForm1.Speedbutton1MouseMove(Sender: TObject; Shift: TShiftState; X, Y:
Integer);
begin
if move
then with (Sender as TControl)
do
 SetBounds(Left + X - X0, Top + Y - Y0, Width, Height)
end;

procedure TForm1.Speedbutton1MouseUp(Sender: TObject; Button:
TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
move :=false;
end;


если кнопка на форме уже есть то очень просто прописать эти действия в обработчики этих вот событий mouse down, up move, а вот если эти кнопки создаются динамически, то как сделать так чтоб кнопка создавшаяся таким образом, уже имела бы эти обработчики событий такими вот какие они тут показаны?
PM MAIL   Вверх
Frees
Дата 22.6.2010, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Код

   a[i]:=tspeedbutton.Create(self);
   a[i].Parent:=self;
   a[i].OnMouseDown:=Speedbutton1MouseDown;
   a[i].OnMouseMove:=Speedbutton1MouseMove;


Добавлено через 34 секунды
зачем тебе массив a[] ?


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
former
Дата 22.6.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Цитата(Fhusy @  22.6.2010,  12:23 Найти цитируемый пост)
Здарова народ, нужна ваша помощь. есть массив типа tspeedbutton. он нужен для того чтоб на форме по клику появлялись кнопки, как то так:

А какой смысл в статическом массиве в данном случае? Тем более, что тема у тебя "Динамическое..".

Это сообщение отредактировал(а) former - 22.6.2010, 13:02


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Fhusy
Дата 22.6.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.11.2006

Репутация: нет
Всего: нет



ща проверю твою версию, нужен массив затем чтоб упорядочить как то эти все кнопки, знаешь прогу fpinger, вот эти кнопки будут наподобии как там компы и свичи перемащатся по форме чтоб могли

Добавлено через 1 минуту и 33 секунды
а понял, в смысле того что кнопки уже описаны в масиве и никакой динамики нету, это я сразу не заметил
PM MAIL   Вверх
Rennigth
Дата 22.6.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Fhusy, Если тебе все-таки нужен список кнопок, лучше истользуй TList(TObjectList), в общем случае достаточно Sender-а в Event-ах.


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Fhusy
Дата 22.6.2010, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.11.2006

Репутация: нет
Всего: нет



Цитата(Rennigth @ 22.6.2010,  13:08)
Fhusy, Если тебе все-таки нужен список кнопок, лучше истользуй TList(TObjectList), в общем случае достаточно Sender-а в Event-ах.

эх если бы я тебя ещё понимал
PM MAIL   Вверх
Rennigth
Дата 22.6.2010, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Цитата(Fhusy @  22.6.2010,  13:10 Найти цитируемый пост)

эх если бы я тебя ещё понимал 

TObjectList это специальный класс для хранения объектов, находиться в модуле Contnrs.
В обработчиках событий "всегда" можно обратиться к объекту вызвавшего это событие через Sender. У тебя же так и сделано. Массив в данном случае пока не нужен.


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Fhusy
Дата 22.6.2010, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.11.2006

Репутация: нет
Всего: нет



создал  объект типа tobjectlist
Код

a:=tobjectlist.Create;
       a.Add(speddbutton1);

и записал туда реально существующую кнопку, а толку то, как воспользоватся её свойствами и методами, и к тому же как например мне надо напихать туда 255 таких кнопок , я должен  на форме создать 255 кнопок  и только потом их туда записать? они же в tlist тока по именам вроде как заносятся, в таком случае вообще ещё больше места уходит чем при использовании масовов
PM MAIL   Вверх
Fhusy
Дата 25.6.2010, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 16.11.2006

Репутация: нет
Всего: нет



всем спасибо за ответы, разобрался с tobjectlist, очень полезная штука
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.