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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 08:54   #1
belyjj
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 29
По умолчанию выделение ячеек в StringGrid

Здравствуете, у меня такая проблема: нужно выделить ячейку значение которой присваивается программно другому компоненту СтрингГрид
Код:
procedure TForm1.btn1Click(Sender: TObject);
var
  n1,n2,i,j1,j2: Integer;
  Rect: TRect;
  State: TGridDrawState;
  a:Boolean;

begin
  Randomize;
  n1:=StrToInt(StringGrid1.cells[0,0]);
  n2:=StrToInt(StringGrid2.cells[0,0]);
  j1:=1;j2:=1;
  for i:=1 to 5 do
  begin

    Sleep(100);
   if (n1<=n2) then begin StringGrid3.Cells[i-1,0]:=inttostr(n1); n1:=StrToInt(StringGrid1.Cells[j1,0]);j1:=j1+1;
        StringGrid2SelectCell(StringGrid2,3,0,a);sleep(300);continue;end;
   if (n1>n2) then  begin StringGrid3.Cells[i-1,0]:=inttostr(n2); 
//тут тоже нужно выделить ячейку СтрингГрид2
n2:=strtoint(StringGrid2.Cells[j2,0]);j2:=j2+1;sleep(400);Continue;end;
   StringGrid3.Cells[i-1,0]:='11';

   end;
end;
но я не могу разобратся ни с StringGrid1DrawCell, ни с StringGrid2SelectCell,
они выделяют не так как надо, надо чтобы выделеная ячейка перемещялась в конец при присваивании.
Как быть?

Да ещё хотел спросить, как правильно организовать задержку, что в СтрингГрид3 числа помещялись по очереди, те было видно с какого компонента они взяты?


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось belyjj; 21.03.2011 в 12:09.
belyjj вне форума Ответить с цитированием
Старый 21.03.2011, 09:41   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
надо чтобы выделеная ячейка перемещялась в конец при присваивании.
это как?!
Любая ячейка характеризуется своими индексами (номер строки . номер столбца). Переместить можно:
- содержимое одной ячейки в другую;
- текущую позицию(изменить индексы выделенной ячейки).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 21.03.2011, 09:45   #3
belyjj
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 29
По умолчанию

нужно изменить индексы!
но у меня получается либо одна первая, либо выделяется вся строка.
кстати СтрингГрид у меня из одной строки.
Как правильно поменять индекс, подскажите?
belyjj вне форума Ответить с цитированием
Старый 21.03.2011, 09:52   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Как правильно поменять индекс, подскажите?
stringGrid.Row:=1;
stringGrid.Col:=4;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 21.03.2011, 09:57   #5
belyjj
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 29
По умолчанию

А проверять в StringGrid1DrawCell как? Selected in State?
belyjj вне форума Ответить с цитированием
Старый 21.03.2011, 12:12   #6
belyjj
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 29
По умолчанию

evg_m помоги мне пожалуйста.
Как быть с StringGrid1DrawCell, как передать туда параметры? я пробовал у меня не получается никак.
belyjj вне форума Ответить с цитированием
Старый 21.03.2011, 13:22   #7
belyjj
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 29
По умолчанию

Спасибо selected работает вместе с присваиванием, и задержку я сделал, только очистку я не нашол как сделать? очистка ячеек которые не выделены, щя попробую их в белый покрасить
belyjj вне форума Ответить с цитированием
Старый 07.04.2011, 16:57   #8
belyjj
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 29
По умолчанию

Есть ещё один вопрос. Мне нужно штобы ячейка на какоето время принимала другой цвет.
Цвет я объявил глобально.
Код:
if (условие)  then  begin cvet:=clRed; lab[gg].Col:=lab[gg].Col;ShowMessage('Работает');  end;
lab[gg] это элемент массива типа TStringGrid.

Сообщение выдаётся, но данная ячейка в красный не красится.
Как мне быть?
lab[gg].Col:=lab[gg].Col+1; тоже не особо помогает.
Если после условия цвету не присваивать первоначальное значение, то красный прорисовывается, но не на тех ячейках.
belyjj вне форума Ответить с цитированием
Старый 08.04.2011, 09:26   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

читайте про OnDrawCell
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 08.04.2011, 15:22   #10
belyjj
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 29
По умолчанию

StringGrid1.Repaint;
belyjj вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение ячеек программно Елена Гох Microsoft Office Word 4 01.02.2011 13:39
StringGrid - выделение нескольких ячеек 6AZblJlb Общие вопросы Delphi 3 26.11.2010 22:48
Выделение цветом ячеек в StringGrid (Delphi) Lost'яра)) Помощь студентам 2 03.10.2010 10:55
StringGrid, выделение ячеек. robin39 Помощь студентам 17 27.05.2010 00:14