Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 23.01.2013
Сообщений: 117
1

Динамическое создание кнопок

26.06.2013, 20:08. Показов 1244. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот что мне надо осуществить. Имеется кнопка с лаконичным название "itbuttonnumber1mazafaka". При её нажатии должна создаваться кнопка, пока она влезает в форму с увеличением параметра left соответственно. А когда она достигнет края формы, параметр left новой кнопки должен равнять 0, а параметр top должен на button[i].Heidth+промежуток(скажем,10).
А проблемы две.
1. С созданием кнопок, которые в массиве. Вылазиет ошибка.
2.С механизмом создания этих кнопок.

Во втором, конечно, наработки есть.
Delphi
1
2
3
4
5
If Form1.width>Button[i].width+Button[i].left+10 then
 begin 
  Button[i+1].top:=button[i].Heigth+10;
  Button[i+1].left:=0;
 end;
Кроме этого, увы, пока ничего. Надеюсь на вашу помощь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2013, 20:08
Ответы с готовыми решениями:

Динамическое создание кнопок
Всем, привет! Помогите, пожалуйста, у меня есть такой код программы, где создаются кнопки...

Динамическое создание кнопок.
Можно сделать так, чтобы при нажатии на одну кнопку создавалась (не появлялась) кнопка?

Динамическое создание кнопок
Панели присвоен слушатель мыши, по нажатию кнопки, должна добавляться кнопка, но она не...

Динамическое создание кнопок
TextBox tbI = new TextBox; Button btU = new Button; Int n=5; for (int i = 0; i < n; i++) { ...

2
Всегда онлайн
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
26.06.2013, 20:52 2
Покажите код полностью. У вас непонятно, цикл это, какой массив...
0
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
26.06.2013, 21:39 3
Вот тебе пример:
Кликните здесь для просмотра всего текста
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
69
70
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  BtnArr : Array Of TButton;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  SetLength(BtnArr,0);
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Finalize(BtnArr);
end;
 
Const
  WidthBtn = 20;
  HeightBtn = 20;
procedure TForm1.Button1Click(Sender: TObject);
Var
  i,l,t : Integer;
begin
  i:=Length(BtnArr);
  SetLength(BtnArr,i+1);
  BtnArr[i]:=TButton.Create(Form1);
  BtnArr[i].Parent:=Form1;
  If i=0 Then
  //Если первая кнопка
  Begin l:=0; t:=0; End Else
  Begin
    l:=BtnArr[i-1].Left+WidthBtn;
    t:=BtnArr[i-1].Top;
    If (l+WidthBtn)>Form1.Width Then
    Begin
      l:=0;
      t:=t+HeightBtn+10;
    End;
  End;
  BtnArr[i].Left:=l;
  BtnArr[i].Top:=t;
  BtnArr[i].Width:=WidthBtn;
  BtnArr[i].Height:=HeightBtn;
  BtnArr[i].Caption:=IntToStr(i);
  BtnArr[i].OnClick:=Button1Click; //Это так событие привязали
end;
 
end.
0
26.06.2013, 21:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2013, 21:39
Помогаю со студенческими работами здесь

Динамическое создание кнопок
Кнопка start создает 5 label и button. Подскажите пожалуйста, как сделать так, чтобы при нажатии bt...

Динамическое создание кнопок
Всем доброго времени суток! Передо мною стала серьезная проблема! Имеется файл "test.txt", его...

Динамическое создание кнопок
Здравствуйте! Нужно создать 2 кнопки на форме. Делаю вот так, но, во-первых, создаётся только 1...

Динамическое создание кнопок
Как создать кнопку, я примерно представляю: TSpeedButton *lbl; lbl=new TSpeedButton(this);...


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

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