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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 27.04.2010, 09:18   #1
NeVerSS
Пользователь
 
Аватар для NeVerSS
 
Регистрация: 30.03.2010
Сообщений: 23
По умолчанию Обращение к свойству компонента не зная его имени

Примерно такая ситуация - есть n компонентов TImage.Статических.Хочу обратиться к свойству tag рандомно выбранного компонента.Возможно такое?(можно хранить их в массиве конечно и создавать динамически но мне желательно без этого)...
Император всё видит... Император всё знает...
NeVerSS вне форума
Старый 27.04.2010, 09:40   #2
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Код:
...
var
  RaspMatF: TRaspMatF;
  cbet : array of integer;
.....
for i := 0 to RaspMatF.ComponentCount - 1 do // перебираем на форме все компоненты
    begin
     if (RaspMatF.Components[i] is TCheckBox) and TCheckBox(RaspMatF.Components[i]).Checked then // и если выбранный компонент является чекбоксом, и он выбра(стоит галочка)
       begin
        SetLength(cbet, (length(cbet)+1));  // то мы увеличиваем размер массива на 1
        cbet[High(cbet)] := TCheckBox(RaspMatF.Components[i]).Tag;  // добавляем значение в массив
       end;
    end;
таким образом я записывал в массив значения Tag выбранных компонентов CheckBox
maLoy*508 вне форума
Старый 27.04.2010, 09:53   #3
NeVerSS
Пользователь
 
Аватар для NeVerSS
 
Регистрация: 30.03.2010
Сообщений: 23
По умолчанию

Спасибочки...Че то подобно пытался сделать да то ли у ми ума не хватило то ли кривизна рук в тот момент перешла за критическую отметку

Слушай а че это за тип такой?

RaspMatF: TRaspMatF
Император всё видит... Император всё знает...

Последний раз редактировалось Stilet; 20.09.2014 в 10:43.
NeVerSS вне форума
Старый 28.04.2010, 20:47   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

просто переименновая форма(у вас скорее всего TForm)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 17.05.2010, 13:03   #5
NeVerSS
Пользователь
 
Аватар для NeVerSS
 
Регистрация: 30.03.2010
Сообщений: 23
По умолчанию

Я же почти сам уже догадался!!!!!))))))))))))))
Император всё видит... Император всё знает...
NeVerSS вне форума
Старый 19.09.2014, 23:06   #6
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Я предполагаю, что длинна массива " length(cbet) ". Это верно?
Репутация: полный "0"

Последний раз редактировалось zvygin1964; 20.09.2014 в 10:12. Причина: Не внимательность. Отсутствие знаний в этой области.
zvygin1964 вне форума
Старый 19.09.2014, 23:31   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
но мне желательно без этого
Очень зря!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 20.09.2014, 10:18   #8
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Нет, работает не правильно. Выдает не понятно что.
Код:
unit RaspMatF;     // http://www.programmersforum.ru/showthread.php?p=1415338#post1415338
                   // запись в массив значения Tag выбранных компонентов CheckBox
interface

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

type
  TForm1 = class(TForm)
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cbet : array of integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 var //создать массив  номеров установленных в состояние Checked=1 компонентов TCheckBox
 i:Integer;
begin //от "maLoy*508" http://www.programmersforum.ru/showthread.php?p=1415338#post1415338
 for i := 0 to Form1.ComponentCount - 1 do // перебираем на форме все компоненты
 begin
  if (Form1.Components[i] is TCheckBox) and TCheckBox(Form1.Components[i]).Checked then // и если выбранный компонент является чекбоксом, и он выбра(стоит галочка)
  begin
   SetLength(cbet, (length(cbet)+1));  // то мы увеличиваем размер массива на 1
   cbet[High(cbet)] := TCheckBox(Form1.Components[i]).Tag;  // добавляем значение в массив
  end;  
 end;  
 end;
 

procedure TForm1.Button2Click(Sender: TObject);
   var //посмотреть на полученный массив
 i:Integer;
begin
 for i:=1 to length(cbet) do
  Memo1.Lines.Add(IntToStr(cbet[i]));
end;

end.
Установлены в состояние "1" CheckBox с номерами 2,4,6, а сообщение в Memo:
0
0
15029476
Репутация: полный "0"
zvygin1964 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить MAC адрес устройства, зная его IP Шульц Работа с сетью в Delphi 23 27.07.2013 20:21
Обращение к листу по имени через переменную tae1980 Microsoft Office Excel 2 25.03.2010 14:33
Обращение к объектам не зная объекта) Djem1991 Общие вопросы Delphi 5 02.01.2010 21:44
Можно ли, зная ID контрола, заполучить его хэндл? TwiX Общие вопросы Delphi 10 04.08.2009 00:01
Как завершить процесс, зная его имя Никки Win Api 6 14.01.2008 14:04