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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2008, 15:28   #1
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию Помогите со TStringGrid

Здраствуйте!
Вот у меня возникла такая проблама с TStringGrid, у меня есть массив данных:
например

1020
780
306
652
458
...
...
345 (количество данных в массиве может меняться)

Таперь вопрос! Мне нужно сделать таблицу с помощью TStringGrid в таком виде

RR1 |1020| мс
RR2 |780 | мс
RR3 |306 | мс
RR4 |652 | мс
RR5 |458 | мс
...
...
RRn |345 | мс

И если значение массива превышает 1000 окрашивать это значение в красный цвет, а если меньше 400 - в синий!
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 06.03.2008, 15:35   #2
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

А что там сложного, задать цикл (для колонок и для рядов) , затем нужно и помесить с помощью цикла туда все значения. А потом условие через иф >=1000 , тогда окрашиваем тото.
Покажите ваш код, я попытаюсь поправить.
Gauss вне форума Ответить с цитированием
Старый 06.03.2008, 15:40   #3
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

mem: array of double;
i:integer;

with stringgrid1.Canvas do
begin
if mem[arow] > 1000 then
font.Color := clRed else
if mem[arow] < 400 then
font.Color := clBlue else
font.Color := clGreen;
for i:=0 to num-1 do begin
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.TextOut(Rect.Lef t, Rect.Top, floattostr(mem[ARow]));
end;
end;

У меня значения из массива mem заполняют все колонки!
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 06.03.2008, 16:20   #4
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Сделал так

for i:=0 to num-1 do begin
StringGrid1.Cells[0,i]:='RR'+inttostr(i+1);
StringGrid1.Cells[2,i]:='мс';
StringGrid1.Cells[1,i]:=' '+floattostr(mem[i]);
end;
if mem[arow] > 1000 then
stringgrid1.Font.Color := clRed else
if mem[arow] < 400 then
stringgrid1.font.Color := clBlue else
stringgrid1.font.Color := clGreen;

все будто пашит, но программа из цикла не выходит!
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопки в TStringGrid dimon000 Общие вопросы Delphi 4 29.07.2008 10:54
Поиск в TstringGrid Dim0n Компоненты Delphi 11 07.07.2008 08:34
TStringGrid автопрокрутка Carbon Общие вопросы Delphi 5 08.03.2008 12:58
TStringGrid Gromsky Компоненты Delphi 4 04.03.2008 23:41
TStringGrid mrandrey Компоненты Delphi 2 06.07.2007 15:24