ekran kordinatları
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 10
- Kayıt: 05 Oca 2009 09:54
ekran kordinatları
kolay gelsin arkadaslar kendı bilgisayarımın ekranında belli kordinatları girerek rgb degerlerını okumak ıstıyorum yardımcı olan arkdaslara sımdıden tesekkur ederım kolay gelsın
Re: ekran kordinatları
Bir kelimenin anlamını öğretsen bile yeter..



Re: ekran kordinatları
Kod: Tümünü seç
function renkoku(x,y:integer): Tcolor;
var
DCDesk: HDC;
bmp: Tbitmap;
begin
bmp := TBitmap.Create;
bmp.height:=screen.height;
bmp.width:=screen.width;
DCDesk:=GetWindowDC(GetDesktopWindow);
BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
ReleaseDC(GetDesktopWindow, DCDesk);
result:=bmp.Canvas.Pixels[x,y];
bmp.free;
end;

Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
'Yükseldikçe küçülen bir uçurtma..'
-
- Üye
- Mesajlar: 10
- Kayıt: 05 Oca 2009 09:54
Re: ekran kordinatları
tesekkur ederım hocam cok makbule gectı allah razı olsun bnu proje bıtınce ılk exeyı sıze gonderecem bakalım beyenecekmısınız
Re: ekran kordinatları
Bekliyorum.. umarım beğenirim..pentegram9 yazdı:bakalım beyenecekmısınız

Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
'Yükseldikçe küçülen bir uçurtma..'
Re: ekran kordinatları
y - ğ , umarım iğnelenen arkadaş almıştır mesajı 

procedure TForm1.FormCreate(Sender: TObject);
begin
halt;
end;
begin
halt;
end;
Re: ekran kordinatları
merhaba ben mousun olduğu yerin rengini alıp, karşılaştırma yapmak istiyorum.flaş ile yapılmış bir oyunda mousun olduğu yerin rengini öğrenmek ve eğer renk siyah ise şunu yap, beyaz ise bunu yap demek istiyorum.
sizin vermiş olduğunuz kodu şöyle kullandım fakat bir sonuç alamadım. Nerde yanlış yapıyorum. Normalde fonksiyonun bana renk değerini çevirmesi gerekmiyormu.( white, red, black gibi değerler veya AFFF gibi değerler)
procedure TForm1.Button4Click(Sender: TObject);
var
point:TPoint; // kursor'un bulundugu yer
begin
getcursorpos(point);
renkoku(point.X,point.Y);
end;
end.
sizin vermiş olduğunuz kodu şöyle kullandım fakat bir sonuç alamadım. Nerde yanlış yapıyorum. Normalde fonksiyonun bana renk değerini çevirmesi gerekmiyormu.( white, red, black gibi değerler veya AFFF gibi değerler)
procedure TForm1.Button4Click(Sender: TObject);
var
point:TPoint; // kursor'un bulundugu yer
begin
getcursorpos(point);
renkoku(point.X,point.Y);
end;
end.
Re: ekran kordinatları
verdiğim link tam bu işi yapıyor.
Bir kelimenin anlamını öğretsen bile yeter..



Re: ekran kordinatları
ok teşekkurler hallettim. kullanmak isteyen arkadaşlar için kodu aşağıda veriyorum.
formunuza
3 tane edit
1 tane shape
1 tane timer
koyun sonra formunuzun public kısmına bunu ekleyin
public { Public declarations }
ScreenDC: HDC;
end;
sonra timer componentinin ontimer ına bu kodu ekleyin
procedure TForm1.Timer1Timer(Sender: TObject);
VAR
CursorPos: TPoint;
PixelCol: TColor;
begin
GetCursorPos(CursorPos);
PixelCol := GetPixel(GetWindowDC(GetDesktopWindow),cursorPos.x, CursorPos.y);
Shape1.Brush.Color:=PixelCol;
Edit1.Text:=ColorToString(PixelCol);
Edit2.Text:=inttostr(CursorPos.X);
Edit3.Text:=inttostr(CursorPos.Y);
end;
formunuza
3 tane edit
1 tane shape
1 tane timer
koyun sonra formunuzun public kısmına bunu ekleyin
public { Public declarations }
ScreenDC: HDC;
end;
sonra timer componentinin ontimer ına bu kodu ekleyin
procedure TForm1.Timer1Timer(Sender: TObject);
VAR
CursorPos: TPoint;
PixelCol: TColor;
begin
GetCursorPos(CursorPos);
PixelCol := GetPixel(GetWindowDC(GetDesktopWindow),cursorPos.x, CursorPos.y);
Shape1.Brush.Color:=PixelCol;
Edit1.Text:=ColorToString(PixelCol);
Edit2.Text:=inttostr(CursorPos.X);
Edit3.Text:=inttostr(CursorPos.Y);
end;