Может и правильней, только вот результат все равно нулевой. Проблема в цикле по ходу. Не могу ее решить..
С этим
Код:
if (X > Xmin) and (X < Xmax) and (Y > Ymin) and (Y < Ymax)
хотя бы одно на одно здание реагировало.
А с этим
Код:
if (X in [Xmin..Xmax]) and (Y in [Ymin..Ymax]) then
перестало реагировать...
Изменил код функции на
Код:
function TForm1.GetImageName(const X, Xmin, Xmax, Y, Ymin, Ymax: Integer): string;
begin
if Result = '' then
if (X > Xmin) and (X < Xmax) and (Y > Ymin) and (Y < Ymax)
then begin
Result:= ADOTable1Foto.AsString;
end
else
Result:= '';
end;
стало все норм. Однако идет мерцание картинки при перемещении мышки по зданию. Посоветуйте, как убрать этот неприятный эффект?
Все заработало как надо. Если кому пригодится, то вот:
Код:
function TForm1.GetImageName(const X, Xmin, Xmax, Y, Ymin, Ymax: Integer): string;
begin
if Result = '' then
if (X > Xmin) and (X < Xmax) and (Y > Ymin) and (Y < Ymax)
then begin
Result:= ADOTable1Foto.AsString;
end
else
Result:= '';
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
NewImageName: string;
begin
if ssleft in shift then // если нажата левая кнопка мыши, то...
begin
x1:=x; //запоминаем конечные координаты
y1:=y; //запоминаем конечные координаты
Scrollbox1.VertScrollBar.Position := Scrollbox1.VertScrollBar.Position + y0-y1;
Scrollbox1.HorzScrollBar.Position := Scrollbox1.HorzScrollBar.Position +x0-x1;
end;
Label1.Caption := IntToStr(x);
Label2.Caption := IntToStr(y);
//ПЕРЕБОРКА СТРОК ТАБЛИЦЫ
with ADOTable1 do
begin First;
while not EOF do begin
NewImageName:= GetImageName(X,StrToInt(ADOTable1Xmin.Text),StrToInt(ADOTable1Xmax.Text),
Y,StrToInt(ADOTable1Ymin.Text),StrToInt(ADOTable1Ymax.Text));
if Label3.Caption=NewImageName then
begin
if NewImageName = '' then
begin
Image5.Visible:= False;
LoadImage:='';
end
else
if NewImageName <> LoadImage then
begin
Image5.Visible:= True;
Image5.Picture.LoadFromFile(NewImageName);
LoadImage:= NewImageName;
end;
end;
next;
end;
end;
Label3.Caption := NewImageName;
end;
Отдельное спасибо Alegun.
Дорогу осилит идущий. Пойду дальше... Всем удачи.