0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 81
1

Обращение к созданной кнопке

12.02.2015, 18:12. Показов 2417. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, такой вопрос создал кнопку динамически , как создать процедуру для обращения к ней , ибо делфик ругается. Если у кого есть киньте например событие клик для нее.
Delphi
1
2
3
4
5
6
7
8
 b := TButton.Create(Self);
       b.Parent := GForm;
       b.Name:='ButCansel';
       b.Caption:='Выход';
       b.Left:=32;
       b.top:=50;
       b.Height:=25;
       b.Width:=121;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2015, 18:12
Ответы с готовыми решениями:

Как обратиться к программно созданной кнопке, на программно созданной форме?
Ребят, я новичек в программировании, все время создавал кнопки вручную, но тут стало интересно...

Привязать новой созданной кнопке файл pdf, выбранный из списка
Здравствуйте, столкнулся с такой проблемой, я пишу электронный учебник и у меня есть там пункт...

Обращение к динамически созданной форме из потока
Добрый вечер. Помогите, пожалуйста, разобраться со следующим: имеется форма авторизации, после её...

Обращение к кнопке
У меня есть кнопки: ij11 ij12 .. ij16 ij21 ij22 .. ij26

10
Заблокирован
12.02.2015, 18:30 2
Если меня не изменяет память, это делается через сендр
0
Модератор
5101 / 3328 / 535
Регистрация: 01.06.2013
Сообщений: 6,950
Записей в блоге: 9
12.02.2015, 18:30 3
Лучший ответ Сообщение было отмечено VovkaAl как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.FormCreate(Sender: TObject);
begin
 b := TButton.Create(Self);
       b.OnClick:=MyBtnClick; // MyBtnClick создать руками
       b.Parent := GForm;
       b.Name:='ButCansel';
       b.Caption:='Выход';
       b.Left:=32;
       b.top:=50;
       b.Height:=25;
       b.Width:=121;
end;
 
 
procedure TForm1.MyBtnClick(Sender: TObject);
begin
  // ....
end;
1
Заблокирован
12.02.2015, 18:41 4
Или попробуйте так.
Положите на форму кнопку и щёлкниете по ней. Появится обработчик шелчка.
Теперь имя замените на имя вашей кнопки и замените имя в объявлении обработчика. а кнопку удалите.
0
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 81
12.02.2015, 22:06  [ТС] 5
Спасибо работает, но всё время выползает ошибка, перед компиляцией. Я знаю на что она ругается , не находит кнопку на форме (ибо она создается динамически в процессе), но как выключить Ошибку?)
Миниатюры
Обращение к созданной кнопке  
0
Заблокирован
12.02.2015, 22:12 6
Существует ссылка на несуществующий объект. Прога просит удалить эту ссылку из обьявлений
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
12.02.2015, 22:13 7
Цитата Сообщение от VovkaAl Посмотреть сообщение
как выключить Ошибку?
Ответить на вопрос: Йес
0
Заблокирован
12.02.2015, 22:14 8
Это мой древний проект. там правда создаётся 2 кнопки.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls;
 
type
  TForm1 = class(TForm)
    SpeedButton2: TSpeedButton;
    Label1: TLabel;
    //procedure BClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
  
    procedure CClick(Sender: TObject);
 
 
   // procedure BClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
b,b1 : TButton;
 
begin
b := TButton.Create(self);
       b.OnClick:=CClick;
       b.Parent := Form1;
       b.Caption:='1';
       b.Left:=30;
       b.top:=50;
       b.Height:=25;
       b.Width:=100;
       b.Tag:=1;
 
 b1 := TButton.Create(self);
       b1.OnClick:=CClick;
       b1.Parent := Form1;
       b1.Caption:='2';
       b1.Left:=30;
       b1.top:=90;
       b1.Height:=25;
       b1.Width:=100;
       b1.Tag:=2;
 
end;
 
 
 
procedure TForm1.CClick(Sender: TObject);
begin
 if (Sender as TButton).Tag = 1 then Label1.Caption:='1';
 if (Sender as TButton).Tag = 2 then Label1.Caption:='2';
end;
 
end.
0
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 81
12.02.2015, 22:24  [ТС] 9
mss, если ответить да он почистит код)
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
12.02.2015, 22:27 10
и что ?
0
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 81
12.02.2015, 22:49  [ТС] 11
mss, всё разобрался , недопонял сначала момент обращения к динамически созданным объектам, спасибо всем.
0
12.02.2015, 22:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2015, 22:49
Помогаю со студенческими работами здесь

Нажатие по динамически созданной кнопке
Здравствуйте! Подскажите, как создать событие, которое будет происходит после нажатия, к примеру,...

Как обратиться к кнопке созданной в цикле?
Здравствуйте, пишу игру "Жизнь", клетки реализую в виде кнопок, которые создаются в цикле(их 1600)....

Определение стиля к програмно созданной кнопке
Кнопка создается программно. LinearLayout llc = new LinearLayout(this); LayoutParams params =...

Как обратиться к динамически созданной кнопке?
Доброго времени суток. Билась уже несколько дней над задачей, надеюсь на помощь в её решении....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru