Вниз
Скачать: CL | DM;

TPanel не такой как TEdit...   Найти похожие ветки 

← →
AndreySoft ©   (2003-12-16 01:12) [0]

кусочек кода:
for i:=0 to x do
begin
TPanel(ScrollBox1.Controls[i]).Visible:=True;
TEdit(ScrollBox1.Controls[i]).Visible:=True;
end;

Почему это: TEdit(ScrollBox1.Controls[i]).Visible:=True; работает нормально, а это: TPanel(ScrollBox1.Controls[i]).Visible:=True; нет?
Компилятор не ругается, всё нормально, только Эдиты появляются, а Панели нет...
Как сделать чтобы они тоже появлялись...


← →
ЮЮ ©   (2003-12-16 03:03) [1]

Потому что Visible устанавливаеься у первых х+1 Control-ов (for i:=0 to x), а TPanel() или TEdit() указал - это без разницы( т.е. две строки здесьь ни к чему, т.к. обе изменяют один и тот же ScrollBox1.Controls[i])


← →
Нурик ©   (2003-12-16 03:54) [2]

Может так попробуете

for i:=0 to x do
begin
if (ScrollBox1.Controls[i] is TPanel) then (ScrollBox1.Controls[i] as TPanel).Visible:=True;
if (ScrollBox1.Controls[i] is TEdit) then (ScrollBox1.Controls[i] as TEdit).Visible:=True;
end;


← →
AndreySoft ©   (2003-12-16 16:17) [3]


> Нурик © (16.12.03 03:54) [2]
> Может так попробуете
>
> for i:=0 to x do
> begin
> if (ScrollBox1.Controls[i] is TPanel) then (ScrollBox1.Controls[i]
> as TPanel).Visible:=True;
> if (ScrollBox1.Controls[i] is TEdit) then (ScrollBox1.Controls[i]
> as TEdit).Visible:=True;
> end;


Тот же результат...


← →
AndreySoft ©   (2003-12-16 16:22) [4]


> ЮЮ © (16.12.03 03:03) [1]
> Потому что Visible устанавливаеься у первых х+1 Control-ов
> (for i:=0 to x), а TPanel() или TEdit() указал - это без
> разницы( т.е. две строки здесьь ни к чему, т.к. обе изменяют
> один и тот же ScrollBox1.Controls[i])


Ну пишу я одну строку:
TEdit(ScrollBox1.Controls[i]).Visible:=True;
Всё равно Edit"ы появляются а Panel"и нет.
и наоборот пробовал: оставлял только
TPanel(ScrollBox1.Controls[i]).Visible:=True;
Всё равно никак...
Помогите пожалуйста!


← →
KSergey ©   (2003-12-16 16:28) [5]

Епрст...

А x чему равно?
Может вместо него поставить таки ScrollBox1.ControlCount-1 ?


← →
AndreySoft ©   (2003-12-16 16:48) [6]

Нет, нельзя!
В этом и заключается тонкость...
Мне не все нужно компоненты появлять, а только определённые...
А x вводит пользователь.


← →
KSergey ©   (2003-12-16 16:51) [7]

;)
А может заставить вводить его нужное число? ;)
Хорошо, для эксперимента - попробуйте сделать ScrollBox1.ControlCount-1
Если все объявится - тогда объясните это пользователю.

Или нам задачу.


← →
Семен Сорокин ©   (2003-12-16 16:51) [8]

Нет, нельзя!
В этом и заключается тонкость...
Мне не все нужно компоненты появлять, а только определённые...
А x вводит пользователь.

круто :))
но что-то мне подсказывает, что перебирать ты должен все компоненты, а уже в цикле проверять условия отбора.


← →
Amoeba ©   (2003-12-16 16:53) [9]

Задай каждому компоненту свое значение св-ва Tag и потом используй его для идентификации компонентов, какие нужно делать видимыми.


← →
REA ©   (2003-12-16 16:53) [10]

А что он вводит? ScrollBox1.Controls например от 0 до 20. Из них первые 5 это панели, следующие три это TEdit, потом опять панели. Так не пойдет.


← →
REA ©   (2003-12-16 16:54) [11]

Во во. См. [9]. Преобразовывать достаточно к TControl.


← →
Silver Alex ©   (2003-12-16 16:55) [12]

а если все ради чистоты эксперимента по предложению KSergey поставить "таки ScrollBox1.ControlCount-1 " что будет?


← →
AndreySoft ©   (2003-12-16 17:22) [13]

Да ScrollBox1.ControlCount-1 работает...он все их показывает.
Всё я разобрался:
Дело в том что у меня
Edit1=TEdit(ScrollBox1.Controls[0]), а
Panel1=TPanel(ScrollBox1.Controls[101]) тотому он Panel"и и не показывал.
Ввёл новую переменную и всё заработало!
Всем спасибо!


← →
REA ©   (2003-12-16 17:50) [14]

Скромно... 101 Control. Что то не то в Датском королевстве.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
14-99737
Chuha
2003-12-08 08:27
2003.12.30
Гробница фараона


14-99767
angelant
2003-12-06 09:40
2003.12.30
Машина крутая... Но, черт возьми... глухая... :(


11-99509
DrFaust
2003-04-16 11:24
2003.12.30
Additional visual components (in other packages):


1-99575
GreySerg
2003-12-16 19:25
2003.12.30
Каким образом однозначно преобразовать 16 байт в 28 символов ?


1-99624
GirichevR
2003-12-16 16:44
2003.12.30
...подсветка HTML тэгов в TRichEdit...




   Наверх