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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2007, 15:48   #1
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
Восклицание Ошибка

Попробовал программу с прорисовкой на форме(Canvas) изображения:
Код:
var
  Form1: TForm1;
  I:TBitMap;
  W,H,r,t:Integer;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
 I.LoadFromFile('C:\img.bmp');//здесь возникает ошибка
 w:=I.Width;
 H:=I.Height;
 For r:=0 to W do
  For t:=0 to H do
   Begin
    Form1.Canvas.Pixels[r,t]:=I.Canvas.Pixels[r,t];
    Form1.Repaint;
   End;
end;
Вот ScreenShot ошибки
Изображения
Тип файла: jpg Error_1.jpg (19.7 Кб, 163 просмотров)
Тип файла: jpg Error_2.jpg (11.3 Кб, 146 просмотров)
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 24.10.2007, 15:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Хых, чуть было по привычке не нажал на ОК в скриншоте...

Скажи а почему ты это попиксельно делаешь, когда есть другой способ быстрее и надежнее?

По поводу ошибки : Ты Битмап не создал. Ему Create нуна перед загрузкой из файла
I'm learning to live...

Последний раз редактировалось Stilet; 24.10.2007 в 15:56.
Stilet вне форума Ответить с цитированием
Старый 24.10.2007, 15:56   #3
Aslan
Пользователь
 
Регистрация: 05.07.2007
Сообщений: 29
По умолчанию

Добавь до загрузки картинки:

I := TBitMap.Create;

а перед последним end

I.Free;
Если бы строители строили дома так, как программисты пишут программы, тогда первая залётная птичка разрушела весь город

Последний раз редактировалось Aslan; 25.10.2007 в 10:40.
Aslan вне форума Ответить с цитированием
Старый 28.10.2007, 17:16   #4
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

Исправил.Прога запустилась но ничего я на ней не увидел полный ноль.
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 28.10.2007, 17:23   #5
Slovinsky
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 79
По умолчанию

Потому что система нигде не сохраняет то, что вы нарисовали. Окно должно само себя уметь нарисовать, система лишь сообщает ему когда это нужно сделать. Читать, вникать, разбираться:
http://www.delphikingdom.com/asp/vie...p?catalogid=93

Если в кратце, то рисовать вам нужно в обработчике OnPaint формы. Иначе все ваше художество будет затерто при первой же перерисовке. Только в вашем случае считаю разумным Bitmap создать и загрузить из файла лишь однажды (в том же OnCreate), а не при каждом OnPaint. В обработчике OnPaint просто на него ссылаться.
Slovinsky вне форума Ответить с цитированием
Старый 12.11.2007, 14:23   #6
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

Ещё одна ошибка:
Project Kirhgof.exe raised exception class EInvalidOp with messege 'Invalid floating point operation'. Process stopped. Use step or Run to continue.
Выдает в этой строке:
I[0]:=floor(E[0]*(R[3]+R[5])-E[2]*R[4])/(R[0]*R[2]+R[2]*R[4]+R[4]*R[0]);
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 12.11.2007, 14:32   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от LeoN Посмотреть сообщение
Ещё одна ошибка:
Project Kirhgof.exe raised exception class EInvalidOp with messege 'Invalid floating point operation'. Process stopped. Use step or Run to continue.
Выдает в этой строке:
I[0]:=floor(E[0]*(R[3]+R[5])-E[2]*R[4])/(R[0]*R[2]+R[2]*R[4]+R[4]*R[0]);
А как нам отгадать, какие типы у ваших переменных?
mihali4 вне форума Ответить с цитированием
Старый 12.11.2007, 14:35   #8
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

переменные типа real в прошлой версии проги когда работал с StringGrid все работало сейчас с обычным Едитом не работает.
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 12.11.2007, 15:14   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну тут криминала нет, посему нуна код весь смотреть, или тот обработчик хотябы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2007, 15:21   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от LeoN Посмотреть сообщение
переменные типа real в прошлой версии проги когда работал с StringGrid все работало сейчас с обычным Едитом не работает.
Очередная загадка - где Edit -то участвует в вычислениях?
mihali4 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка с mod Kn793 Помощь студентам 2 16.07.2008 13:28
В чем ошибка!!! juden Общие вопросы Delphi 12 10.03.2008 08:53
в чем ошибка? Lonix Общие вопросы Delphi 2 24.03.2007 09:41