Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringGrid , как убрать выделения которые, происходят при манипуляциях мышью 
:(
    Опции темы
Notreg
Дата 27.8.2008, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 10.1.2007

Репутация: нет
Всего: нет



StringGrid не нужно редактировать, соответственно выделения не нужны, ставлю DefaulDrawing = false, ваще ниче не рисуется. Можно как то запретить только выделения а не всю прорисовку убирать? Другие компоненты не предлагать.
--------------------
Надежна лишь смерть, жизнь - нет.
PM MAIL   Вверх
ama_kid
Дата 27.8.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 10
Всего: 95



там есть в Options параметр типа SelectCell (не помню точно название). Поставь ему false...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Notreg
Дата 27.8.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 10.1.2007

Репутация: нет
Всего: нет



поставил, выделять нельзя. Но первая ячейка при запуске выделенна=( И еще ячейки подсвичиваются не нужно рамкой.
--------------------
Надежна лишь смерть, жизнь - нет.
PM MAIL   Вверх
volvo877
Дата 27.8.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 13
Всего: 116



Ну, добавь в класс процедуру:
Код

void __fastcall TForm1::GridClean(TObject *Sender) {
    TGridRect hGridRect;
    hGridRect.Top = hGridRect.Left =
      hGridRect.Right = hGridRect.Bottom = -1;
    dynamic_cast<TStringGrid *>(Sender)->Selection = hGridRect;
}
, и потом на FormShow:

Код
...
    GridClean(StringGrid1);
    StringGrid1->Enabled = false;
...
, тогда точно ничего лишнего появляться не будет smile
PM MAIL   Вверх
Notreg
Дата 27.8.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 10.1.2007

Репутация: нет
Всего: нет



Точно не появляется, тока вот enable мне нужен тру=(.
--------------------
Надежна лишь смерть, жизнь - нет.
PM MAIL   Вверх
volvo877
Дата 27.8.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 13
Всего: 116



Цитата(Notreg @  27.8.2008,  13:48 Найти цитируемый пост)
тока вот enable мне нужен тру=(. 
Значит, придется еще:
Код

// ...  и OnDrawCell добавить:
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow,
      TRect &Rect, TGridDrawState State)
{
    if(State.Contains(gdFocused)) {
        TCanvas* canvas = dynamic_cast<TStringGrid*>(Sender)->Canvas;
        DrawFocusRect(canvas->Handle, &Rect); // <--- это должно погасить "рамку"
    }
}

// ... и "чистить" StringGrid при потере фокуса:
void __fastcall TForm1::StringGrid1Exit(TObject *Sender)
{
    GridClean(StringGrid1);
}


// а StringGrid1->Enabled = false; из OnShow можешь убрать


P.S. Все Options СтрингГрида выставлены по умолчанию...
PM MAIL   Вверх
Notreg
Дата 27.8.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 10.1.2007

Репутация: нет
Всего: нет



Цитата
P.S. Все Options СтрингГрида выставлены по умолчанию...

goRangeSelect = false - все же так! ибо выделяется мышкой. Спасибо, все как нужно. Правда не понятно что за dynamic_cast<>
--------------------
Надежна лишь смерть, жизнь - нет.
PM MAIL   Вверх
volvo877
Дата 27.8.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 13
Всего: 116



Цитата(Notreg @  27.8.2008,  16:27 Найти цитируемый пост)
Правда не понятно что за dynamic_cast<> 

Код
TCanvas* canvas = dynamic_cast<TStringGrid*>(Sender)->Canvas;
// аналог
TCanvas* canvas = ((TStringGrid*)Sender)->Canvas;
, приведение типа Sender-а к указателю на TStringGrid
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.