Модератор: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

-
- Сообщения: 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