Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 227
от 08.10.2003, 20:30

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1005
Отправлено ответов: 1984
Активность: 197.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Cybernetic Creature
Статус: Профессиональный
Общий рейтинг: 125.63
URL: В разработке
[Подробней >>]
Boriss
Статус: Доверительный
Общий рейтинг: 142.5
[Подробней >>]
THE_PRO
Статус: Доверительный
Общий рейтинг: 139.53
[Подробней >>]
 
Marouder
Статус: Профессиональный
Общий рейтинг: 123.02
URL: Первый Хабаровский Форум
Телефон: (4212) 21-93-65
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 121.92
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 151.21
URL: Программирование
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 993. Здравствуйте, уважаемые эксперты! Хотел создать форму проекта (ВСВ) по картинке, загружаемой в компо... (ответов: 1)
Вопрос № 994. Всем привет. Вот такая штука: у меня 2 процедуры(pr), обе полностью assembler, в обе приходят по 2 ... (ответов: 5)

Вопросов: 2, ответов: 6


 Вопрос № 993

Здравствуйте, уважаемые эксперты!
Хотел создать форму проекта (ВСВ) по картинке, загружаемой в компонент Image. Но не получилось. Выводится только прямоугольная форма без картинки. Как сделать, чтобы форма выводилась по картинке? Найдите, пожалуйста, ошибку. В приложении приведен код.


Приложение:


Вопрос отправлен: 05.10.2003, 15:22
Отправитель: Эдуард

[Следующий вопрос >>] [Список вопросов]

Отвечает Cybernetic Creature

Здравствуйте, Эдуард!
Ваш код правильный. Я с копировал точ в точ ваш код в свою форму и он нарисовал мне этот битмап. может проблема версий или вииндусса не знаю. у меня 6 версия билдера. а виндусс 2к с СП2

Ответ отправлен: 07.10.2003, 09:35
Отправитель: Cybernetic Creature


 Вопрос № 994

Всем привет.
Вот такая штука:
у меня 2 процедуры(pr), обе полностью assembler, в обе приходят по 2 значения(x,y), но в первую(pr1) VARом, чтобы измениться и вернуться, а во вторую(pr2) простыми значениями. Т.к. я вызываю первую из второй при помощи CALL, надо в стек загонять поинтеры, а у меня чего то мозг сломался - не знаю как добыть в АСМ-вставке поитер от значения.
См. Приложение.


Приложение:


Вопрос отправлен: 05.10.2003, 20:20
Отправитель: KODer (koder@hotmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Здравствуйте, KODer!
ВОТ как нужнол делать, с учетом содержимого стека. Ессно, здесь учтено, что вызов NEAR
Убедись, что к x1 прибавлется содержимое y1.
Смотри приложение:


Приложение:

Ответ отправлен: 08.10.2003, 12:50
Отправитель: Boriss


Отвечает THE_PRO

Добрый день, KODer!
PISHI NA PASCALE!!!

Ответ отправлен: 06.10.2003, 10:52
Отправитель: THE_PRO


Отвечает Marouder

Добрый день, KODer!
Привет.
Просто надо изучать асм хоть немножко.
В процедуру pr2 у тебя параметры через регистры передаются. Так что никаких поинтеров на них не получишь. Надо stdcall использовать, тогда уж можно:
lea edi, [x2]
lea esi, [y2]
или
mov edi,esp+offset x2
mov esi,esp+offset y2
И еще - адресация 32-битная, а ты используешь 16-битные регистры.
Когда адреса передаются в функцию с помощью того же "var",
передается только смещение относительно начала сегмента.
Так что весь код - один большой глюк и работать не будет, хотя я его не проверял. Или будет - но с исключениями.


Ответ отправлен: 06.10.2003, 14:01
Отправитель: Marouder


Отвечает _vt

Добрый день, KODer!
mov di, offset x2
mov si, offset y2
А так? Вроде должно работать... Указывать сегментные регистры в данном случае не обязательно... Кстати, причем здесь Delphi? Ты ведь с 16-разрядными регистрами работаешь...

*** E-Man - we are waiting for you ***


Ответ отправлен: 06.10.2003, 00:30
Отправитель: _vt


Отвечает Bob Johnson

Здравствуйте, KODer!
lea ax, [x2]
lea cx, [y2]
push ss
push cx
push ss
push ax
...
Очередность параметров, возможно, иная, т.к. не помню как в паскале они передаются. Но думаю, что в начале следует писать push сегментного регистра (который в данном случае ss, т.к. локальные перменные процедуры и параметры хранятся в стеке), а уже потом push адреса, т.к. в памяти это должно быть смещение:сегмент.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 07.10.2003, 23:16
Отправитель: Bob Johnson



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (29)
C / C++ (27)
Perl (7)
Builder / Delphi (21)
Pascal (25)
Basic / VBA (9)
Java / JavaScript (9)
PHP (12)
Криптография (9)
WinAPI (15)
Пользователю
Windows 95/98/Me (58)
Windows NT/2000/XP (63)
"Железо" (41)
Поиск информации (29)
Администратору
Windows NT/2000/XP (36)
Linux / Unix (15)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (9)
КоАП (8)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное