[COLOR=blue]
//Dates - TstringGrid
//DateEdit1 - TDateTimePicker
void __fastcall T_FAddFirm::DatesDrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if(ACol == 1)
{
if(State.Contains(gdSelected))
{
DateEdit1->Left = Dates->Left+Rect.Left+3;
DateEdit1->Top = Dates->Top+Rect.Top+3;
DateEdit1->Height = Rect.Height();
DateEdit1->Width = Rect.Width();
DateEdit1->Text = Dates->Cells[ACol][ARow];
DateEdit1->Visible = true;
}
else
{
DateEdit1->Visible = false;
}
}
else
DateEdit1->Visible = false;
}
[/COLOR]
Как со StringGrid убрать любые выделения текущий ячейки
Дело в том, что StringGrid при потере фокуса свою активную ячейку выделяет синим фоном (от этого я избавился с помощь обрабатывания OnDrawCell), а при получении фокуса компонентом, активная ячейка обводиться пунктирной рамкой (а вот от этого я никак избавиться не могу!!!).
Решение нашел: сделал грид вообще дисабл (поскольку мне от грида надо PopupMenyu, которое я теперь поцепил на панель лежащию под гридом), но сами понимаете, что это изврат, и тем более мне когда нибудь всетаки понадобится делать грид enable, и эта проблема опять встанет передомной.
Подскажите как убрать с активной ячейки пунктирную рамку?
С уважением, Duch.
Цитата:
Originally posted by Duch
(Borland C++ Builder)
Дело в том, что StringGrid при потере фокуса свою активную ячейку выделяет синим фоном (от этого я избавился с помощь обрабатывания OnDrawCell), а при получении фокуса компонентом, активная ячейка обводиться пунктирной рамкой (а вот от этого я никак избавиться не могу!!!).
Решение нашел: сделал грид вообще дисабл (поскольку мне от грида надо PopupMenyu, которое я теперь поцепил на панель лежащию под гридом), но сами понимаете, что это изврат, и тем более мне когда нибудь всетаки понадобится делать грид enable, и эта проблема опять встанет передомной.
Подскажите как убрать с активной ячейки пунктирную рамку?
С уважением, Duch.
(Borland C++ Builder)
Дело в том, что StringGrid при потере фокуса свою активную ячейку выделяет синим фоном (от этого я избавился с помощь обрабатывания OnDrawCell), а при получении фокуса компонентом, активная ячейка обводиться пунктирной рамкой (а вот от этого я никак избавиться не могу!!!).
Решение нашел: сделал грид вообще дисабл (поскольку мне от грида надо PopupMenyu, которое я теперь поцепил на панель лежащию под гридом), но сами понимаете, что это изврат, и тем более мне когда нибудь всетаки понадобится делать грид enable, и эта проблема опять встанет передомной.
Подскажите как убрать с активной ячейки пунктирную рамку?
С уважением, Duch.
Так на вскидку в OnDrawCell рисуй прямоугольник ц цветом линии == фону ячейки. Вот примерчик наподебее, правда я не рамку рисую а ввод даты организую, но похоже:
Код:
Нашел обход этой проблемы. Пунктир рисуется на ячейке, когда таблица получает фокус. Соответственно чтобы от него избавиться, надо в обработчике OnSelectCell или OnMouseDown переключить фокус на другой элемент, например форму под ней.