ekran kordinatları

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
pentegram9
Üye
Mesajlar: 10
Kayıt: 05 Oca 2009 09:54

ekran kordinatları

Mesaj gönderen pentegram9 »

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
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: ekran kordinatları

Mesaj gönderen conari »

Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: ekran kordinatları

Mesaj gönderen qamyoncu »

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;
Umarım yardımcı olur.. :)
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
pentegram9
Üye
Mesajlar: 10
Kayıt: 05 Oca 2009 09:54

Re: ekran kordinatları

Mesaj gönderen pentegram9 »

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
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: ekran kordinatları

Mesaj gönderen qamyoncu »

pentegram9 yazdı:bakalım beyenecekmısınız
Bekliyorum.. umarım beğenirim.. :)
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
CemErgun
Üye
Mesajlar: 91
Kayıt: 05 May 2009 11:31
Konum: antalya

Re: ekran kordinatları

Mesaj gönderen CemErgun »

y - ğ , umarım iğnelenen arkadaş almıştır mesajı :)
procedure TForm1.FormCreate(Sender: TObject);
begin
halt;
end;
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: ekran kordinatları

Mesaj gönderen Lord_Ares »

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.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: ekran kordinatları

Mesaj gönderen conari »

verdiğim link tam bu işi yapıyor.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: ekran kordinatları

Mesaj gönderen Lord_Ares »

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;
Cevapla