Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 07.12.2009, 16:42   #1
<-TzX->
Оператор ЭВМ
 
Аватар для <-TzX->
 
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений
(для 2 пользователей)
Динамически создаваемые объекты

Допустим при каком то событии программы у меня динамически создается кнопка примерно таким образом:
With TButton.Create(Self) do
 Begin
   \\Тут перечисляю ее свойства
 End;
Ну так вот собственно вопрос: Как обрабатывать события происходящие с динамически созданным объектом. Тот же онклик.
Заранее спасибо.
(Offline)
 
Ответить с цитированием
Старый 07.12.2009, 17:05   #2
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Ответ: Динамически создаваемые объекты

Просто присваеваеш свою процедуру обработчику. onClik у кнопке или просто clik
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dependency Walker (01.07.2013)
Старый 07.12.2009, 17:15   #3
<-TzX->
Оператор ЭВМ
 
Аватар для <-TzX->
 
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Динамически создаваемые объекты

Сообщение от WaReZ_MEN Посмотреть сообщение
Просто присваеваеш свою процедуру обработчику. onClik у кнопке или просто clik
Пару строчек кода можно?
(Offline)
 
Ответить с цитированием
Старый 07.12.2009, 17:22   #4
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Ответ: Динамически создаваемые объекты

Сообщение от <-TzX-> Посмотреть сообщение
Пару строчек кода можно?
Можно


type
  TTestForm = class(TForm)
    procedure FormCreate(Sender:TObject);
  private
    procedure OwnButtonClick(Sender:TObject);
  end;

procedure TTestForm.FormCreate (Sender : TObject);
var i, j : integer;
begin
  for i := 0 to 4 do
    for j := 0 to 4 do
      with TButton.Create (Self) do
      begin
        Caption := Format ('Button %d %d', [i, j]);
        Top     := 100 + 30 * i;
        Left    := 100 + 90 * j;
        Width   := 80;
        Height  := 25;
        OnClick := OwnButtonClick;
        Parent  := Self;
      end;
end;

procedure TTestForm.OwnButtonClick (Sender : TObject);
begin
  ShowMessageFmt ('Нажата кнопка %s', [TButton (Sender).Caption]); 
end;
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
<-TzX-> (07.12.2009)
Старый 07.12.2009, 17:39   #5
<-TzX->
Оператор ЭВМ
 
Аватар для <-TzX->
 
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Динамически создаваемые объекты

Так и думал. OnClick := OwnButtonClick; - во чё забыл =)) Спасиб. Закрывай.

З.Ы. И еще вопрос. procedure TTestForm.OwnButtonClick[i] (Sender : TObject); Такой вариант возможен, если у меня массив кнопок?))
(Offline)
 
Ответить с цитированием
Старый 07.12.2009, 17:44   #6
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Ответ: Динамически создаваемые объекты

Попробуй
(Offline)
 
Ответить с цитированием
Старый 07.12.2009, 17:47   #7
<-TzX->
Оператор ЭВМ
 
Аватар для <-TzX->
 
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Динамически создаваемые объекты

Не это тогда динамически создавать еще и процедуры придется. Лучше в одну параметром передать число а там ифами рулить)
Сам на свой же вопрос и ответил
(Offline)
 
Ответить с цитированием
Старый 07.12.2009, 17:52   #8
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Ответ: Динамически создаваемые объекты

Вот видеш уже хорошо
(Offline)
 
Ответить с цитированием
Старый 08.12.2009, 22:47   #9
<-TzX->
Оператор ЭВМ
 
Аватар для <-TzX->
 
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Динамически создаваемые объекты

По ходу работы возник еще один вопрос. Новую тему создавать не стал, название в принципе подходит. Ну так вот суть.

Есть ListView В нем формируется что то похожее на "Асечный контакт-лист". При Двойном клике по эллементу списка в другой форме динамически создается TabSheet с тем же именем. С этим проблем нет, НО:
Нужно чтобы если кликаем по эллементу списка не создавалась еще одна вкладка, а активировалась существующая.
Делал примерно так:
Var z:integer;
Begin
   
For z:=0 to PageControl.PageCount do
if 
Form2.ListView1.Items[Form2.ListView1.ItemIndex].Caption=TabSheet[z].Caption 
then
Pagecontrol
.ActivePage:=TabSheet[z]
 else
Begin
 TabSheet
[i]:=TTabSheet.Create(Form1);
 
TabSheet[i].Caption:=name;
 
TabSheet[i].PageControl := PageControl
При повторном клике получается что ни одна вкладка не активирована.
Надеюсь понятно объяснил что хочу =)

Пол дня голову ломаю, пните меня в правильную сторону.

Заранее спасибо)
(Offline)
 
Ответить с цитированием
Старый 08.12.2009, 23:09   #10
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Ответ: Динамически создаваемые объекты

Дельфи нет подрукой но мож еще фокус передать?
(Offline)
 
Ответить с цитированием
Старый 08.12.2009, 23:29   #11
<-TzX->
Оператор ЭВМ
 
Аватар для <-TzX->
 
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Динамически создаваемые объекты

Если я тебя правильно понял то в моём случае сделать так:
TabSheet[z].Focused
Критует с Error of read address 000000000

При Повторной активации эллемента списка, получается что вобще не один таб не выделен. Новые создаются нормально...
Может что то в логике перемутил? Там где по заголовкам ищу

UPD: разобрался

Последний раз редактировалось <-TzX->, 09.12.2009 в 20:17. Причина: Разобрался
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с выстрелом в объекты shyrikkk Blitz3D 19 24.01.2010 13:16
PhysX и компаунд-объекты Николай Библиотеки 3 06.12.2009 01:02
Светящиеся объекты и клавиши Crystal 3D-программирование 2 31.07.2007 23:15
Объекты в одном сюрфейсе mr.DIMAS 3D-программирование 3 15.04.2007 22:13
Интерактивные объекты mr.DIMAS 3D-программирование 4 25.02.2007 22:34


Часовой пояс GMT +4, время: 12:21.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com