ağabeylerimkardeşlerim aşağıda kullanmaya çalıştığım bir döngü var bu döngüde ben ekrandaki piksel piksel renk kodlarını almaya çalışıyorum...ama ikinci döngü ilerlerken...birinci döngü ilerlemiyor....
var
q,w,e,r:longint;
a,s,d:tcolor; /
aa,ab,ac:tcolor;/
begin
Okunanrenkkodlari.Clear;
gosterge.Visible:=true;
gosterge.max:=0;
gosterge.Min:=0;
gosterge.Max:=yukresm.picture.Width*yukresm.picture.Height;
Okunanrenkkodlari.Lines.Add('RGB Değeri X Y Kordinat');
while q <yukresm.Picture.Width do
begin
while w < yukresm.Picture.Height do
Begin
gosterge.Position:=gosterge.Position+1;
aa:=GetRValue(yukresm.Canvas.Pixels[q,w]);
ab:=GetGValue(yukresm.Canvas.Pixels[q,w]);
ac:=GetBValue(yukresm.Canvas.Pixels[q,w]);
Okunanrenkkodlari.Lines.Add('R :'+inttostr(aa)+' G:'+inttostr(ab)+' B:'+inttostr(ac)+
' X:'+inttostr(q)+' Y:'+inttostr(w));
gosterge.Visible:=false;
inc(w,10);
inc(q,10);
end;
end;
iç içe döngüde sorun
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
iç içe döngüde sorun
Siz hayal edin...Biz yapalım TuannaSoft...
Selamlar,
Kod gönderirken lütfen Code tagleri içinde gönderin ve ayrıca bir de tavsiye, blok programlamada ve okunaklığı arttırması için girintiler (Bloklar) oluşturun.
Sizin adınıza ben biraz düzeltip yolluyorum (ayrıca sorununuzu da açıklayacağım)
Aslında şöyle bir mantık izleseniz daha iyi olur gibi
Böylelikle daha kısa bir kod elde etmiş olursunuz. Ama belki 10'ar 10'ar gitmenizin bir manası vardır buna göre yapıyorsunuzdur 
Kolay Gelsin
Kod gönderirken lütfen Code tagleri içinde gönderin ve ayrıca bir de tavsiye, blok programlamada ve okunaklığı arttırması için girintiler (Bloklar) oluşturun.
Sizin adınıza ben biraz düzeltip yolluyorum (ayrıca sorununuzu da açıklayacağım)
Kod: Tümünü seç
var
q,w,e,r:longint;
a,s,d:tcolor; /
aa,ab,ac:tcolor;/
begin
Okunanrenkkodlari.Clear;
gosterge.Visible:=true;
gosterge.max:=0;
gosterge.Min:=0;
gosterge.Max:=yukresm.picture.Width*yukresm.picture.Height;
Okunanrenkkodlari.Lines.Add('RGB Değeri X Y Kordinat');
while q <yukresm.Picture.Width do
begin
while w < yukresm.Picture.Height do
Begin
gosterge.Position:=gosterge.Position+1;
aa:=GetRValue(yukresm.Canvas.Pixels[q,w]);
ab:=GetGValue(yukresm.Canvas.Pixels[q,w]);
ac:=GetBValue(yukresm.Canvas.Pixels[q,w]);
Okunanrenkkodlari.Lines.Add('R :'+inttostr(aa)+' G:'+inttostr(ab)+' B:'+inttostr(ac)+ ' X:'+inttostr(q)+' Y:'+inttostr(w));
gosterge.Visible:=false;
inc(w,10);
// inc(q,10); <- Burası Yanlış yerde bu şekilde yazarsanız Solüstten sağ
//alta doğru çapraz bir hat üzerinde ilerlersiniz ve döngünüz işe yaramaz
end;
inc(q,10); <- Burada olmalı ama 10'ar 10'ar niye gidiyorsunuz onu anlamadım ???
end; <- Burası Eksik
Kod: Tümünü seç
for intY := 0 Resmin.Boyu (Y'si)
for intX := 0 to Resmin.Eni do (X'i)
begin
Resmin RGB'lerini Değişkenlere At,
Canvas'ın intX ve intY'sine göre
Bunları Göster
end ;

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
arkadaşlar böle çalıştı ya
q:=0;
w:=0;
while q <yukresm.Picture.Width do
begin
for w:=1 to yukresm.Picture.Height do
begin
gosterge.Position:=gosterge.Position+1;
aa:=GetRValue(yukresm.Canvas.Pixels[q,w]);
ab:=GetGValue(yukresm.Canvas.Pixels[q,w]);
ac:=GetBValue(yukresm.Canvas.Pixels[q,w]);
Okunanrenkkodlari.Lines.Add('R :'+inttostr(aa)+' G:'+inttostr(ab)+' B:'+inttostr(ac)+
' X:'+inttostr(q)+' Y:'+inttostr(w));
gosterge.Visible:=false;
// inc(w,10);
end;
inc(q,100);
end;
q:=0;
w:=0;
while q <yukresm.Picture.Width do
begin
for w:=1 to yukresm.Picture.Height do
begin
gosterge.Position:=gosterge.Position+1;
aa:=GetRValue(yukresm.Canvas.Pixels[q,w]);
ab:=GetGValue(yukresm.Canvas.Pixels[q,w]);
ac:=GetBValue(yukresm.Canvas.Pixels[q,w]);
Okunanrenkkodlari.Lines.Add('R :'+inttostr(aa)+' G:'+inttostr(ab)+' B:'+inttostr(ac)+
' X:'+inttostr(q)+' Y:'+inttostr(w));
gosterge.Visible:=false;
// inc(w,10);
end;
inc(q,100);
end;
Siz hayal edin...Biz yapalım TuannaSoft...