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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 21:16   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию InplaceEditor у StringGrid'а. Как убрать фокус

Делая Inplace Editor:
Код:
  if ACol=2 then
  begin
    //if (ARow - 1 < wCnt) and (StringGrid1.Cells[ACol, ARow]='') then
    begin
      //if not Assigned(formsArr[ARow - 1]) then
        //exit;
      R := StringGrid1.CellRect(ACol, ARow);
      R.Left := R.Left + StringGrid1.Left;
      R.Right := R.Right + StringGrid1.Left;
      R.Top := R.Top + StringGrid1.Top;
      R.Bottom := R.Bottom + StringGrid1.Top;

      ComboBox1.Items.Clear;
      //ComboBox1.Items.Assign(formsArr[ARow - 1]);

      ComboBox1.Left := R.Left + 1;
      ComboBox1.Top := R.Top + 1;
      ComboBox1.Width := (R.Right + 1) - R.Left;
      ComboBox1.Height := (R.Bottom + 1) - R.Top;


      { Покажем combobox }
      ComboBox1.Visible := True;
      ComboBox1.SetFocus;
      ComboBox1.DroppedDown:=true;
    end;
  end
  else
    ComboBox1.Visible:=false;
Всё работает нормально, за исключением одного нюанса: Если зажать мышку над StringGridom, то в ячейке под мышкой появится контур выделения, если мышку водить, то этот контур будет всегда под мышкой. Так проблема в том, что если нажать на SG, потом на форму - ComboBox пропадёт, но если водить по SG мышкой, то под ней будет это выделение. Почему это возникает - это понятно - мы зажимает кнопку, появляется CM, но кнопку мы уже отжимает на CM, а не на SG.
TwiX вне форума Ответить с цитированием
Старый 02.06.2010, 22:26   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Если это в обработчике выделения ячейки, то можно после показа комбобокса просто отжать мышку для стринггрида, тогда контура не будет
Код:
...
ComboBox1.SetFocus;
ComboBox1.DroppedDown:=true;
StringGrid1.Perform(WM_LBUTTONUP, 0, 0)
eoln вне форума Ответить с цитированием
Старый 03.06.2010, 01:09   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

О) Как раз это и искал) Спасибо)
TwiX вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
убрать фокус из ячейки DBGreed KaimNotark БД в Delphi 5 19.02.2010 07:33
Как убрать фокус со StringGrid? TwiX Общие вопросы Delphi 2 25.08.2009 01:32
Как убрать фокус с TrackBar?????? NBSTUDIO Общие вопросы Delphi 1 11.08.2009 16:24
Убрать фокус со всех компонентов ? chandrasecar Общие вопросы Delphi 5 21.12.2008 00:56
Как раскрасить ячейки StringGrid'а в разные цвета в соответствии с условием? monushka Компоненты Delphi 12 05.11.2007 23:44