![]() |
|
#1
|
|||
|
|||
![]() Всем доброго времени суток, господа.
Может мой вопрос уже озвучивался где-то, но я не нашел ответ на него.... Если что приношу свои извинения... ![]() Нужно при наведении мышки на определенное здание выводить фото и описание этого здания. Код:
function TForm1.GetImageName(const X, Xmin, Xmax, Y, Ymin, Ymax: Integer): string; begin with ADOTable1 do begin First; while not EOF do begin if (X > Xmin) and (X < Xmax) and (Y > Ymin) and (Y < Ymax) then begin Result:= ADOTable1Foto.AsString ; end else Result:= ''; next; end; end; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var x2,y2: integer; 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); //ПЕРЕБОРКА СТРОК ТАБЛИЦЫ NewImageName:= GetImageName(X,StrToInt(ADOTable1Xmin.AsString),StrToInt(ADOTable1Xmax.AsString), Y,StrToInt(ADOTable1Ymin.AsString),StrToInt(ADOTable1Ymax.AsString)); 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; Label3.Caption := NewImageName; end; Создал данный код, но работает некорректно. Реагирует только на перые координаты, а фото выводит последнее... Подскажите в чем ошибка. |