mouse cursor yapımı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
mouse cursor yapımı
merhaba, yaptığım programda kendi programıma özel bir muose cursor kullanmak istiyorum. cursor yapım programları indirdim. kurdum. yaptım ama benim istediğim ne animated cursor ne de standart cursor, benim istediğim normal dururken standart, tıklandığı zaman şekil değiştiren cursor yapmak. başka bir programda görmüştüm, normal bildiğimiz el şeklindeki cursor, tıklayınca kapanıyordu, yani tıklayınca objeyi tutmuş gibi oluyordu.
bilmem anlatabildim mi?
bu tür cursorları yapabileceğim program var mı?
ve yaparsam bunu delphide kullanabilirmiyim?
bilmem anlatabildim mi?
bu tür cursorları yapabileceğim program var mı?
ve yaparsam bunu delphide kullanabilirmiyim?
-
- Üye
- Mesajlar: 163
- Kayıt: 06 Nis 2006 12:22
Re: mouse cursor yapımı
Sayın Nitrokonat,nitrokonat yazdı:merhaba, yaptığım programda kendi programıma özel bir muose cursor kullanmak istiyorum. cursor yapım programları indirdim. kurdum. yaptım ama benim istediğim ne animated cursor ne de standart cursor, benim istediğim normal dururken standart, tıklandığı zaman şekil değiştiren cursor yapmak. başka bir programda görmüştüm, normal bildiğimiz el şeklindeki cursor, tıklayınca kapanıyordu, yani tıklayınca objeyi tutmuş gibi oluyordu.
bilmem anlatabildim mi?
bu tür cursorları yapabileceğim program var mı?
ve yaparsam bunu delphide kullanabilirmiyim?
Umarım yanlış anlamıyorumdur bunun doğrudan kursor yapım programlarıyla ilgisi yok. Daha çok programlama sorusu. İlgili nesneyi aldıktan sonra cursor:= (Sizin Kursorunuz) yapacaksınız. Nesneyi bıraktıktan sonra da cursor := (Eski kursor) yaparsanız sorununuz çözülür.
Saygılar ve başarılar
s.a.
resource file yaparak gömebilirsin,
delphi ile birlikte gelen imageedit ile cursorları hazırlayıp
res dosyası olarak kaydedersin.
daha sonra
{$R mycursor.res}
satırı ile o dosyanın da derlenmesini sağlarsın.
programdan kullanma kısmını şu an hatırlamıyorum ama onunda bi load komutu vardı.
kolay gelsin.
resource file yaparak gömebilirsin,
delphi ile birlikte gelen imageedit ile cursorları hazırlayıp
res dosyası olarak kaydedersin.
daha sonra
{$R mycursor.res}
satırı ile o dosyanın da derlenmesini sağlarsın.
programdan kullanma kısmını şu an hatırlamıyorum ama onunda bi load komutu vardı.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
rc dosyasını oluşturdum ve forma {$R mycur.res} olarak ekledim.
formun create olayına kodu yazıyorum ama banamısın demiyor.
kodu hiç bir işe yaramıyor.
EDİT: yerine
yazdım hata bile vermedi. oysa res dosyasında mynolcur diye bişey yok.
formun create olayına kodu yazıyorum ama banamısın demiyor.
Kod: Tümünü seç
Form2.Cursor :=LoadCursor(hInstance,'mynormalcur');
EDİT:
Kod: Tümünü seç
Form2.Cursor :=LoadCursor(hInstance,'mynormalcur');
Kod: Tümünü seç
Form2.Cursor :=LoadCursor(hInstance,'mynolcur');
Selam...
- RC dosyan içine animasyonlu olmayanları normal kaydedebilirsin ama animated cursor'leri RT_RCDATA olarak kaydetmen gerekiyor.
- Bir projem için Resource'dan ilgili animated cursoru alması için bir fonksiyon yazmıştım.
- RESOURCE içerisinde ANI_1, ANI_2 ve ANI_3 olmak üzere üç adet animated cursor olsun.
- Kullanılışı da...
gibi bir kullanım.
- RC dosyan içine animasyonlu olmayanları normal kaydedebilirsin ama animated cursor'leri RT_RCDATA olarak kaydetmen gerekiyor.
- Bir projem için Resource'dan ilgili animated cursoru alması için bir fonksiyon yazmıştım.
- RESOURCE içerisinde ANI_1, ANI_2 ve ANI_3 olmak üzere üç adet animated cursor olsun.
Kod: Tümünü seç
Function MousePointer(Idx:Word):Word;
Var
CursorDosyasi : String;
ResStream : TResourceStream; // uses Classes
begin
CursorDosyasi := ExtractFilePath(Application.ExeName)+'X.ANI';
ResStream := Nil;
Case Idx of
1: ResStream := TResourceStream.Create(HInstance, 'ANI_1', RT_RCDATA);
2: ResStream := TResourceStream.Create(HInstance, 'ANI_2', RT_RCDATA);
3: ResStream := TResourceStream.Create(HInstance, 'ANI_3', RT_RCDATA);
end; //Case
ResStream.SaveToFile(CursorDosyasi);
Screen.Cursors[Idx] := LoadCursorFromFile(PChar(CursorDosyasi));
DeleteFile(CursorDosyasi);
ResStream.Free;
Result := Idx;
end;
Kod: Tümünü seç
Edit1.Cursor := MousePointer(2);
En son mrmarman tarafından 20 Haz 2006 12:21 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Delphi helpde şöyle bişey var;
işe yararmı bilmiyorum..kolay gelsin
Kod: Tümünü seç
const
crMyCursor = 5;
procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.Cursors[crMyCursor] := LoadCursor(HInstance, 'NewCursor');
Cursor := crMyCursor;
end;
x:\WINDOWS\Cursors\ klasöründen 3 tane cursor seçeriz
notepad ile aliveli.rc uzantılı bi dosya oluşturup
kaydederiz. bitanede bat dosyası oluştururuz "Kısayol.bat"
yazıp kaydederiz. aldığımız 3 cursoru, ve oluşturduğpuz dosyaları bi klasör oluşturup içine atarız. daha sonra bu klasörü "X:\Program Files\Borland\Delphi7\Bin\" dizinine kopyaladıktan sonra "Kısayol.bat" dosyasına çift tıklarız.
Resource dosyamız oluşmuş olur. delphi tarafındada 3 buton koyup forma , cursorlar üzerine basit bir örnek yapabiliriz.
http://rapidshare.de/files/23532887/Cursor.zip.html
notepad ile aliveli.rc uzantılı bi dosya oluşturup
Kod: Tümünü seç
Cursor1 CURSOR "pen_il.cur"
Cursor2 CURSOR "3dgarro.cur"
Cursor3 CURSOR "hmove.cur"
Kod: Tümünü seç
..\brcc32.exe aliveli.rc
pause
Resource dosyamız oluşmuş olur. delphi tarafındada 3 buton koyup forma , cursorlar üzerine basit bir örnek yapabiliriz.
Kod: Tümünü seç
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
Type
TForm1 = Class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Panel1: TPanel;
Label1: TLabel;
Procedure Button1Click(Sender: TObject);
Procedure Button2Click(Sender: TObject);
Procedure Button3Click(Sender: TObject);
Procedure FormCreate(Sender: TObject);
Procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
Procedure Label1Click(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
End;
Var
Form1: TForm1;
//====================================================================
// Ben örnek açısından eski cursorların handlelerinide alıyorum, ama
// gereksiz, isterseniz almayabilirsiniz ben örnek için yapıyorum
//====================================================================
EskiCursor1: HCursor;
EskiCursor2: HCursor;
EskiCursor3: HCursor;
Const
//====================================================================
// Resource dosyamızdan aldığımız cursorlara birer const id(sabit) atayalım
// Dialogdan erişim için bu lazım.
//====================================================================
YeniCursor1 = 123;
YeniCursor2 = 124;
YeniCursor3 = 125;
Implementation
//====================================================================
// derleyici oluşturduğumuz *.res dosyasınıda dialoga rcdata olarak eklesin
//====================================================================
{$R *.dfm}
{$R aliveli.RES}
//====================================================================
// dialogdaki controller oluştururken bizde cursorları yükleyelim
// ayrıca eski cursorlarıda alalım, üzerine set ettiğimizde controllerin,
// örnek için ben geride yüklüyorum. eski handlelerde lazım olucak oyüzden.
//====================================================================
Procedure TForm1.FormCreate(Sender: TObject);
Begin
Screen.Cursors[YeniCursor1] := LoadCursor(hInstance, 'Cursor1');
EskiCursor1 := Button1.Cursor;
Screen.Cursors[YeniCursor2] := LoadCursor(hInstance, 'Cursor2');
EskiCursor2 := Button2.Cursor;
Screen.Cursors[YeniCursor3] := LoadCursor(hInstance, 'Cursor3');
EskiCursor3 := Button3.Cursor;
End;
//====================================================================
// panel1 üzerinde hcursor ne? eğer yeni cursorsa eskiyi,
// eski cursorsa yeniyi set ediyorum
//====================================================================
Procedure TForm1.Button1Click(Sender: TObject);
Begin
If Panel1.Cursor = YeniCursor1 Then
Panel1.Cursor := EskiCursor1
Else
Panel1.Cursor := YeniCursor1;
End;
//====================================================================
// ana formun üzerinde, yani çalışma alanındaki cursor için
// //// /// /////// ///// aynısı..
//====================================================================
Procedure TForm1.Button2Click(Sender: TObject);
Begin
If Form1.Cursor = YeniCursor2 Then
Form1.Cursor := EskiCursor2
Else
Form1.Cursor := YeniCursor2;
End;
Procedure TForm1.Button3Click(Sender: TObject);
Begin
If Button3.Cursor = YeniCursor3 Then
Button3.Cursor := EskiCursor3
Else
Button3.Cursor := YeniCursor3;
End;
//====================================================================
// cursor1 panel1 üzerine geldiğinde, label nesnesini kontrol ediyorum
// örnek için.. eski cursor ise return, yeniyse hareketli.
//====================================================================
Procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
Begin
If Panel1.Cursor = EskiCursor1 Then
exit;
Label1.Left := X;
Label1.Top := Y;
End;
//====================================================================
// panel üzerine tıkladığında eski cursoru yüklüyorum. böylece hareket
// iptal ediliyor..
//====================================================================
Procedure TForm1.Label1Click(Sender: TObject);
Begin
Panel1.Cursor := EskiCursor1
End;
End.