
Зы
Кстати, как загрузить свой курсор ? "Толстый крестик" в место нормального "прицела" уже давно напрягает мои нервы.... (Где-то со времен забытого Дельфи 5 валяется отличная коллекция курсорв, но как их грузить в LCL увы пока не нашел ...

Модератор: Модераторы
zub писал(а):>>Кстати, как загрузить свой курсор ?
Зачем? У тебя всё достаточно безвкусно смотрится))
procedure TFMain.MenuItemCursorClick(Sender: TObject);
Var
Cur: TCursorImage;
begin
if OpenDialogCursor.Execute then
begin
Cur := TCursorImage.Create;
try
Cur.LoadFromFile(OpenDialogCursor.FileName);
Screen.Cursors[1] := Cur.ReleaseHandle;
finally
Cur.Free;
end;
FMain.Editors.Cursor:=1; //тут курсор меняется
FMain.Repaint;
end else begin end;
end;
end else begin end;
Лекс Айрин писал(а):у меня в проге вот такменяется. К сожалению, не понимает анимационные курсору.
- Код: Выделить всё
procedure TFMain.MenuItemCursorClick(Sender: TObject);
Var
Cur: TCursorImage;
begin
if OpenDialogCursor.Execute then
begin
Cur := TCursorImage.Create;
try
Cur.LoadFromFile(OpenDialogCursor.FileName);
Screen.Cursors[1] := Cur.ReleaseHandle;
finally
Cur.Free;
end;
FMain.Editors.Cursor:=1; //тут курсор меняется
FMain.Repaint;
end else begin end;
end;
но я тоже думаю, что это все фигня -- проще такой курсор сделать средствами системы и не изображать Каренину.
Alex2013 писал(а):(на счет самодельного курсора тоже думал ... но там слишком много чего отслеживать нужно (и так даже с сеткой грида намучился изрядно ) )
Alex2013 писал(а):Анимированными курсорами не занимался но выяснил то это переименованные в CUR файлы типа ANI ...
Function SP2( SS:String;R:Real;Mi:Longint):String;
var i:Longint;
begin
I:= trunc ((StrToInt (ss)-mi)*R)+Mi ;
FZ:=FZ or (I <0 );
SP2:=IntTostr(I);
end;
//Считаю коэффициент масштабирования
DXX :=MaxX-MinX;
DYY :=MaxY-MinY;
if dxx=0 then rx:=1 else RX:=(DXX+DX)/DXX;
if dyy=0 then ry:=1 else RY:=(DYY+DY)/DYY;
repeat
CX:=Next1(s,' '); CY:=Next1(s,' ');// Получаю точку из строки команды
SX:=SP2(CX,RX,MinX); SY:=SP2(CY,RY,MinY);// Пересчитываю масштаб
SS:=SS+SX+' '+SY+' '; // собираю результат в новую команду
until S='END';
SS:=SS+'END';
if ssAlt in Shift then
begin
if CurOP =-1 then CurOP := drawlist.count-1;
case key of
vk_Up : StretchXY(CurOP,0,-1 );
vk_Down : StretchXY(CurOP,0,1 );
vk_Left : StretchXY(CurOP,-1,0 );
vk_Right : StretchXY(CurOP,1,0)
else exit;
end;
key:=0;
Goto END1;
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1