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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2010, 18:42   #31
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

А при отрисовке вот эту строчку прописал?
Код:
sg.Rows[ARow].Objects[ACol] := TObject(clRed);
_Engine_ вне форума Ответить с цитированием
Старый 16.09.2010, 18:47   #32
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Эх... . Че ж не получается-то у меня. Вот, я добавил вашу строчку сюда:
Код:
procedure TForm1.RzStringGrid2DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var
 c, q,c2,q2: integer;
 k,k2: double;
 ACol2,ARow2: integer;
begin
 //äëÿ ïåðâîãî è íåïóñòîãî ñòîëáöà
 if (ARow < 1) or (RzStringGrid2.Cells[ACol, ARow] = '') then exit;
  RzStringGrid2.canvas.brush.Color := clWhite;

  val(RzStringGrid2.Cells[ACol, ARow], k, q);
  if q <> 0 then begin//åñëè îøèáêà
    if ACol = 1 then//öâåò äëÿ ïåðâîãî ñòîëáöà
      RzStringGrid2.Canvas.Brush.color := clRed;
    if ACol = 2 then//äëÿ âòîðîãî
      RzStringGrid2.Canvas.Brush.color := clRed;
    if ACol = 3 then//äëÿ âòîðîãî
      RzStringGrid2.Canvas.Brush.color := clRed;
    if ACol = 4 then//äëÿ âòîðîãî
      RzStringGrid2.Canvas.Brush.color := clRed;
    RzStringGrid2.Rows[ARow].Objects[ACol] := TObject(clRed);
    RzStringGrid2.canvas.fillRect(Rect);
    RzStringGrid2.canvas.TextOut(Rect.Left,Rect.Top,RzStringGrid2.Cells[ACol,ARow]);
  end;
end;
и код, который должен срабатывать по клавише Enter:
Код:
procedure TForm1.RzStringGrid2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
 ACol,ARow: integer;
begin
 case Key of
   13 : begin
          ACol := Form1.RzStringGrid2.Col;
          ARow := Form1.RzStringGrid2.Row;
          if assigned(Form1.RzStringGrid2.Rows[ARow].Objects[ACol]) then
            if Form1.RzStringGrid2.Rows[ARow].Objects[ACol] = TObject(clRed) then
            begin
              for ACol := ACol + 1 to Form1.RzStringGrid2.ColCount - 1 do
                if Form1.RzStringGrid2.Rows[ARow].Objects[ACol] = TObject(clRed) then
                begin
                  Form1.RzStringGrid2.Col := ACol;
                  Form1.RzStringGrid2.Row := ARow;
                  Exit;
                end;
              for ARow := ARow + 1 to Form1.RzStringGrid2.RowCount - 1 do
                for ACol := 0  to Form1.RzStringGrid2.ColCount - 1 do
                  if Form1.RzStringGrid2.Rows[ARow].Objects[ACol] = TObject(clRed) then
                  begin
                    Form1.RzStringGrid2.Col := ACol;
                    Form1.RzStringGrid2.Row := ARow;
                    Exit;
                  end;
            end;
        end;
  end;
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.09.2010, 18:56   #33
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Вот полностью исходник
Вложения
Тип файла: rar test.rar (4.3 Кб, 6 просмотров)
_Engine_ вне форума Ответить с цитированием
Старый 16.09.2010, 19:09   #34
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Вот сейчас работает). Спасибо. А только вопрос. У меня теперь сейчас почему-то RzStringGrid мерцает. Это с чем связано?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.09.2010, 19:12   #35
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

в он OnCreate формы
RzStringGrid2.DoubleBuffered := true
_Engine_ вне форума Ответить с цитированием
Старый 16.09.2010, 19:18   #36
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Поставил, но теперь в гриде не появляется курсор когда я нажимаю на ячейку и нет символической пунктирной маленькой рамки вокруг ячейки когда обычно нажимаешь на нее. Если убираю код выше, то отображается все, но мерцает.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.09.2010, 19:38   #37
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

А если попробовать перед отрисовкой поставить
DefaultDrawing := false;
а в конце отрисовки
DefaultDrawing := true;

Или попробуй немного другой вариант. Вот исходник
Вложения
Тип файла: rar test2.rar (1.3 Кб, 8 просмотров)
_Engine_ вне форума Ответить с цитированием
Старый 16.09.2010, 19:49   #38
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

В исходники не все файлы. Поставил эти свойства. Тепер получается только, что мерцает только красные ячейки. Больше ничего не мерцает.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.09.2010, 20:09   #39
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

а DoubleBuffered при этом попробуй включить
_Engine_ вне форума Ответить с цитированием
Старый 17.09.2010, 04:55   #40
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Включил. Но когда переходишь на красную ячейку, то она становится белой и значения в ячейке не видно. Редактировать то при это можно, но значения не видно.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа проверки вывода символов и цвета на принтер Absolut Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 13.09.2010 12:43
Проверить наличие eng символов? alco84 Microsoft Office Access 4 08.04.2010 11:08
программа нахождения и проверки символов/строк MixanMM Общие вопросы Delphi 14 09.07.2009 08:44
Не работает функция проверки подстроки в строке Cold_Night Помощь студентам 1 25.03.2009 01:30
Код проверки столкновений не работает. Манжосов Денис :) Общие вопросы Delphi 8 02.02.2009 10:31