Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 113

ValueListEditor изменения цвета в ячейке

02.12.2012, 22:27. Показов 2192. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как изменить цвет в ячейке полазил по форуму нету ничего . Компонент именно ValueListEditor. Помогите
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2012, 22:27
Ответы с готовыми решениями:

Проверка изменения значения Ключа в ValueListEditor
Привет. В TEdit есть Event OnChange. Как проверить это событие у ValueListEditor?

Изменение значения в ячейке в зависимости от изменения в другой ячейке
Здравствуйте. Помогите составить формулу для решения вопроса. Допустим есть два столбца (А и В), в которых записаны числовые значения....

Событие изменения в ячейке
Здравствуйте! Есть группа OptionButton связанных с ячейкой. Как отследить изменение в этой ячейке? Worksheet_Change не работает(

13
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.12.2012, 02:19
определять координаты ячейки и красить канву
0
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 113
03.12.2012, 15:06  [ТС]
Єто понятно но не так задал Вопрос если ячейка изменена( содержимое ячейки) тогда как красить, нужно перекрасить если ячейку изменили.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.12.2012, 16:40
туманно все как-то...
0
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
03.12.2012, 16:53
OnStringsChange или OnSetEditText, пробывали?

Добавлено через 5 минут
Хотя мне еще не понятно как можно использовать их для определения ячейки в которой произошло изменение.
Отслеживать по OnClick ячейку, и следить чтоб не было использовано указателей смещения по ячейкам - на мой взгляд не профессионально)

Если поможет http://docs.embarcadero.com/pr... ditor.html
0
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 113
03.12.2012, 17:32  [ТС]
Вот в чем и соль не понятно как отследить ячейку в OnStringsChange. Именно этим событиям и хотел делать , но увы .
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
03.12.2012, 18:09
Отследить можно так
C++
1
2
3
4
5
6
void __fastcall TMainForm::ValueListEditor1StringsChange(TObject *Sender)
{
if(ValueListEditor1->Values["Îòäåë"]=="Íîâûé îòäåë...")
  {
   ValueListEditor1->ItemProps[2]->ReadOnly = false;
  }
Добавлено через 2 минуты
Можешь почитать вот здесь для ознакомления
http://functionx.com/bcb/controls/valuelist.htm
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
03.12.2012, 18:26
Можно сохранять состояния списка. При очередном OnStringsChange сравниваем текущее и предыдущее состояния на предмет изменений, затем сохраняем текущее состояние в ожидании следующего OnStringsChange. Но это очевидный костыль, наверняка есть более простой и эффективный способ...
0
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 113
05.12.2012, 01:47  [ТС]
Up , может у кого то есть гениальные идеи вылаживайте
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
05.12.2012, 10:01
Да все просто, хоть совсем халявных способов и не наблюдается.
Вот о чем я говорил:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class TForm1
               : public TForm {
__published: // IDE-managed Components
    TValueListEditor *val_lst_1;
    void __fastcall val_lst_1StringsChanging( TObject *Sender );
    void __fastcall val_lst_1DrawCell( TObject *Sender, int ACol, int ARow, TRect &Rect,
        TGridDrawState State );
    void __fastcall val_lst_1StringsChange( TObject *Sender );
 
private: // User declarations
public:  // User declarations
 
    __fastcall TForm1( TComponent *Owner );
    std::vector <bool> vals_to_paint;
    std::auto_ptr <TStringList> val_lst_1_state;
};
C++
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
__fastcall TForm1::TForm1( TComponent *Owner )
               : TForm( Owner ) {
    // сохраняем изначальное состояние
    val_lst_1_state.reset( new TStringList( ) );
    val_lst_1_state->Assign( val_lst_1->Strings );
    vals_to_paint.resize( val_lst_1->Strings->Count );
}
void __fastcall TForm1::val_lst_1StringsChanging( TObject *Sender ) {
    // можно сохранять состояние и каждый раз при изменениях, если надо
    // val_lst_1_state->Assign( val_lst_1->Strings );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::val_lst_1StringsChange( TObject *Sender ) {
    // анализируем изменения, смотрим, чего красить надо
    for ( size_t i = 0; i < val_lst_1->Strings->Count; ++i ) {
        vals_to_paint[i + 1] = val_lst_1_state->Strings[i].Compare( val_lst_1->Strings->Strings[i] ) == 0 ? false : true;
    }
    val_lst_1->Repaint( );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::val_lst_1DrawCell( TObject *Sender, int ACol, int ARow, TRect &Rect,
    TGridDrawState State ) {
    // закрашиваем нужные ячейки
    if ( ACol && vals_to_paint[ARow] ) {
        val_lst_1->Canvas->Brush->Color = clWebOrange;
        val_lst_1->Canvas->FillRect( Rect );
        val_lst_1->Canvas->TextOut( Rect.left + 2, Rect.top + 2, val_lst_1->Cells[ACol][ARow] );
    }
}
0
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 113
07.12.2012, 01:21  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm3::SkillLevelStringsChanging(TObject *Sender)
{
    for(int o = 1;  o < 11; o++)
 {
  
   if(CopyList1->Values[o] != SkillLevel->Values[o])
    {
       SkillLevel->Canvas->Brush->Color = clRed;
 
    }
  }
}
//---------------------------------------------------------------------------
зделал вот так но проблема после каждого нового редактирования строчка та что была закрашена , стает опять белой а новая измененная закрашиваться , получаеться нет сохранения закрашеных ячеек как , это организовать?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
07.12.2012, 14:56
Я ж привел рабочий вариант. Как минимум используй его за основу, если копировать не хочется.
Конечно закраска пропадает, надо ж самому обрабатывать OnDrawCell...
0
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 113
09.12.2012, 00:12  [ТС]
C++
1
2
3
    __fastcall TForm1( TComponent *Owner );
    std::vector <bool> vals_to_paint;
    std::auto_ptr <TStringList> val_lst_1_state;
Вот это не понятно.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.12.2012, 11:40
Это контейнеры из библиотеки stl, один - под массив элементов типа bool, второй - под указатель на TStringList.
Вот, справку почитай:
vector
auto_ptr
Или на ПедиВикию загляни, в конце концов - Умный указатель, Vector (C++).

Где твое любопытство??? Сам бы мог легко все это найти при желании.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.12.2012, 11:40
Помогаю со студенческими работами здесь

Изменение цвета данных в ячейке
Всем привет. Подскажите, пожалуйста, существует ли возможность менять моно цвет данных ФОРМУЛЫ (или данные от ссылки на другую ячейку) в...

Изменение цвета текста в ячейке
Здравствуйте! Мне нужно чтобы у меня в Excel файле была автоматическая смена цвета текста в определенной ячейке при выполнении одного...

Отследить изменения в ячейке GridView
Добрый день. подскажите пожалуйста, как отследить изменения в ячейке GridView и если оно изменилось ,то что то сделать. что то совсем...

Макрос по определению цвета шрифта в ячейке
Подскажите пожалуйста функцию VBA для опреределения цвета шрифта в ячейке с 9 по 10 символ (в ячейке используются различные цвета) И...

Отлавливание изменения значения в ячейке DataGridView
Доброго времени суток! На форме у меня есть контролы dataGridView. Ячейки изменяемые.На каждый контрол установлена функция...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru