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

StringGrid закраска ячейки и добавление bmp

15.10.2016, 03:42. Показов 1336. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчани , возникла проблема со StringGrid , суть проблемы в том что у меня программа в процессе работы записывает предупреждения или угрозы в Журнал событий , мне нужно Предупреждение например зарисовывать оранжевым , Тревоги - Красным. И вместо записи Предупреждение хотелось бы видеть стандартную картинку восклицательного знака.

Код записи одной из ошибок у меня такой
C++
1
2
3
4
5
6
7
8
9
10
int num=0, ro = 0;
     for(int i=1;i<StringGrid3->RowCount;i++)
       if( StringGrid3->Cells[0][i].ToIntDef(0) !=0)
         num = StringGrid3->Cells[0][i].ToInt();
       else { ro = i; break; }
     if(ro==0 || ro==StringGrid3->RowCount-1) StringGrid3->RowCount +=1;
     StringGrid3->Cells[0][ro] = num+1;
     StringGrid3->Cells[1][ro] = "Тревога";
     StringGrid3->Cells[2][ro] = Date()+Time();
     StringGrid3->Cells[3][ro] = "Длина сырьевой пленки выше заданной > "+ sCalcEdit3->Text;
Помогите пожалуйста с моим вопросом
Миниатюры
StringGrid закраска ячейки и добавление bmp  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2016, 03:42
Ответы с готовыми решениями:

Закраска левой верхней ячейки выбор StringGrid
Имеется грид с числами (в данном случае просто случайными). У каждой ячейки раскраска в зависимости от содержимого. При выборе диапазона...

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

Закраска в StringGrid
Здравствуйте ,народ .Нужна помощь. В динамической библиотеке описана и реализована ф-ия, заполняющая массив по ф-ле: тут ф-ла. Весь...

3
Модератор
 Аватар для D1973
9691 / 6293 / 2435
Регистрация: 21.01.2014
Сообщений: 26,844
Записей в блоге: 3
15.10.2016, 08:03 2
Цитата Сообщение от djelmik777 Посмотреть сообщение
вместо записи Предупреждение хотелось бы видеть стандартную картинку восклицательного знака
вместо СтрингГрида используй DrawGrid
0
9 / 9 / 6
Регистрация: 14.09.2016
Сообщений: 41
15.10.2016, 12:51 3
Лучший ответ Сообщение было отмечено djelmik777 как решение

Решение

djelmik777, труженичек.
Можно и StringGrid использовать
Выбираешь событие OnDrawCell и пишешь типа такого:
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
void __fastcall TForm1::StringGrid3DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
{
    #define XSHIFT 2 // Смещение текста в ячейке
    #define YSHIFT 5
    if( StringGrid3->Cells[1][ARow] == "Тревога" )
    {
        // Белый цвет шрифта на красном фоне
        StringGrid3->Canvas->Brush->Color = clRed;
        StringGrid3->Canvas->FillRect(Rect);
        StringGrid3->Canvas->Font->Color = clWhite;
        StringGrid3->Canvas->TextOut(Rect.Left + XSHIFT, Rect.Top + YSHIFT, StringGrid3->Cells[ACol][ARow]);
    }
    else if( StringGrid3->Cells[1][ARow] == "Предупреждение" )
    {
        if( ACol == 1 )
        {
            StringGrid3->Canvas->FillRect(Rect);
            ImageList1->Draw( StringGrid3->Canvas, Rect.Left, Rect.Top, 0 );
        }
        else
        {
            // Оранжевый цвет шрифта на фоне по уммолчанию
            StringGrid3->Canvas->FillRect(Rect);
            StringGrid3->Canvas->Font->Color = (TColor)0x7FFF;  // Оранжевый
            StringGrid3->Canvas->TextOut(Rect.Left + XSHIFT, Rect.Top + YSHIFT, StringGrid3->Cells[ACol][ARow]);
        }
    }
}
А в твоём коде StringGrid3->Repaint();
Можно, конечно, и по-другому определять Тревога там или ещё что. Через массив, или StringGrid3->Objects[...][...]

Добавлено через 15 минут
C++
1
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
Параметры ACol и ARow указывают индексы столбца и строки (отсчитываются от 0).
Параметр Rect - это прямоугольная область канвы, соответствующая перерисовываемой ячейке.
Параметр State указывает состояние ячейки: gdSelected - выделена, gdFocused - находится в фокусе, gdFixed - расположена в фиксированной области таблицы.
1
0 / 0 / 0
Регистрация: 07.07.2015
Сообщений: 41
16.10.2016, 00:43  [ТС] 4
Большое спасибо за помощь , очень вам благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.10.2016, 00:43
Помогаю со студенческими работами здесь

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

Закраска ячеек в StringGrid
Добрый день, ув. программисты! Вопрос именно по билдеру 6, т.к. в других версиях синтаксис может отличаться. Мне нужно по нажатии кнопки...

Закраска ячеек в StringGrid
вот таким образом я закращиваю ячейки в stringrid //закраска ячеек for(int j=0;j&lt;StringGrid1-&gt;ColCount;j++) { for(int...

StringGrid закраска ячеек
Всем здравствуйте! Я новичок в программировании на с++! Не так давно начал его осваивать. В качестве обучения решил написать прогу в...

Закраска области StringGrid
procedure TForm1.strngrd1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var i, j: integer; ...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
WebAssembly и Go: Создание высокопроизводи­­тельных веб-приложений
bytestream 03.03.2025
WebAssembly - это технология, изменившая подход к созданию высокопроизводительных веб-приложений. До появления WebAssembly JavaScript оставался единственным языком программирования, который понимали. . .
Контексты в Go: отмена, тайм-ауты и распространение
bytestream 03.03.2025
В многопоточном программировании существует множество ситуаций, когда необходимо прерывать выполнение горутин или ограничивать время их работы. Отсутствие грамотного управления параллельными. . .
WebSocket в Go: создание масштабируемых real-time приложений
bytestream 03.03.2025
Веб-приложения все чаще требуют обработки данных в режиме реального времени. Традиционный подход с использованием HTTP-запросов имеет существенные ограничения для таких сценариев. При каждом запросе. . .
Как дебажить в Go: Руководство по отладке
bytestream 03.03.2025
Отладка в Go имеет свои особенности, связаные с строгой типизацией, моделью конкурентности и управлением памятью. Go предоставляет богатый набор встроеных средств для отладки, которые дополняются. . .
Быстрый map в Go со Swiss Table
bytestream 03.03.2025
Swiss Table - это не просто очередная оптимизация существующего решения, а принципиально новый подход к организации данных в памяти. В основе лежит идея группового зондирования с использованием. . .
Пакет Context в Go и управление потоками
bytestream 03.03.2025
Context - один из наиболее важных и часто используемых пакетов в Go, предоставляющий возможности для управления жизненным циклом операций, отмены запросов и передачи значений между горутинами. Этот. . .
Суммирование октав синего шума, как шум Перлина в C++
bytestream 03.03.2025
Создание реалистичных процедурных текстур, ландшафтов и эффектов требует понимания различных типов шума и их характеристик. Синий шум, в отличии от более распространенного белого шума, обладает. . .
Двумерный итератор перемешивания с низким расхождением в C++
bytestream 03.03.2025
В компьютерной графике и вычислительной математике часто возникает потребность в эффективном перемешивании двумерных данных с сохранением определенных статистических свойств. Особую значимость. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru