![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Че за фигня-я-я-я ??? [D6, WinXP]
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]Хех, покажи как сделал, код примема и передачи
Желаю успехов