![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток, уважаемые форумчане!
У меня следующая проблема.. Существует в природе компонент с названием jvShape.. уж очень мне он понравился возможностью писать что-то поверх фигуры, да и фигур в нем приличное количество. Еще есть два компьютера - рабочий и домашний. Скачал компонент, как человек еще не сильно искушенный в Delphi нашел руководство по установке компонентов, приступил.. На рабочем компе с Borland Developer Studio 2006 (WinXP) все установить получилось, все работало шикарно. Такие же примерно манипуляции проделал на домашнем компе (Borland Developer Studio 2006 и Embarcadero RAD 2010 ) - на первый взгляд все тоже хорошо, но как раз та возможность что меня подкупила (надписи поверх фигуры) пропала (в дальнейшем пробовал поставить на Delphi XE2). Вообще надпись поверх фигуры отображается/скрывается посредством свойства jvShape.byUser (boolean).. так вот на одном компе по изменению этого свойства надпись просто пропадает/появляется (фигура остается), на другом показывается либо надпись либо фигура - вот собссно и проблема.. Подскажите как "удачно" поставить данный компонент на Delphi XE2.. Только ли дело в моих кривых руках, может настройки системы при работе с какими-нибудь альфа-каналами? Ссылка на скачивание jvshape.zip http://www.delphi.int.ru/components/J/ компонент довольно старый.. может вообще не подойдет для XE2? Заранее спасибо |
|
#2
|
|||
|
|||
|
Нус, где же все гуру? Что-нибудь ответьте)
Может быть я облажался и неправильно вопрос задал или еще что-то? ![]() |
|
#3
|
||||
|
||||
|
Компонент надо либо под Ansi затачивать, либо под юникод.
|
|
#4
|
|||
|
|||
|
Цитата:
По свойству ByUser выполняется одна из процедур doUserDraw и DrawText. Интересна функция DrawText тем, что после помещения в локальный битмап текста и слияния этого битмапа с канвой компонента нарисованной в doUserDraw фон текста остается непрозрачным, хотя этого быть не должно... вот код функции DrawText Код:
procedure TjvShape.DrawText;
var
bm:Tbitmap;
fx,fy,fw,fh:integer;
begin
bm:=tbitmap.create;
bm.width:=width;
bm.height:=height;
bm.canvas.font.assign(font);
fw:=bm.canvas.TextWidth (FCaption);
fh:=bm.canvas.TextHeight (FCaption);
if fw>xw then
fx:=5
else
fx:=(width-fw) div 2;
if fh>yh then
fy:=5
else
fy:=(height-fh) div 2;
if FCaptionCentered then
textrotate(bm,fx,fy,FCaptionAngle,FCaption,font)
else
textrotate(bm,FCaptionX,FCaptionY,FCaptionAngle,FCaption,font);
bm.transparent:=true;
bm.TransparentMode :=tmfixed;
bm.TransparentColor :=clwhite;
canvas.Draw (0,0,bm);
bm.free;
end;Хелп, как говорится) |
|
#5
|
|||
|
|||
|
Может стоит перенести тему в раздел "Графика и игры"?
Админы, помогите если можно перенести.. |