Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2012, 21:15   #1
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию Рамка для TImage

Нужно что вокруг image в который уже загруженно изображение рисовалось рамка определенного цвета.

Пытался использовать этот код но изображение просто пропадает.
Код:
Image1.Picture.Bitmap.Canvas.Brush.Style := bsClear;
Image1.Picture.Bitmap.Canvas.Rectangle(0, 0,
Image1.Picture.Bitmap.Width,
Image1.Picture.Bitmap.Height);
Painkiller_13 вне форума Ответить с цитированием
Старый 18.11.2012, 21:40   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Надо так:
Код:
Image1.Canvas.Pen.Color:=clBlack;
Image1.Restengle(0,0,Image1.Width,Image1.Height);
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 18.11.2012, 22:02   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

саша40, Вы бы ерунду то левую не пороли.
Ректангл (а не рестенгл) рисует не просто рамку, а ещё и заливает текущей кистью то, что внутри. Просто рамку - FrameRect с теми же параметрами.
phomm вне форума Ответить с цитированием
Старый 19.11.2012, 00:07   #4
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию

При использования кода
Код:
Image1.Canvas.Pen.Color:=clBlack;
Image1.Restengle(0,0,Image1.Width,Image1.Height);
Выскакивает ошыбка Can only modify an image if it contains a bitmap

А если использовать image1.canvas.FrameRect(); с параметрами 0,0,Image1.Width,Image1.Height
выдает несовместимость типов integer и TRect
Painkiller_13 вне форума Ответить с цитированием
Старый 19.11.2012, 06:26   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Значит FrameRect(Rect(параметры))
Справочку то трудитесь читать хоть иногда, не я же за Вас буду её читать.
phomm вне форума Ответить с цитированием
Старый 20.11.2012, 16:58   #6
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию

can only modify an image if it contains a bitmap
при попытки зделать рамку для image в котором уже загружена картинка.
Если использовать image1.Picture.Bitmap.Canvas.FrameR ect(Rect(0,0,Image1.Width,Image1.He ight)); то рисунок просто пропадает.

Последний раз редактировалось Painkiller_13; 20.11.2012 в 17:07.
Painkiller_13 вне форума Ответить с цитированием
Старый 20.11.2012, 17:34   #7
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию

Использовал преобразование в бмп
Код:
var bp:TBitmap;
begin
bp:=TBitmap.Create;
bp.Assign(image1.picture.Graphic);
image1.picture.Bitmap.Assign(bp);
image1.canvas.FrameRect(Rect(0,0,Image1.Width,Image1.Height));
Но появился другой вопрос как можно изменить цвет и размер рамки. Стандартно как я понял это белый и размер 1 пиксель.
Painkiller_13 вне форума Ответить с цитированием
Старый 20.11.2012, 19:31   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

canvas.pen.color
canvas.pen.width
canvas.frameRect
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 20.11.2012, 19:40   #9
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию

canvas.pen.color не работает но спасибо за идею
canvas.brush.color подошел
Насчет размер рамки canvas.pen.width тоже не работает а у canvas.brush параметра width нету
Painkiller_13 вне форума Ответить с цитированием
Старый 20.11.2012, 21:11   #10
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию

При использовании функции
image1.canvas.FrameRect(Rect(0,0,Im age1.Width,Image1.Height));
в image загружено png изображение и там нет изображение закращываеться белым цветом как ето убрать или хотябы выбрать цвет закрашывания.
Painkiller_13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рамка для iframe AlexDn HTML и CSS 1 27.07.2012 12:53
drawcell рамка для строки на которой находится выделенная ячейка Azam693 Компоненты Delphi 1 18.03.2012 16:15
Загрузка изображения для создаваемого TImage LynxRufus Общие вопросы Delphi 3 20.01.2010 08:07
Организация полосы для TImage Gerzs Общие вопросы Delphi 7 30.07.2009 21:12
Свой обработчик ошибок для TImage Aslan Мультимедиа в Delphi 8 29.11.2007 11:54