Вниз
Скачать: CL | DM;

Не могу работать с Canvas.Какая-то ошибка не пойму в чем дело   Найти похожие ветки 

← →
Женя   (2004-04-18 22:03) [0]

Пишу команду: Form1.Canvas.Rectangle(10,10,10,10);

Получаю:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message "Access violation at address 0044546C in module "Project1.exe". Read of address 00000238". Process stopped. Use Step or Run to continue.
---------------------------
OK   Help  
---------------------------

Смотрю ЦПУ и вижу:
TcustomForm.GetCanvas
044546c 8B8038020000 mov eax, [eax + $00000238]

Помогите пожалуйста. Может кто знает отчего это и как исправить.


← →
Mihey ©   (2004-04-18 22:08) [1]

Пишу то же, не получаю ошибки. Какая Delphi???


← →
Женя   (2004-04-18 22:48) [2]

Делфи 7й.


← →
Anatoly Podgoretsky ©   (2004-04-18 23:09) [3]

eax = 0
Наверно не создан TcustomForm


← →
clover ©   (2004-04-19 10:33) [4]

Могу только посоветовать
Form1.Brush.Bitmap:=TBitmap.Create;
и рисовать на Form1.Brush.Bitmap

Вообще похоже что у вас Canvas не создан??? правдо очень странно ;)


← →
Плохиш   (2004-04-19 10:39) [5]

Форм1 не создана


← →
Женя   (2004-04-20 15:55) [6]

Пробую так:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
begin
Form1.Brush.Bitmap:=TBitmap.Create;
Form1.Brush.Bitmap.Canvas.Rectangle(10,100,10,100);
end.

Получил вот такое сообщение.
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message "Access violation at address 0044C8FC in module "Project1.exe". Read of address 00000170". Process stopped. Use Step or Run to continue.
---------------------------
OK   Help  
---------------------------

Вчера даже Виндовс переставил. Сейчас стоит ХР и Д7
А вообще я делал все по книжке и там ничего не сказано о том, что надо создавать Canvas (Н.Б.Культин,Делфи 6 и программирование на ObjectPascal. Поэтому я и не создал его. Подскажите как его создавать?
я пробовал
Form1.Canvas.Create;
и в конце Form1.Canvas.Destroy; но результат тот же

У меня задача по ООП я рисую рыбок в аквариуме, использую графические примитивы. Рыбки рисуются треугольниками, квадратиками и проч. Но пока вообще ничего не Рисуется))
Если можно набросьте мне код как создать Canvas и нарисовать на нем линию или что-то другое. Спасибо


← →
panov ©   (2004-04-20 17:50) [7]

Создай новый проект, положи на форму кнопку, кликни на нее и посмотри текст программы, сравни со своей.

код

Form1.Brush.Bitmap:=TBitmap.Create;
Form1.Brush.Bitmap.Canvas.Rectangle(10,100,10,100);

добавь в

procedure TForm1.Button1Click(Sender: TObject);
begin
 Form1.Brush.Bitmap:=TBitmap.Create;
 Form1.Brush.Bitmap.Canvas.Rectangle(10,100,10,100);
end;

Лучше всего купить книжку и почитать.


← →
тихий вовочка ©   (2004-04-20 23:28) [8]

Я может быть ошибаюсь, но ты рисуешь еще до FormCreate, соответственно у тебя ни формы, ни канвы еще нет.


← →
panov ©   (2004-04-21 10:25) [9]

>тихий вовочка ©   (20.04.04 23:28) [8]
Occurs when the form is created.


← →
Плохиш   (2004-04-21 10:34) [10]

>panov ©   (20.04.04 17:50) [7]

Только без этого Form1.

Про книжку полностью и безоговорочно поддерживаю :-)


← →
Женя   (2004-04-21 11:26) [11]

Спасибо большое всем участвующим. У меня получилось теперь всю форму размалюю! ))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
10-1017300695
AnatolyG
2002-03-28 10:31
2004.07.04
Вопрос по поводу использования персистентных CORBA и EJB объектов


14-1086979817
X9
2004-06-11 22:50
2004.07.04
Дрова на Lucent под Linux


14-1087112602
Kolyan
2004-06-13 11:43
2004.07.04
Linux Mandrake 10


14-1087110425
Думкин
2004-06-13 11:07
2004.07.04
С днем рождения! 13 июня


14-1087114587
GanibalLector
2004-06-13 12:16
2004.07.04
Репликации в БД ...




   Наверх