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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2011, 09:01   #1
usmeshnik
 
Регистрация: 02.03.2011
Сообщений: 5
По умолчанию Массив????

Всем Здравствуйте может кто нить поможет,
дело втом что есть панелька (составной компонент)

Panel1 в него входят (Lv=Label), (Rm=Label), (Ind=Shape)
и еще есть (Num=StaticText) - он отображает номер панельки.

Вопрос в том как использовать массив а не тупое раскопирование,
если можно.

Зарание Спасибо.


код:

Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
d1:TDateTime;
begin

d1:=Now;

Panel1.Caption:=SGrid1.Cells[0,1];
Panel1.Lv.Caption:=SGrid1.Cells[2,1];

if SGrid1.Cells[3,1] = '1' then
Panel1.Rm.Enebled:=true
else Panel1.Rm.Enebled:=false;

if SGrid1.Cells[4,1] = '' then
SGrid1.Cells[4,1]:=DateToStr(d1);
if d1>=StrToDate(SGrid1.Cells[4,1]) then
Panel1.Font.Color:=clRed else Panel1.Font.Color:=clYellow;

if SGrid1.Cells[5,1] = '' then
SGrid1.Cells[5,1]:=DateToStr(d1);
if SGrid1.Cells[5,1] = DateToStr(d1) then
Panel1.Ind.Brush.Color:=clLime else Panel1.Ind.Brush.Color:=clWhite;

........................
........................
........................

Panel56.Caption:=SGrid1.Cells[0,56];
Panel56.Lv.Caption:=SGrid1.Cells[2,56];

if SGrid1.Cells[3,56] = '1' then
Panel56.Rm.Enebled:=true
else Panel56.Rm.Enebled:=false;

if SGrid1.Cells[4,56] = '' then
SGrid1.Cells[4,56]:=DateToStr(d1);
if d1>=StrToDate(SGrid1.Cells[4,56]) then
Panel56.Font.Color:=clRed else Panel56.Font.Color:=clYellow;

if SGrid1.Cells[5,56] = '' then
SGrid1.Cells[5,56]:=DateToStr(d1);
if SGrid1.Cells[5,56] = DateToStr(d1) then
Panel56.Ind.Brush.Color:=clLime else
Panel56.Ind.Brush.Color:=clWhite;


end;
usmeshnik вне форума Ответить с цитированием
Старый 02.04.2011, 09:51   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

1. просто цикл НО надо следить за именами.
Код:
for j:=0 to begin
.....
p:=FindComponent('panel'+inttostr(j)) as TPanel;
p.caption:=....
....
end;
2. ОДИН РАЗ заполнить массив объявленный в разделе Private класса
Код:
 mypanels: array of TPanel;
mypanels[1]:=Panel1;
mypanels[2];=panel2;
и использовать
Код:
for j:=  begin
......
mypanels[j].caption:=
end;
3. использовать свойство для хранения дополнительных данных у объекта Sgrid
заполнить
Код:
sgrid.objects[1,1]:=Panel1;
......
sgrid.objects[1,56]:=Panel56;
и использовать
Код:
for j:=  begin
......
  p:=sgrid[1,j] as TPanel;
  p.caption:=....
.........
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 02.04.2011, 11:36   #3
usmeshnik
 
Регистрация: 02.03.2011
Сообщений: 5
По умолчанию

Большое СПАСИБО вопрос снят))).
usmeshnik вне форума Ответить с цитированием
Старый 09.04.2011, 19:18   #4
wulf_01
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 57
По умолчанию

Цитата:
Сообщение от usmeshnik Посмотреть сообщение
Большое СПАСИБО вопрос снят))).
dfsg sdfgh dfhdyd jfdtg jfryjf
wulf_01 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W leha_demi Помощь студентам 2 24.09.2011 18:12
Дан массив А(20). Получить массив В(20), в котором В(1)=А(2), В(2)=А(1), В(3)=А(4), В(4)=А(3) и т.д. Выве nikita1 Помощь студентам 5 01.12.2010 18:16
Как конвертировать массив символов в массив байт davinci C++ Builder 6 30.10.2010 18:09
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06