Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307

Некорректное отображение изображения на canvas

28.04.2020, 14:34. Показов 615. Ответов 2

Студворк — интернет-сервис помощи студентам
Возник вопрос по неадекватному поведению визуализации канвы на стринггриде.
Слева так, как я вижу у себя на компе, всё ок. А справа - на другом компе тот же скомпиллированный .exe-шник - изображения уехали:

В чём проблема?

код обработчика перерисовки грида из Builder C++ Rad Studio 10:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
          TGridDrawState State)
{
    StringGrid1->Canvas->Brush->Color = clYellow;
    StringGrid1->Canvas->Pen->Color = clRed;
    StringGrid1->Canvas->Pen->Width = 5;
    StringGrid1->Canvas->FillRect(Rect);
    if((ACol==0)&&(ARow==0))
    {
        StringGrid1->Canvas->Arc(15, 5, 50, 25, 50, 15, 0, 15);
        value = 1;
    }
    if((ACol==0)&&(ARow==1))
    {
        StringGrid1->Canvas->Chord(15, 30, 50, 50, 50, 40, 0, 40);
        value = 2;
    }
    if((ACol==0)&&(ARow==2))
    {
        StringGrid1->Canvas->Ellipse(15, 55, 50, 70);
        value = 3;
    }
    if((ACol==0)&&(ARow==3))
    {
        StringGrid1->Canvas->Pie(15, 85, 50, 100, 150, 50, 0, 80);
        value = 4;
    }
    if((ACol==1)&&(ARow==0))
    {
        TPoint points[5]; 
        points[0] = Point (80, 20);
        points[1] = Point (90, 5);
        points[2] = Point (100, 15);
        points[3] = Point (110, 5);
        points[4] = Point (120, 20);
        StringGrid1->Canvas->Polygon(points, 4);
        value = 5;
    }
    if((ACol==1)&&(ARow==1))
    {
        TPoint points[5]; 
        points[0] = Point (80, 45);
        points[1] = Point (90, 30);
        points[2] = Point (100, 40);
        points[3] = Point (110, 30);
        points[4] = Point (120, 45);
        StringGrid1->Canvas->Polyline(points, 4);
        value = 6;
    }
    if((ACol==1)&&(ARow==2))
    {
        StringGrid1->Canvas->Rectangle(80, 55, 120, 70);
        value = 7;
    }
    if((ACol==1)&&(ARow==3))
    {
        StringGrid1->Canvas->RoundRect(80, 80, 120, 95, 7, 7);
        value = 8;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2020, 14:34
Ответы с готовыми решениями:

Некорректное отображение изображения
Здравствуйте. Подскажите пожалуйста, что это и как с этим бороться. В Excel если провести мышкой то все становится нормально.

Некорректное отображение изображения в PictureBox
Добрый день возникла проблема. Сохраняю картинку из PictureBox в бд. Сохранение проходит нормально но вот отображение картинка не...

Некорректное отображение
Всем привет, помоги пожалуйста советом. У меня есть сайт http://www.mia-luce.ru/ , во всех браузерах все работает нормально, но когда...

2
694 / 6950 / 265
Регистрация: 11.08.2016
Сообщений: 3,932
28.04.2020, 16:04
Возможно, на другом компе у ячеек другие размеры. По-хорошему, размеры иероглифов должны бы быть относительно размерам ячеек.
1
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
05.05.2020, 13:49  [ТС]
вопрос решён банальным явным указанием высоты/ширины StringGrid'a в FormActivate() и дефолтовой высоты/ширины ячейки грида, хотя я почти наверняка уверен, что проблема была в следующем:
опциях формы по дефолту стоит масштабирование Scaled = true. Если запретить масштабирование, то мне кажется всё должно быть окей (не проверял, т.к. человечек, которому помогал с кодом не ответил на вопрос об этом, а на моём компе всё адекватно отображалось, а фиксация высоты и ширины грида и его ячейки у него решило проблему)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2020, 13:49
Помогаю со студенческими работами здесь

Некорректное отображение баннера в браузерах
Подскажите, пожалуйста, как решить проблему. Баннер, состоящий из 4 частей, отображается на мониторе не горизонтально, как положено, а...

Некорректное отображение
недавно я хотел скопировать текст и отправить сообщение, своего решения на форум текст был взят из среды разработки русские слова...

Некорректное отображение в ИЕ
Добрый день! Как исправить некорректное отображение в ИЕ сайта advokatlogika.ru

Некорректное отображение
Помогите, пожалуйста, с проблемой. Есть какой той каркас.Макет будет фиксированным. Я задаю контейнеру (там, где будет находиться весь...

Некорректное отображение гаджетов
Неверно отображаются все гаджеты на рабочем столе. Примерно так:


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru