Меню

Loadpicture pascal abc ошибка

Модератор:Naeel Maqsudov

Islan

Сообщения:3
Зарегистрирован:20 мар 2018, 09:54

Пожалуйста, помогите разобраться.
В программе на VBA ACCESS в следующем коде:

Dim ImLst As ImageList
ImLst.ListImages.Add 1, 1, StdFunctions.LoadPicture(«D:ГРАНУЛяторFlagRed.bmp»)

выдается ошибка Object variable or With block variable not set.

(Та же ошибка выдается и при опускании StdFunctions). Файл рисунка D:ГРАНУЛяторFlagRed.bmp присутствует и другими программами открывается.

pashulka

Сообщения:831
Зарегистрирован:24 ноя 2004, 03:46
Контактная информация:

20 мар 2018, 20:58

Напишите так и протестируйте эту функцию отдельно, т.е.

Код: Выделить всё

Set p = LoadPicture("D:ГРАНУЛяторFlagRed.bmp")

Если прокатит, значит проблема не в ней.

Islan

Сообщения:3
Зарегистрирован:20 мар 2018, 09:54

21 мар 2018, 07:45

pashulka писал(а):Напишите так и протестируйте эту функцию отдельно, т.е.

Код: Выделить всё

Set p = LoadPicture("D:ГРАНУЛяторFlagRed.bmp")

Если прокатит, значит проблема не в ней.

Да, так сработало. Но тогда не понимаю, что вызывает ошибку.

pashulka

Сообщения:831
Зарегистрирован:24 ноя 2004, 03:46
Контактная информация:

21 мар 2018, 07:58

Вольный перевод ошибки гласит, что Вы обращаетесь к несуществующему об’екту. И это правда :)

Код: Выделить всё

Dim ImLst As ImageList
Set ImLst = ИмяФормы.ИмяОбъекта

ImLst.ListImages.Add 1, "key1", StdFunctions.LoadPicture("D:ГРАНУЛятор FlagRed.bmp")

Вторая строка — есть псевдокод, просто не помню :( как в Access идёт обращение к элементам управления.

Islan

Сообщения:3
Зарегистрирован:20 мар 2018, 09:54

21 мар 2018, 09:31

pashulka писал(а):Вольный перевод ошибки гласит, что Вы обращаетесь к несуществующему об’екту. И это правда :)

Код: Выделить всё

Dim ImLst As ImageList
Set ImLst = ИмяФормы.ИмяОбъекта

ImLst.ListImages.Add 1, "key1", StdFunctions.LoadPicture("D:ГРАНУЛятор FlagRed.bmp")

Вторая строка — есть псевдокод, просто не помню :( как в Access идёт обращение к элементам управления.

Болльшое спасибо, разобрался.


1


Тема урока Анимация в Pascal ABC


2


n:= LoadPicture (name) – загружает рисунок из файла с именем name в оперативную память и возвращает описатель рисунка в целую переменную n. Если файл не найден, то возникает ошибка времени выполнения. Загружать можно рисунки в формате.bmp,.jpg или.gif. DrawPicture (n, x, y) — выводит рисунок с описателем n в позицию (x,y) графического окна. DrawPicture (n, x, y, w, h) – устанавливает ширину (w) и высоту (h) рисунка SetPictureTransparent(n, true) — устанавливает (b = True) или отключает (b = False) режим прозрачности при рисовании рисунка с описателем n. Если b = True, то при его рисовании фон не отображается. Фоновым считается цвет левого нижнего пиксела рисунка. Sleep(ms) — осуществляет паузу в выполнении программы на ms миллисекунд Использование процедуры перерисовки Redraw позволяет избежать моргания экрана. Действия с рисунком


3


Практическая работа Пусть автомобиль перемещается на фоне здания и деревьев слева направо на расстояние 400 пикселей. Загрузим изображения фона и автомобиля из файлов gorod.gif и avto.jpg, поместив их описатели в переменные fon и avto. Установим прозрачность фона для изображения автомобиля SetPictureTransparent(avto,true). Зададим начальные координаты (х, у), ширину w и высоту h изображения автомобиля. Все переменные имеют тип integer. Процедуры рисования и стирания будем повторять в цикле с предусловием While до тех пор, пока автомобиль не переместится на 400 пикселей. На каждом шаге цикла координату х левого верхнего угла изображения увеличиваем на 10. Ширину уменьшаем на 2, а высоту на 1 пиксель для уменьшения изображения при удалении.


4


program Avto1; uses GraphABC; var fon, avto, x,y, w,h: integer; begin SetWindowSize (600, 300); fon:= LoadPicture (‘город.gif’); avto:= LoadPicture (‘автомобиль.jpg’); SetPictureTransparent (avto, true); x:= 10; y:= 170; w:= 240; h:= 100; while x < 400 do begin ClearWindow; DrawPicture (fon, 0, 0); DrawPicture (avto, x, y, w,h); x:= x + 10; w:= w — 2; h:= h — 1; sleep (20); Redraw; end; end.


5


Практическая работа program babochka; uses Graphabc; var f, b, x, y : integer; begin setwindowsize (450, 550); b:= LoadPicture (‘цветы.jpg’); f:= LoadPicture (‘бабочка.gif’); x:= 10; y:= 350; while x


6


Практическая работа Загрузим изображение циферблата из файла таймер.jpg, поместив описатель в переменную fori. Зададим координаты центра вращения стрелок (хО.уО) и начальные значения секунд sec:=0 и минут min:=0. На каждом шаге цикла с постусловием repeat…until будем увеличивать значение секунд на 1 до тех пор. пока время не превысит 60 мин. или не нажата любая клавиша (keyPressed). Значения минут вычислим целочисленным делением секунд на 60: min:= secdiv60. Секундную стрелку будем рисовать линией длиной 120 и толщиной 3 пикселя, а минутную и 7 пикселей. Радианная мера угла поворота секундной стрелки равна Pi*sec/30. а минутной Pi»min/30. Координаты концов стрелок (х,у) вычисляем по формулам тригонометрии и округляем до целых Например, для секундной стрелки x:=x0+Round


7


Практическая работа Program Timer; uses crt, GraphABC; var fon, x0, y0, x, y, R, min, sec: integer; begin SetWindowSize (360, 480); HideCursor; x0 := 173; y0 := 300; min : =0; sec := 0; fon := LoadPicture (‘таймер.jpg’); repeat DrawPicture (fon, 0, 0); sec := sec + 1; min := sec div 60; x := x0 + Round (120 * sin (Pi * sec / 30)); y := y0 – Round (120 * cos (Pi * sec / 30)); SetPenWidth (3); Line (x0, y0, x, y); x := x0 + Round (100 * sin (Pi * min / 30)); y := y0 – Round (100 * cos (Pi * min / 30)); SetPenWidth (7); Line (x0, y0, x, y); sleep (1000); until (min >= 60) or keyPressed; end.

Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.

Dinni
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 25.04.2003 (Пт) 15:05

Problema s LoadPicture

Pitayus’ zagruzit’ kartinki v VB

image.Picture=LoadPicture(address)

Kartinka *.gif , size2-3 KB zagruzhaetsya normal’no.

A pri zagruzke *.bmp 19KB poluchayu Run-time Error ’75’

Posovetuyte, please, chto mozhno sdelat’!


alibek
Большой Человек
Большой Человек
 
Сообщения: 14204
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.04.2003 (Пт) 15:37

Вообще-то правильно делать

Код: Выделить всё
Set image.Picture = LoadPicture(address)

Кроме того, указываешь ли ты расширение файла? (.bmp) И есть ли этот файл на диске?

Ошибка 75 это «Path/File access error». Либо ты указываешь неправильное имя файла, либо у тебя нет доступа к этому файлу.

Lasciate ogni speranza, voi ch’entrate.


Cyrax
Cyberninja
Cyberninja
Аватара пользователя

 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia
  • Сайт
  • ICQ

Re: Problema s LoadPicture

Сообщение Cyrax » 25.04.2003 (Пт) 15:43

Dinni писал(а):Pitayus’ zagruzit’ kartinki v VB
image.Picture=LoadPicture(address)
Kartinka *.gif , size2-3 KB zagruzhaetsya normal’no.
A pri zagruzke *.bmp 19KB poluchayu Run-time Error ’75’
Posovetuyte, please, chto mozhno sdelat’!

ну уж не знаю. только что проверил 3Mb BMP грузит за милую душу. и никаких ошибок. код свой покажи, мож в нем че не так…

Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно… (озадаченно) А это в какую сторону тянуть? Ну-ка… Ага, этот был лишний, этот вообще не отсюда, и этот… Точно, два болта.

Welcome to IRC


Dinni
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 25.04.2003 (Пт) 15:05

Сообщение Dinni » 25.04.2003 (Пт) 16:14

Poprobovala s Set, tozhe samoe. Imya faila ya ukazivayu pravil’no.

Pri sohranenii kartinok i *.exe na zhestkom diske vse rabotaet normal’no.

Mne nuzhno sdelat’ CD s poiskovoi maskoi i v nei zhe prosmatrivat’ rezultati s Pictures (vse dannie v tekstovom faile). Poprobovala vse zapisat’ na disketu. Imya faila peredaetsya pravil’no, a kartinka otkrivaetsya cherez raz. Ne mogu ponyat’ pochemu.

Kstati vopros: s LoadPicture nuzhen absolutniy adress ili mozhno i otnositel’niy. U menya seichas absolutniy.

Da, kod prostoi. Podozrevayu, chto u menya problema s dostupom k diskete. A kak mozhno eshe zagruzhat’ Picture?



Me.Dir1.Path = data(merke(z), 6) ‘Directory of file

Private Sub Dir1_Change()

Me.File1.Path = Me.Dir1.Path

End Sub

Private Sub File1_Click()

Dim komplettpfad As String

komplettpfad = Me.Dir1.Path + «» + Me.File1.FileName

Set Me.imgBild.Picture = LoadPicture(komplettpfad)

End Sub


alibek
Большой Человек
Большой Человек
 
Сообщения: 14204
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.04.2003 (Пт) 17:01

Проверь, что у тебя получается в Me.Dir1.Path + «» + Me.File1.FileName

дело в том, что есть корневой каталог, то результат будет (например) «C:», т.е. в результате получится «C:\file1.bmp»

Лучше сделай так:

Код: Выделить всё
Private Sub File1_Click()
Dim komplettpfad As String
komplettpfad = Me.Dir1.Path
If Right$(komplettpfad,1) <> "" Then komplettpfad = komplettpfad & ""
komplettpfad = komplettpfad + Me.File1.FileName
Set Me.imgBild.Picture = LoadPicture(komplettpfad)
End Sub

И еще. Правильней было бы использовать не Me.Dir1.Path, а Me.File1.Path :)

Lasciate ogni speranza, voi ch’entrate.


Dinni
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 25.04.2003 (Пт) 15:05

Сообщение Dinni » 28.04.2003 (Пн) 16:59

Spasibo!!!

Zarabotalo. Problema byla s diskovodom.

Popravku uchtu.



Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 5

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Loading config file failed как исправить ошибку
  • Load scripts php wordpress ошибки