Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Че за фигня-я-я-я ??? [D6, WinXP]


Страницы:   1 2

Kinder ©   (2002-10-18 22:49:00) 

Доброе утро, день, ночь, уважаемые мастера!
Прошу Вас не оставить без внимания мой вопрос:
Создал ДЛЛ в которую передаю канвас, рисую на нем все ОК.
Но как только пытаюсь поменять шрифт или любое свойство у Canvas.Font Выдает ошибку Ацес Волатион!
Как быть?


Юрий Зотов   (2002-10-18 23:52:00) [21]

Думаю, дело тут может быть глубже.

Попробуйте откомпилировать и EXE, и DLL с run-time пакетами. Если проблема исчезнет, то я, к сожалению, прав. Результат сообщите, от него будем думать дальше.


Kinder   (2002-10-18 23:49:00) [22]


-->k
Размеры тут ни при чем так как если я не изменяю
стиль или размер шрифта все нормально, TextOut выводит надпись
без замечания, но мне нужно менять шрифт

-->Rouse_
Спасибо, попробую...


k   (2002-10-18 23:44:00) [23]

проверь, правильно ли ты задал размеры канваса. на всякий случай.


Rouse_   (2002-10-18 23:42:00) [24]

Попробуй передавать не канвас а битмап, а попозже посмотрю как правильнее и вызов cделай ( var Bitmap: TBitmap)

Желаю успехов


Kinder   (2002-10-18 23:30:00) [25]

--->Rouse

Все равно когда использую шрифт не хоца, а когда просто
рисую Ок!


Rouse_   (2002-10-18 23:13:00) [26]

Вызов

procedure TForm1.Button1Click(Sender: TObject);
var b:TBitmap;
begin
b:= TBitmap.Create;
b.Assign(Image1.Picture.Bitmap);
PluginExec(B.canvas);
Image1.Picture.Assign(b);
end;


В библиотеке

function PluginExec(canvas:TCanvas):Boolean; stdcall;

Сильно не тестил но вроде работает
Желаю успехов


Kinder   (2002-10-18 22:59:00) [27]

**********ФУНКЦИЯ В ДЛЛ
function PluginExec(canvas:TCanvas):Boolean;
var R,G,B,X,Y:Integer;
const Ten:Real=0.9;
begin
for X:=10 to 300 do
begin
for Y:=10 to 300 do
begin
R:=Round(GetRValue(Canvas.Pixels[x,y]) * Ten);
G:=Round(GetGValue(Canvas.Pixels[x,y]) * Ten);
B:=Round(GetBValue(Canvas.Pixels[x,y]) * Ten);
Canvas.Pixels[x,y]:=RGB(R,G,B);
end;
end;

Canvas.Font.Name:="Tahoma";
Canvas.Brush.Style:=bsClear;
Canvas.Font.Size:=16;
Canvas.Font.Style:=[fsBold, fsItalic];

Canvas.Font.Color:=clRed;
Canvas.TextOut(150,150,"Октябрь");
PluginExec:=True;
end;

**********ВЫЗЫВАЮ ИЗ ПРОГРАММЫ
PluginExec(Image1.Canvas);



Rouse_   (2002-10-18 22:53:00) [28]

Хех, покажи как сделал, код примема и передачи

Желаю успехов


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо