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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 221
от 28.08.2005, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 228, Экспертов: 39
В номере:Вопросов: 2, Ответов: 10


Вопрос № 25202: Здраствуйте уважаемые эксперты! Вопрос такой. Как можно в ходе в ходе выполнения пргограммы менять курсор, а именно создавать свой курсор (к примеру в виде прямоугольника) в памяти, с нужными параметрами (высота, ширина) а потом подставлять его в...
Вопрос № 25208: Здравствуйте, уважаемые эксперты! Как в Дельфи сделать анимацию наподобие TAnimate но не использовать видео-файлы (т. е. типа GIF)....

Вопрос № 25.202
Здраствуйте уважаемые эксперты!
Вопрос такой. Как можно в ходе в ходе выполнения пргограммы менять курсор, а именно создавать свой курсор (к примеру в виде прямоугольника) в памяти, с нужными параметрами (высота, ширина) а потом подставлять его вместо текущего на оъекте
Отправлен: 23.08.2005, 10:35
Вопрос задал: Danik (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Delphin
Здравствуйте, Danik!
Рисовать его на канве а потом подставить в Screen.Cursor.
примерно так
//...........
var
C: TCursor;
begin
c:= TCursor.Create;
c.Canvas. // Твои действия по рисованию.
c.Free;
// Прости если что-то не так. Под рукой небыло дельфи.

---------
Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: 8-ой класс)
Отправлен: 23.08.2005, 11:20

Отвечает: sir henry
Здравствуйте, Danik!
Будет куда лучше, если Вы загрузите саои курсоры в RES файл. Потом просто прилинкуете его к программе и будете загружать свои курсоры не отходя от кассы:
LoadCursor(Instance: THandle; CursorName: PChar): HCursor;
где Handle - это хэндл Вашей программы, CursorName - имя курсора.
Дельфийский редактор изображений позволяет создавать курсоры.
К сожалению, напрямую присвоить курсор не получится, поэтому нужно написать пару лишних строк кода. :)
У объекта screen есть свойство Cursors - массив курсоров. Предопределенные курсоры хранятся в массиве с индексом от -1 и ниже, значит Вы можете загнать свои курсоры в элементы с индексом от 1 и выше:
screen.Cursors[1]:=LoadCursor(Handle, 'MY_CURSOR_PTICHKA');
screen.Cursors[1]:=LoadCursor(Handle, 'MY_CURSOR_LAYGUSHKA');
screen.Cursors[1]:=LoadCursor(Handle, 'MY_CURSOR_KVADRAT');
Далее индекс элемента массива присваивается курсору формы:
Form1.Cursor:=1;
Точно так-же можно присвоить курсор любому объекту:
Edit1.Cursor:=3;

Ответ отправил: sir henry (статус: Профессор)
Отправлен: 23.08.2005, 12:08

Отвечает: Ерёмин Андрей
Здравствуйте, Danik!
Воспользуйтесь API-функцией CreateCursor(). После этого вы получите идентификатор этого курсора, по которому и следует изменять курсор для объекта. Однако этот способ - трудный. Гораздо проще заранее нарисовать курсоры и затем зарегистрировать их в системе, а после - использовать:

var h: THandle;
begin
h := LoadImage(0, 'c:Cursor.cur', IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE or LR_LOADFROMFILE);
if h = 0 then
ShowMessage('Ошибка при загрузке курсора.')
else
begin
Screen.Cursors[1] := h;
Button1.Cursor := 1;
end;
end;


Этот простой пример загружает курсор из файла C:Cursor.cur и устанавливает его для Button1.
Рисовать курсоры можно во многих редакторах. Лично я предпочитаю AWIcons Pro. Но можно использовать и Resource Workshop, идущий в комплекте Delphi. Удачи!
---------
Мышка побежала, xвостиком махнула - cервер упал...
Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 23.08.2005, 13:17

Отвечает: John Freeman
Здравствуйте, Danik!
Курсор в памяти - это к описанию формата .cur - в интернет, удобнее брать готовый из ресурсов, что и делает большинство программ.
Как сделать чтобы был он - setcursor (смотри WINAPI SDK Refence из комплекта Delphi для полного описания)
Но проще как обычно : LoadCursor->SetCursor
P.S.
Не забывай возвращать курсор обратно, иначе это будет дурной тон.
---------
Ik bin ulien spiegel!
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 23.08.2005, 14:15


Вопрос № 25.208
Здравствуйте, уважаемые эксперты!
Как в Дельфи сделать анимацию наподобие TAnimate но не использовать видео-файлы (т. е. типа GIF).
Отправлен: 23.08.2005, 14:22
Вопрос задал: Karusell (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ramon105
Здравствуйте, Karusell!
Не совсем понял сути вопроса (можем обсудить в аське).
Но могу предложить следующие варианты:
1. Использовать flash анимацию (реализуется через activex, подробности в лички или в аське)
2. по timer перемещение объектов (в т.ч. картинок) (самое простое решение)

---------
иЗвиНиТЕ зА НеРоВНый ПочЕРк! (c) Boxa
Ответ отправил: Ramon105 (статус: 5-ый класс)
Отправлен: 23.08.2005, 14:32

Отвечает: Ерёмин Андрей
Здравствуйте, Karusell!
Нужно использовать специальные компоненты, которые выводят анимированные GIF-изображения. Лично я предпочитаю JvGIFAnimator из пакета JediVCL (http://sourceforge.net/jvcl/; http://www.jedivcl.org). Удачи!
---------
Мышка побежала, xвостиком махнула - cервер упал...
Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 23.08.2005, 15:01
Оценка за ответ: 3
Комментарий оценки:
На sourceforge уже нет такой директории, а jedivcl.org тоже не нашел.

Отвечает: John Freeman
Здравствуйте, Karusell!
Скачать на torry.net компонент Animated GIF и всё, а стандaртные не поддерживают анимированный GIF просто.
---------
Ik bin ulien spiegel!
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 23.08.2005, 15:32
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое проблема разрешена

Отвечает: Силантьев Евгений Александрович
Здравствуйте, Karusell!
Зайди на torry.net там наверняка есть нужный тебе компонент. Второй вариант бросить на форму таймер и имэйдж и в обработке сообщения таймера меняй изображение.
Успехов! Надеюсь помог!
---------
The world is mine! :)
Ответ отправил: Силантьев Евгений Александрович (статус: 3-ий класс)
Отправлен: 23.08.2005, 21:22

Отвечает: Delphin
Здравствуйте, Karusell!
1. Покадрово рисовать фреймы из Gif'a.
2. Использовать компоненты типа RxGifAnimate. ( Воде так он называется. Забыл. Но там точно есть слова Rx и Gif. )
3. Чем вас не устраивает Avi? Они не так много занимают.
4. Если это стандартные анимации то извлекать их из библиотек где они хранятся и прогирывать.
---------
Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: 8-ой класс)
Отправлен: 24.08.2005, 10:01

Отвечает: Ballon
Здравствуйте, Karusell!

Я на как то torry.net видел компонент который проигрывает gifы
Ответ отправил: Ballon (статус: 4-ый класс)
Отправлен: 26.08.2005, 07:36


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться
Вспомнить пароль

В избранное