游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2345|回复: 2

我的判断语句错在哪里高手指点!

[复制链接]

2

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-8-21 22:23:00 | 显示全部楼层 |阅读模式
procedure TForm1.Button2Click(Sender: TObject);
var
DC:HDC;
i, j: Integer;
begin
DC:=GetDC(0);
for i:=0 to 50 do
for j:=0 to 50 do
edit4.text:=InttoHex(GetPixel(DC,i,j),6);
ReleaseDC(0, DC);
if  edit4.text='101C10' then
begin
edit4.text:=char(i)+char(j);
EXIT;
end;
end;
//我的目的是从屏幕0,0坐标循环查找到50,50坐标.判断与'101C10'的颜色值对应的坐标x,y这段代码运行正常,但没有达到我要判断的效果.得出的结果都是坐标50,50的.估计是我的判断语句不对.高手给出代码.注:坐标25,25的颜色值是'101c10'

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-8-22 14:12:00 | 显示全部楼层

Re:我的判断语句错在哪里高手指点!

你的循环语句要加Begin,End吧
for i:=0 to 50 do
begin
  for j:=0 to 50 do
  begin
    edit4.text:=InttoHex(GetPixel(DC,i,j),6);
    if  edit4.text='101C10' then
    begin
      edit4.text:=char(i)+char(j);
      ReleaseDC(0, DC);
      EXIT;
    end;
  end;
end;

16

主题

160

帖子

176

积分

注册会员

Rank: 2

积分
176
QQ
发表于 2005-8-22 14:23:00 | 显示全部楼层

Re:我的判断语句错在哪里高手指点!

你的程序的毛病有:
⒈没有正确区分语句块,BEGIN END的位置!
⒉API使用错误,你要在获取完全部PIXEL(GetPixel(x, y))后再调用ReleaseDC(DC)

这是我修改后的,请看:
procedure TForm1.Button2Click(Sender: TObject);
var
  dc: hDC;
  i, j: Integer;
begin
  dc := GetDC(0);
  for i := 0 to 50 do
  begin
    for j := 0 to 50 do
    begin
      edit4.text := InttoHex(GetPixel(DC, i ,j), 6);
      if  edit4.text='101C10' then
      begin
        edit4.text:=char(i)+char(j);
        ReleaseDC(0, DC);
        EXIT;
      end;
    end;
  end;
  ReleaseDC(0, DC); // 这句要有,因为存在edit4.text='101C10' 不成立的情况
end;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-27 13:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表