Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Вниз

Проблема с определением свойства компонента по индексу   Найти похожие ветки 

 
ДмитрийК.   (2002-11-29 13:22) [0]

Кто сможет подсказать?
Есть комтонент TShkaf наследник от TImage с свойствами DL,Gl:real,находящийся на первой форме, при написаниии во второй форме строки Form1.FindComponent("Shkaf"+inttоstr(n)).DL:=SpinEdit1.Value;
Выдаётся сообщение о том что DL Или GL незадекларирован. Хотя если написать
Form1.Shkaf2.Dl:=.... Всё работает.
Помогите разобраться!


 
Skier   (2002-11-29 13:27) [1]

>ДмитрийК.
А что в n попадает ?
Проверял ?


 
FreeLancer   (2002-11-29 13:28) [2]

Приведение типов

TShkaf(Form1.FindComponent("Shkaf"+inttоstr(n))).DL:=SpinEdit1.Value;


 
Skier   (2002-11-29 13:30) [3]

>ДмитрийК.
ну в общем так :


var
AComponent : TComponent;
begin
AComponent := Form1.FindComponent("Shkaf"+inttоstr(n)).DL:=SpinEdit1.Value;
if (AComponent <> nil) and (AComponent is TShkaf) then begin
with AComponent as TShkaf do DL:=SpinEdit1.Value;
end; //if
end;



 
oomneeq   (2002-11-29 13:48) [4]

2 skier, да и ващще
маленький рекомендация:

ecли что за тип уже установлено с помощью is,
то делать as, излищне, эффективнее будет простое приведение.

if (AComponent is TShkaf) then
TShkaf(AComponent).DL:=SpinEdit1.Value;

as делает проверку, и генирит эксепшн, если фолс.



 
Skier   (2002-11-29 13:50) [5]

>oomneeq
Что за бред !
Если уже установлено (через is TShkaf) что это TShkaf
то какой же Exception даст as TShkaf ?!!
Подумай на досуге...


 
Владислав   (2002-11-29 13:58) [6]

Тебе не про exeption говорят, а про эффективность :)
Это ты думай на досуге :)
Пример-то свой смотрел? ;)

"if (AComponent <> nil) and (AComponent is TShkaf) then begin
with AComponent as TShkaf do DL:=SpinEdit1.Value;"



if (AComponent is TShkaf) then
TShkaf(AComponent).DL:=SpinEdit1.Value;


Так не проще будет?


 
Skier   (2002-11-29 14:01) [7]

>Владислав
Да а это что ?
>as делает проверку, и генирит эксепшн, если фолс.
Может я что непонял...Тогда извиням-с...

> Так не проще будет

А что если AComponent = nil ?
думай на досуге :)


 
Владислав   (2002-11-29 14:07) [8]

Если он nil, то условие (AComponent is TShkaf) будет равно False.
:)
А если условие выполниться (AComponent есть TShkaf), тогда exception не произойдет при as. Тогда на кой его использовать?
Проще использовать TShkaf(AComponent). Он не будет делать проверку, которая и так уже пройдена.
:)


 
oomneeq   (2002-11-29 16:24) [9]



oomneeq>as делает проверку, и генирит эксепшн, если фолс.

Skier>Если уже установлено (через is TShkaf) что это TShkaf
Skier>то какой же Exception даст as TShkaf ?!!

не даст , именно потому что не фолс,
а проверку делать будет, потому что не знает, что не фолс
но ты то уже уверен, так как is-ом опросил! дак зачем же ж перепроверять as-ом то?
фух =)

а с досугом напряг, думать мне некогда, мне работать нада :-)

2 Владислав
Cоображаешь! :-)








--------------------------------------------------------------------------------
Skier © (29.11.02 13:50)
>oomneeq
Что за бред !
Подумай на досуге...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
1-27963
Azerg
2002-11-29 13:50
2002.12.09
Программа не завершается при выходе из Виндов


3-27860
NeyroSpace
2002-11-20 18:45
2002.12.09
Помогите ! Если форма создается динамически, то DBкомпоненты


6-28188
guest_xxx
2002-10-07 09:36
2002.12.09
Шлюз?


14-28201
leon83
2002-11-20 07:50
2002.12.09
Как писать по-русски в DOS-консоли в XP?


3-27823
Veronika
2002-11-20 13:45
2002.12.09
Временные таблицы в IB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский