![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с компонентами runtime [D7, Win2k, WinXP]
IntruderLab © (2007-06-16 02:35:00)Для работы с формой создаю компонент Combo и заполняю его данными с таблицы, далее в коде программы нахожу данный комбик, но как программно мне вытащить какие данные сейчас выделены в Combo.Text
Плохиш (2007-06-19 10:52:00) [1]
> if (Controls[i] is TComboBox) then (Controls[i] as TComboBox).Text....
Хм, ах вон оно что :-) ну тогда - "Масло масляное", какой смысл выполнять две проверки...
{RASkov} (2007-06-19 03:48:00) [2]> [15] Плохиш © (18.06.07 16:57)
> И код (Controls[i] as TComboBox).Text вызовет исключение
> при первом же контроле, не являющимся TComboBox-ом- это
> тоже факт.
Как же он вызовет, если до этого дело не дойдет после проверки is
[5]
> if (Controls[i] is TComboBox) then TComboBox(Controls[i]).Text/(Controls[i] as TComboBox).Text....
нужно читать так:
if(Controls[i] isTComboBox) thenTComboBox(Controls[i]).Text...
или
if(Controls[i] isTComboBox) then(Controls[i] asTComboBox).Text....
:) Зря я наверное понадеялся, что слешь, и текст после него, воспримут как второй вариант после then ;)
Плохиш (2007-06-18 16:57:00) [3]
> {RASkov} © (16.06.07 12:46) [14]
> > [7] Плохиш © (16.06.07 03:03)
>
> Кстати.... ошибки-то в моем примере нет.
> Только нет смысла делать as после is..... )
Смысла нет, это факт.
И код(Controls[i] as TComboBox).Textвызовет исключение при первом же контроле, не являющимся TComboBox-ом - это тоже факт. А теперь посчитай вероятность того, что контрол со случайным i будет TComboBox или наследник ;-)
{RASkov} (2007-06-16 12:46:00) [4]> [13] Anatoly Podgoretsky © (16.06.07 11:06)
На ровном месте споткнуться тоже не проблема :)
> [7] Плохиш © (16.06.07 03:03)
Кстати.... ошибки-то в моем примере нет.
Только нет смысла делать as после is..... )
Anatoly Podgoretsky (2007-06-16 11:06:00) [5]> {RASkov} (16.06.2007 02:42:02) [2]
> S:=Combo.Items[Combo.ItemIndex];
Вероятность получения исключения больше 0
Германн (2007-06-16 03:24:00) [6]> {RASkov} © (16.06.07 03:15) [11]
>
> > [10] Плохиш © (16.06.07 03:13)
> > Это не операция деления, я надеюсь :-))
>
> У меня это было как два варианта ;)
> (Слешь надо было в другую сторону поставить) :о)
> <Цитата>
>
>
Ну тогда всё понятно!
:-)
Спать, спать, спать...спать.
:)
{RASkov} (2007-06-16 03:15:00) [7]> [10] Плохиш © (16.06.07 03:13)
> Это не операция деления, я надеюсь :-))
У меня это было как два варианта ;)
(Слешь надо было в другую сторону поставить) :о)
{RASkov} (2007-06-16 03:13:00) [8]> Пора спать
Вот это верно :)
Всё ... ушел )
Плохиш (2007-06-16 03:13:00) [9]
> Германн © (16.06.07 03:04) [8]
Это не операция деления, я надеюсь :-))
Германн (2007-06-16 03:04:00) [10]
> {RASkov} © (16.06.07 02:52) [5]
После такого
> if (Controls[i] is TComboBox) then TComboBox(Controls[i]).
> Text/(Controls[i] as TComboBox).Text....
>
Пора спать, имхо.
:)
Плохиш (2007-06-16 03:03:00) [11]
> if (Controls[i] is TComboBox) then TComboBox(Controls[i]).Text
Это правильно
> (Controls[i] as TComboBox).Text
В 99,999% случаев будет исключение при первом же шаге цикла ;-)
IntruderLab (2007-06-16 02:59:00) [12]Спасибо всем! :)
{RASkov} (2007-06-16 02:52:00) [13]> [4] IntruderLab © (16.06.07 02:49)
if (Controls[i] is TComboBox) then TComboBox(Controls[i]).Text/(Controls[i] as TComboBox).Text....
IntruderLab (2007-06-16 02:49:00) [14]Реально 3 сутки в запаре :) спасибо надоумили, а неразбериха в мозЬге от недосыпа: TComboBox(Controls[i]).Text
Плохиш (2007-06-16 02:45:00) [15]
> но как программно мне вытащить какие данные сейчас выделены
> в Combo.Text
TComboBox(Точтонашёлвкоде).Text
{RASkov} (2007-06-16 02:42:00) [16]Что-то не совсем понятно....
Покажи хоть как создаешь его(Комбик) и как пытаешься вытащить....
А вообще прямо так и вытаскивай S:=Combo.Text; или так S:=Combo.Items[Combo.ItemIndex];
Германн (2007-06-16 02:41:00) [17]
> IntruderLab © (16.06.07 02:35)
>
> Для работы с формой создаю компонент Combo и заполняю его
> данными с таблицы, далее в коде программы нахожу данный
> комбик, но как программно мне вытащить какие данные сейчас
> выделены в Combo.Text
>
Прожуй, и задай вопрос снова. Пока ничего в вопросе непонятно.
В подобных случаях лучше приводить "код", а не "рассуждения".