Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> курсор большого размера, как сделать курсор большим 
:(
    Опции темы
simsmann
Дата 27.3.2013, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



Как сделать курсор большого размера. Слинковал файл ресурсов. (использовал Restorator им быстрей) Вводил курсоры разного размера 64х64 128х128 отображаются маленькими.
PM MAIL   Вверх
simsmann
Дата 28.3.2013, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



Не предлагайте установить Image  и отслеживать курсор, такой вариант не устраивает. Все должно быть в одном файле. Поэтому загрузка из файла курсоров не устраивает.
PM MAIL   Вверх
Poseidon
Дата 28.3.2013, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Для начала хотелось бы уточнить зачем?


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
simsmann
Дата 28.3.2013, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



Необходимо в программе использовать курсор большого размера.
PM MAIL   Вверх
Akella
Дата 28.3.2013, 16:27 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Да просто в настройках ОС выберите другой курсор.
PM MAIL   Вверх
simsmann
Дата 28.3.2013, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



курсор для программы
PM MAIL   Вверх
Akella
Дата 28.3.2013, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Т.е. внутри окон программы курсор должен быть большим, а как только курсор выходит за рамки какого-либо окна программы, то он должен принимать прежние (системные) параметры (размеры)?
PM MAIL   Вверх
Poseidon
Дата 29.3.2013, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(simsmann @  28.3.2013,  15:02 Найти цитируемый пост)
Необходимо в программе использовать курсор большого размера.
Вопрос был не "Что надо сделать?", а "Зачем?"



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
simsmann
Дата 29.3.2013, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



Такая программа типа игры где курсор принимант значение различных графических объектов

Добавлено через 5 минут и 37 секунд
function CreateCursor(Instance: THandle; Xhotspot, Yhotspot, Width, Height: Integer; ANDBitPlane, XORBitPlane: Pointer): HCursor

больно муторно и трудоемко для большого размера задавать ANDBitPlane и XORBitPlane

к примеру

const ANDBitPlane : array [1..32, 1..4] of byte =
           ( ($00,$00,$00,$00),
             ($7F,$FF,$FF,$FE),
             .............................

Курсоров много и все большие

Есть какой вариант?
PM MAIL   Вверх
Чучмек
Дата 29.3.2013, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 14
Всего: 41



А почему бы и нет?
Вот. Выводим вручную созданный курсор.
Код

const
 W=256;   //кратно 16
type
 TBitMask=array[0..w-1,0..(W div 8) - 1]of byte;

procedure TForm1.FormCreate(Sender: TObject);
var
 i,j:integer;
 mAND,mXOR:TBitMask;
begin
  for i:=0 to High(mAND) do
  for j:=0 to High(mAND[i]) do
   begin
   if i>High(mAND)   div 2 then mAND[i,j]:=255 else mAND[i,j]:=0;
   if j>High(mAND[i])div 2 then mXOR[i,j]:=255 else mXOR[i,j]:=0;
   end;
Screen.Cursors[100]:=CreateCursor(HInstance,W div 2,W div 2,W,W,@mAND,@mXOR);
Form1.Cursor:=100;
end;


Добавлено через 59 секунд
Цитата(simsmann @  29.3.2013,  20:49 Найти цитируемый пост)
Добавлено через 5 минут и 37 секунд
function CreateCursor(Instance: THandle; Xhotspot, Yhotspot, Width, Height: Integer; ANDBitPlane, XORBitPlane: Pointer): HCursor

больно муторно и трудоемко для большого размера задавать ANDBitPlane и XORBitPlane

к примеру

Блин. Не дочитал.


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
bems
Дата 29.3.2013, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(simsmann @  29.3.2013,  20:49 Найти цитируемый пост)
больно муторно и трудоемко для большого размера задавать ANDBitPlane и XORBitPlane
Курсоров много и все большие
Есть какой вариант? 

ну есть вариант генерить маски перед первым использованием курсора. для этого естественно нужна инфа о прозрачности в каком-нить другом формате. например генерить из png-картинки, или битмапа с альфаканалом



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Illusion Dolphin
Дата 30.3.2013, 09:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Вот пример как просто на основании картинок сделать круглый курсор:
Код



procedure TForm45.FormCreate(Sender: TObject);
begin
  NewCursor;
end;

procedure TForm45.NewCursor;
var
  Rad, CurSize: Integer;
  AndMask: TBitmap;
  IconInfo: TIconInfo;
  Bit: TBitmap;
  Cur: HDC;
begin
  CurSize := 100;

  Bit := TBitmap.Create;
  try
    Bit.PixelFormat := pf1bit;
    Bit.SetSize(CurSize, CurSize);
    Bit.PixelFormat := pf4bit;
    AndMask := TBitmap.Create;
    try
      AndMask.Monochrome := True;
      AndMask.Width := CurSize;
      AndMask.Height := CurSize;
      AndMask.Canvas.Brush.Color := $FFFFFF;
      AndMask.Canvas.Pen.Color := $FFFFFF;
      AndMask.Canvas.FillRect(Rect(0, 0, Bit.Width, Bit.Height));
      Bit.Canvas.Pen.Color := $0;
      Bit.Canvas.Brush.Color := $0;
      Bit.Canvas.FillRect(Rect(0, 0, Bit.Width, Bit.Height));
      Bit.Canvas.Pen.Color := $FFFFFF;
      Bit.Canvas.Ellipse(Rect(0, 0, Bit.Width, Bit.Height));
      IconInfo.FIcon := True;
      IconInfo.XHotspot := 1;
      IconInfo.YHotspot := 1;
      IconInfo.HbmMask := AndMask.Handle;
      IconInfo.HbmColor := Bit.Handle;

      Cur := CreateIconIndirect(IconInfo);
    finally
      AndMask.Free;
    end;
  finally
    Bit.Free;
  end;
  Screen.Cursors[67] := Cur;

  Cursor := 67;
end;



--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Чучмек
Дата 30.3.2013, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 14
Всего: 41



LoadImage
Код

h:=LoadImage(0,FileName,IMAGE_CURSOR,0,0,LR_LOADFROMFILE);

Код

h:=LoadImage(HInstance,ResourceName,IMAGE_CURSOR,0,0,0);


Это сообщение отредактировал(а) Чучмек - 30.3.2013, 22:32

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  cursor.7z 152,15 Kb


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0799 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.