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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2010, 22:24   #1
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
Вопрос TButton - работа с массивом кнопок

ув., господа. Есть необходимость переименовывать кнопки во время программы. Их много, и есть список имен.
Я щас беру просто имена по порядку. к примеру

Код:
var
i : integer;
buttons:array of TButton;
begin
  for I := 1 to 7 do
    buttons[i].Caption := IntToStr(i);
end;


Ругается, чтото типа не доступно... память не может быть прочтена по адресу....
ПОМОГИТЕ разобраться с переименовыванием массива кнопок.


А если массив объявить как
Код:
buttons:array [0..8] of TButton;
То без ошибок, но кнопки не переименовываются....
ВОпрос, как переименовать кнопки в цикле?

Последний раз редактировалось iskurt; 13.07.2010 в 22:36. Причина: Новое наблюдение
iskurt вне форума Ответить с цитированием
Старый 13.07.2010, 22:37   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от iskurt Посмотреть сообщение
Ругается, чтото типа не доступно... память не может быть прочтена по адресу....
ПОМОГИТЕ разобраться с переименовыванием массива кнопок.
Ну вообще полный код не помешал бы. А так:
Код:
for i:=0 to high(buttons) do
Почитай про работу с динамическими массивами.

add:

Вот примерчик на скорую руку набросал:

Код:
var
  Form1: TForm1;
  buttons:array of TButton;
  butt: TButton;
  sch: smallint;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
var  i : integer;
begin
  for I := 0 to high(buttons) do
    buttons[i].Caption := IntToStr(i);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  butt:=TButton.Create(form1);
  SetLength(buttons, Length(Buttons)+1);
  butt.Caption:='asdf';
  butt.left:=(sch+1)*100;
  butt.Parent:=form1;
  buttons[sch]:=butt;
  inc(sch);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  sch:=0;
end;

Последний раз редактировалось dr.Chas; 13.07.2010 в 22:45.
dr.Chas вне форума Ответить с цитированием
Старый 14.07.2010, 07:21   #3
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

СПАСИБО, вот я идиот, я подумал что если я объявил массив кнопок, то все имеющиеся уже кнопки в этом массиве А КТО БЛИН СОЗДАВАТЬ МАССИВ ТО БУДЕТ?
Еще раз спасибо
iskurt вне форума Ответить с цитированием
Старый 14.07.2010, 10:19   #4
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

а зачем вам необходимость создание массива кнопок и при этом дополнительное выделение памяти, если можно просто пробежать по каждому компоненту на форме и по определенному условию получать все свойства, ну вот код к примеру:
Код:
var
  Component: TComponent;
  i: integer;
begin
  for i := 0 to self.ComponentCount - 1 do
    begin
      Component := self.Components[i];
      if (Component is TButton) then //если кнопка
        if (Component as TButton).Caption = 'Button4' then //если Caption у кнопки равен 'Button4'
          (Component as TButton).Caption := 'Renamed'; //переименовываем
    end;
end;
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли работать с кнопками Button как с массивом кнопок? i-cpp Общие вопросы .NET 6 25.09.2010 22:29
Работа с массивом ZOHAN Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 16.04.2010 01:20
С++. Работа с массивом. Bonne Помощь студентам 2 10.02.2010 21:49
Работа с массивом program123 Помощь студентам 2 24.12.2009 17:20
Как работать с массивом кнопок Betmen Общие вопросы Delphi 3 05.03.2009 08:53