Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обработать 16 текстовых форм 
V
    Опции темы
Rennigth
Дата 15.9.2012, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



supervladislav, весь пост не читал, но как понял ты добиваешься что-то вроде этого?
Код

var
  i: Integer;
  lCmpnt: TComponent;
  lcbtd: TComboBox;
begin
  for i := 1 to 16 do
  begin
    lCmpnt := Form1.FindComponent('timedelay' + IntToStr(i));
    if Assigned(ltd) and (ltd is lcbtd) then
      ///тут делаем что Вам нужно вашими комбиками, например
      lcbtd.TabIndex = i;
  end;
end;


Но!!! Если тебе это как тренировка, то ладно. Но в реальных проектах старайся не использовать такой подход. Навскидку минусы этого подхода:
- При изменении имени комбика все летит к черту.
- FindComponent довольно "тяжелая функция".
- да и много можно еще придумать.



--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
supervladislav
Дата 15.9.2012, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: нет
Всего: -9



Rennigth, а какой альтернативный вариант 

PM MAIL   Вверх
Rennigth
Дата 15.9.2012, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



Цитата(supervladislav @  15.9.2012,  22:08 Найти цитируемый пост)
Rennigth, а какой альтернативный вариант 

А какова цель-то вообще? 
Тебе надо как-то по умолчанию задать текстовое значение во всех контролах на форме? нужны конкретно ComboBox-ы?


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
supervladislav
Дата 15.9.2012, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: нет
Всего: -9



Rennigth, 
Код

lCmpnt: TComponent;
  lcbtd: TComboBox;


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

Добавлено через 6 минут и 50 секунд
Rennigth,мне нужно собрать информацию с них.
PM MAIL   Вверх
Rennigth
Дата 15.9.2012, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



Цитата(supervladislav @  15.9.2012,  22:20 Найти цитируемый пост)
Скажите я просто не совсем понимаю ,то что выше разве оно не типах должнобыть. 

Нет, это локальные переменные для хранения объектов которые ищем. В данном случае так правильнее делать если не хочешь нарваться на "AccessViolation" или "Invalid Type Cast", т.к. FindComponent может вернуть nil(т.е. ничего) или может вернуть нам не ComboBox, а что-нибудь другое с именем "timedelay1-16".

Добавлено @ 22:32
Кстати, я в примере накосячил(писал просто прям тут)
Код

var
  i: Integer;
  lCmpnt: TComponent;
  lcbtd: TComboBox;
begin
  for i := 1 to 16 do
  begin
    lCmpnt := Form1.FindComponent('timedelay' + IntToStr(i));
    if Assigned(lCmpnt) and (lCmpnt is TComboBox) then
    begin
      lcbtd := TComboBox(lCmpnt);
      lcbtd.TabIndex := i;
      lcbtd.Text := 'test';
    end;
  end;
end;


Это сообщение отредактировал(а) Rennigth - 15.9.2012, 22:41


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
supervladislav
Дата 15.9.2012, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: нет
Всего: -9



Rennigth, мой вопрос вам почему вы не сделали вот так
Код

type
 lCmpnt: TComponent;
  lcbtd: TComboBox;

Или речь идёт уже о каких то  переменных  где есть какието значения , я не могу понять.

Добавлено через 3 минуты и 54 секунды
Rennigth, минутку я кажется  догнал , в данную переменную просто записывается указатель 
Код

lCmpnt: TComponent;

Но чем же такой приём удобнее?

Да и вот тут ,что за необъявленная переменная  ltd
Код

if Assigned(ltd) and (ltd is lcbtd) then

PM MAIL   Вверх
Rennigth
Дата 15.9.2012, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



supervladislav, 
Да, это переменные в которые мы временно запоминаем найденные функцией FindComponent компоненты.

Добавлено через 2 минуты и 34 секунды
Цитата(supervladislav @  15.9.2012,  22:34 Найти цитируемый пост)

Да и вот тут ,что за необъявленная переменная  ltd

Сорь, подправил, я просто без делфей...


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
supervladislav
Дата 15.9.2012, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: нет
Всего: -9



Rennigth,а что всётаки значит  ltd.
PM MAIL   Вверх
Rennigth
Дата 15.9.2012, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



Цитата(supervladislav @  15.9.2012,  22:34 Найти цитируемый пост)
минутку я кажется  догнал , в данную переменную просто записывается указатель 

 smile

Добавлено через 35 секунд
Цитата(supervladislav @  15.9.2012,  22:42 Найти цитируемый пост)
а что всётаки значит  ltd. 

Это я описался

Добавлено через 3 минуты и 4 секунды
Цитата(supervladislav @  15.9.2012,  22:34 Найти цитируемый пост)
Но чем же такой приём удобнее?

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


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
northener
Дата 16.9.2012, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(supervladislav @  14.9.2012,  15:46 Найти цитируемый пост)
есть ли в rad studio 2010 возможность обработки через коллекции скажем всех текстовых эллементов

Предложу автору почитать где-нибудь о двух свойствах-списках класса TForm. Components и Controls. Возможно они (или один из них) и является той самой "коллекцией", которую он ищет "вслепую", не желая читать учебник по Дельфи.

Это сообщение отредактировал(а) northener - 16.9.2012, 01:04


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
supervladislav
Дата 16.9.2012, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: нет
Всего: -9



northener, я  его читаю но назначения некотрых классов мне пока непонятны.
PM MAIL   Вверх
bems
Дата 16.9.2012, 18:45 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Супервладиславу не помогают устные предупреждения об использовании ссылки "репорт"
Может быть читательский билет поможет


--------------------
Обижено школьников: 8
PM MAIL   Вверх
northener
Дата 17.9.2012, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(supervladislav @  16.9.2012,  16:39 Найти цитируемый пост)
northener, я  его читаю но назначения некотрых классов мне пока непонятны. 

Ну так спрашивай о том, что непонятно в учебнике.
Но внимательно слушай/читай предупреждения модераторов! smile


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
supervladislav
Дата 20.9.2012, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: нет
Всего: -9



northener, ещё один вопрос по коду.
Rennigth, вы немного ошиблись помойму 
не TabIndex ,а itemIndex.
Не очень понятно далее как действовать.
Повторюс  нужно считать всё что есть в 16 формах последовательно в массив.
Я не очень понимаю как мне получить информацию из текстовых полей?

Код

if Assigned(lCmpnt) and (lCmpnt is TComboBox) then
    begin
      lcbtd:= TComboBox(lCmpnt);
     lcbtd.ItemIndex:=i;



Код

procedure TForm1.Form1Create(Sender:TObject);
var
  i: Integer;
  lCmpnt: TComponent;
  lcbtd: TComboBox;
begin

  for i := 0 to 16 do
  begin

    lCmpnt := Form1.FindComponent('timedelay' + IntToStr(i));
    if Assigned(lCmpnt) and (lCmpnt is TComboBox) then
    begin
      lcbtd:= TComboBox(lCmpnt);
     lcbtd.TabIndex:=i;
     
    end;
  end;
end;


PM MAIL   Вверх
northener
Дата 21.9.2012, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(supervladislav @  20.9.2012,  20:02 Найти цитируемый пост)
northener, ещё один вопрос по коду.

Какой вопрос и по какому коду?

P.S. Но если ты ищешь комбобоксы, то лучше устанавливай им ItemIndex, а не Text.
P.P.S. А ещё лучше озвучь наконец задачу, которую ты решаешь.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0571 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.