Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
mikhea
0 / 0 / 1
Регистрация: 11.02.2010
Сообщений: 14
#1

Мерцание кнопок внутри StringGrid - Delphi

19.10.2012, 15:14. Просмотров 506. Ответов 2
Метки нет (Все метки)

Добрый день!
Столкнулся с такой проблемой. Есть StringGrid, внутри него несколько столбцов с кнопками, на каждой кнопке картинка. Количество строк динамически изменяется в процессе работы с программой (их можно добавлять, удалять и т.д.), соответственно, количество кнопок тоже меняется. Так вот, при прокрутке таблицы и перемещнии строк кнопки начинают жутко мерцать, а сама форма - тормозить и подвисать. Причем чем больше строк, тем более выражена проблема (что, впрочем, вполне логично). Кто-нибудь знает, можно ли как-нибудь уменьшить мерцание и торможение? Возможно, у меня не очень хорошо написан обработчик OnTopLeftChanged.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2012, 15:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Мерцание кнопок внутри StringGrid (Delphi):

Как динамический создать TImage+TGroupBox внутри 5 кнопок в центр формы?
Привет всем Как динамический создать TImage+TGroupBox внутри 5 кнопок в центр...

Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid
Нужно чтобы из Stringgrid1 данные переносились в Stringgrid2 Но ТОЛЬКО ПО...

Содержимое выделенной строки из первого StringGrid-а перенести во второй StringGrid
Нужно написать программу которая выполняет следующие действия. Есть два...

StringGrid: проверить, имеется ли строка с ключевым полем во втором StringGrid-е
Имеются два StringGrid'a, у каждого есть ключевое поле. В первом sg значения...

Необходимо сложить ячейки в столбце Stringgrid и вывести в другой Stringgrid
Необходимо сложить ячейки в столбце Stringgrid и вывести в другой Stringgrid ...

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

2
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 6
19.10.2012, 15:18 #2
Возможно, тебе виднее. Ты видишь свой обработчик, мы - нет.
0
mikhea
0 / 0 / 1
Регистрация: 11.02.2010
Сообщений: 14
19.10.2012, 15:36  [ТС] #3
Лучший ответ Сообщение было отмечено mikhea как решение

Решение

Цитата Сообщение от UI Посмотреть сообщение
Возможно, тебе виднее. Ты видишь свой обработчик, мы - нет.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TfrmMy.grdMyTopLeftChanged(Sender: TObject);
var
  Rect: TRect;
  i, j: integer;
  gCol: integer;      //Столбец таблицы, соотв. создаваемой кнопке
begin
  try
    for i:=0 to grdMy.RowCount-1 do
      for j:=0 to 5 do
      begin
        if (j = 0) or (j = 1) then
          gCol := j+1
        else
          gCol := j+3;
        Rect := grdMy.CellRect(gCol, i);
        if (grdMy.Objects[gCol, i] is TControl) then
          with TControl(grdMy.Objects[gCol, i]) do
          begin
            if (Rect.Right = Rect.Left) then
              Visible := False
            else
            begin
              if ((Rect.Top = 0) and (Rect.Bottom <> 0) and (i <> 0)) then
                continue;      //Избавляемся от ошибки, периодически возникающей
                               //на границе видимой области
              InflateRect(Rect, -1, -1);
              OffsetRect(Rect, grdMy.Left + 2, grdMy.Top + 2);
              BoundsRect := Rect;
              Visible := True;
            end;
          end;
      end;
  except
  end;
end;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2012, 15:36
Привет! Вот еще темы с решениями:

Вывод в StringGrid из Word, а из StringGrid в круговую диаграмму
Изначально необходимо с первой формы из нескольких компонентов(эдиты,...

Перенос столбца(информации) из StringGrid в другой StringGrid
Не могу разобраться с тем, как перенести значения(нажатием кнопки &quot;записать&quot;)...

Перенос столбца из StringGrid в другой StringGrid
Здравствуйте подскажите как перенести данные из столбца № 2 StringGrid2, в...

Мерцание
При нажатии на кнопку картинка перемещается,как сделать чтобь она не мерцала?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru