Большой Воронежский Форум
» Программирование>Вставка картинки в StringGrid в Delphi
V@silisk@ 18:02 02.04.2009
Подскажите, пожалуйста, как в StringGrid в Delphi в определенную ячейку вставить картинку.
Google дал ответ следующей конструкции
В обработчике события OnDrawCell элемента StringGrid поместите следующий код:
with (Sender as TStringGrid) do
with Canvas do
begin
{...}
Draw(Rect.Left, Rect.Top, Image1.Picture.Graphic);
{...}
end;
Используйте метод Draw() или StretchDraw() класса TCanvas. Image1 - это TImage с предварительно загруженным в него bitmap-ом.
но данная операция заполняет все ячейки рисунком, а нужно в одну определенную подскажите как подправить код
З.Ы.заранее спасибо
Yandex 18:37 02.04.2009
V@silisk@, на www.drkb.ru справку смотрел? Нет?! Выпей яду.
dn2k4 18:55 02.04.2009

Сообщение от V@silisk@:
одскажите, пожалуйста, как в StringGrid в Delphi в определенную ячейку вставить картинку.

Правильно заданный вопрос - половина ответа =)
V@silisk@ 20:14 02.04.2009
Yandex, сам выпей яду, вот возьми и пройди по этой ссылке, там тоже самое написано
V@silisk@ 20:17 02.04.2009
dn2k4, что тут непонятно, хочу я в определенную ячейку вставить картинку, вот захотелось мне в самую верхнюю, иди в центре,какую-нить [2,1]
Yandex 20:39 02.04.2009
Сорр, действительно. Пойду в кладовку.

Вот тут красят заданные ячейки
http://forum.sources.ru/index.php?showtopic=141656&hl=
Вообще поиск по sources.ru рулит
dn2k4 10:42 03.04.2009

Сообщение от V@silisk@:
хочу я в определенную ячейку вставить картинку, вот захотелось мне в самую верхнюю, иди в центре,какую-нить [2,1]

А откуда оно узнает, что отрисовываемая в текущий момент ячейка - та что тебе нужна? Надо как-то проверить? =)
V@silisk@ 10:57 03.04.2009
dn2k4, ну а как это сделать, я вообще не программмист, поэтому для меня это как темный лес вот и прошу совета, просто везде где смотрела, там идет заполнение всех ячеек, а как сделать чтобы в одну нужную не пойму
dn2k4 12:05 03.04.2009
V@silisk@, придется разбираться, иначе никак.

"Я вообще не хирург, поэтому для меня это как темный лес, вот и прошу совета, везде где смотрел, там рассказывают как резать, а как отрезать нужное не пойму." =)

А если надо быро быро задание сдать, голову себе не забивая - тебе
сюда
V@silisk@ 14:40 03.04.2009
dn2k4, быро быро мне не надо, надо разобраться вот поэтому и спрашиваю совета, так как пишу диплом и это оч нужно мне
Rаvel 21:47 07.04.2009
в чем проблема то?
в вычислении координат или в самом рисовании?
рисование думаю найдешь в любом справочнике, а координаты... наверно так:
имеем номер ячейки в которую нужно вставить рисунок,
перебираем все стобцы до нее и суммируем их длину (ColWidths[i]) - получаем координату X,
перебираем все строки до нее, получаем У
dn2k4 22:35 07.04.2009

Сообщение от Rаvel:
а координаты... наверно так:
имеем номер ячейки в которую нужно вставить рисунок,
перебираем все стобцы до нее и суммируем их длину (ColWidths[i]) - получаем координату X,
перебираем все строки до нее, получаем У

У меня складывается устойчивое впечатление, "молодым воронежским программистам", и прочим "специалистам" документацию читать просто западло. Это же не модно, да. А думать - это вообще тупо. Ctrl-F1 нажать и почитать описание классов - о, это невозможно. Спасите, помогите...

Cобытие OnDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

ACol, ARow - какую ячейку рисуем.
Rect - прямоугольник ячейки с уже посчитанными координатами

Остается только не забыть что событие возникает для всех ячеек - и фиксированных, и той, где находится курсор, и их надо правильно отрисовать. Впрочем Yandex ссылку уже давал.
Yandex 22:39 07.04.2009
dn2k4, быстрое понимание любой справки приходит только с опытом. По началу все непонятно и проще на форуме спросить. Только вот спрашивать лучше на тематическом. Там конечно все сразу будут кричать БОЯНЪ! но тем не менее помогут.
Набросал бы и тут код сам, но Delphi нет, да и вспоминать что так к чему сильного желания нет.
dn2k4 22:55 07.04.2009
Yandex, вот только опыт приходит только с практикой.

Эх... раньше, в фидо лучше было - человек сначала что-то сам пробует, потом выкладывает свои попытки, ему рассказывают. А тут "я вот нашел, а что это - не знаю". Ну, значит оно так тебе надо... Впрочем это больше к "подзабывшим матюкатику с геморроеметрией" относится.

Оффтоп, однако, завязывам =)
Andrew_80 09:21 09.04.2009
А зачем вставлять именно в StringGrid, когда есть компонент DrawGrid, специально для этих целей и предназначенный?
AIM-9M 10:22 09.04.2009

Сообщение от Andrew_80:
А зачем вставлять именно в StringGrid, когда есть компонент DrawGrid, специально для этих целей и предназначенный?

Первый нормальный ответ в теме.
Вверх