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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2011, 10:26   #1
Рик
Пользователь
 
Регистрация: 07.02.2011
Сообщений: 29
По умолчанию Массив элементов управления

Здравствуйте. Как программно загрузить в форму массив элементов управления(кнопки)? И можно ли каждой кнопке присвоить свой индекс, чтоб обращаться к конкретному элементу? Если можно, то покажте, как расположить элементы упорядочано: матрица 4 Х 5, например
Рик вне форума Ответить с цитированием
Старый 12.02.2011, 11:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
загрузить в форму
Откуда?
Цитата:
И можно ли каждой кнопке присвоить свой индекс
Вариантов море. Я лично предпочитаю просто дать имя, в котором будет фигурировать этот "индекс". А потом либо в цикле пройдя по контролам:
Код:
for i:=0 to controlscount-1 do
 if (Controls[i] is TButton)and(TButton(Controls[i]).Name='_'+Индекс) then ...
Либо через FindComponent найти по имени кнопку.
Цитата:
покажте, как расположить элементы упорядочано: матрица 4 Х 5, например
Упорядоченно? В DrawGrid их упакуй:
Код:
unit Unit1;

interface

uses       Contnrs,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    DrawGrid1: TDrawGrid;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    bs:TComponentList;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;b:TButton;
begin
 bs:=TComponentList.Create;
 with DrawGrid1 do
  for i:=0 to RowCount-1 do for j:=0 to ColCount-1 do begin
   b:=TButton.Create(DrawGrid1);
   b.Parent:=DrawGrid1;
   bs.Add(b);
  end;
end;

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var b:TButton;
begin
 with TDrawGrid(Sender) do begin
  b:=TButton(bs[ACol+ARow*ColCount]);
  if b=nil then exit;
  with b do begin
   top:=rect.Top;
   Left:=rect.Left;
   Width:=Rect.Right-rect.Left;
   Height:=rect.Bottom-rect.Top;
   show;
  end;
 end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 bs.Free;
end;

end.
Понятна идея?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.02.2011, 11:38   #3
Рик
Пользователь
 
Регистрация: 07.02.2011
Сообщений: 29
По умолчанию

Stilet, спасибо за ответ. Да.... большую часть вашего ответв я не понял...прочитав его я еще раз убедился, что для решения моих задач в Дельфи мне еще многому предстоит научиться.
Рик вне форума Ответить с цитированием
Старый 12.02.2011, 11:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну извини, как я понимаю так и написал... Если делать проще то получится еще больше кода.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.03.2011, 19:44   #5
Рик
Пользователь
 
Регистрация: 07.02.2011
Сообщений: 29
По умолчанию

А как написать процедуру обработки щелчка по этим кнопка?
Рик вне форума Ответить с цитированием
Старый 03.03.2011, 20:00   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

деиствия для всех кнопок должно быть одно и тоже?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 03.03.2011, 20:30   #7
Рик
Пользователь
 
Регистрация: 07.02.2011
Сообщений: 29
По умолчанию

можно ли поподробнее?
Рик вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив элементов управления в VBA litvin44 Microsoft Office Excel 6 08.01.2022 22:36
проблема использования элементов управления в word sirius_ltd Microsoft Office Word 2 30.09.2010 17:51
Динамическое расположение элементов управления Rodion Microsoft Office Excel 1 27.04.2010 13:19
Использование элементов управления akd2009 Microsoft Office Excel 2 30.10.2009 19:55
создания элементов управления на turbo pascal albatros Паскаль, Turbo Pascal, PascalABC.NET 4 15.01.2009 19:15