Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Вниз

ClientToScreen;   Найти похожие ветки 

 
$Hic0   (2003-07-28 17:10) [0]

В общем такое дело... есть код...


procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var p : TPoint;
begin
p.x:=x;
p.y:=y;
p:=Image1.ClientToScreen(p);
Label1.Caption:=IntToStr(p.x)+";"+IntToStr(p.y);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Label2.Caption:=IntToStr(x)+";"+IntToStr(y);
end;


ClientToScreen сильно врет, или я что-то не так делаю, но после того как курсор входит в область Image1, координаты полученные с помощью полученных таким образом от настоящих, примерно на пару сотен пикселей. Конечно скорее всего я что-то не так делаю, но что? :)
Заране спасибо!


 
$HiC0   (2003-07-28 17:12) [1]

простите, немного коряво выразился :) Я хотел сказать что координаты полученные с помощью этого методa отличаются от реальных на пару сотен пикселей. Спасибо!


 
KSergey   (2003-07-28 17:13) [2]

Стоп. А с чем эти координаты сравниваются? Ведь для формы (FormMouseMove) - координаты выводятся относительно формы (пересчета я не вижу), а для картинки - экранные...
Что-то тут не то... Так что с чем сравниваем?


 
$HiC0   (2003-07-28 17:17) [3]

С координатами формы....
опс... так ведь форма и screen это не одно и тоже... вот блин, переработался.
Но как тогда сравнивать с координатами формы, мне нужно чтобы по любой точке
Image1 я мог узнать где эта точка находится на форме... вот блин тоже тоерия
относительности в действии :)


 
KSergey   (2003-07-28 17:23) [4]

$HiC0 © (28.07.03 17:17)
Но как тогда сравнивать с координатами формы, мне нужно чтобы по любой точке
Image1 я мог узнать где эта точка находится на форме...


1) Чтобы не городить огорол гарантированный результат

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var p : TPoint;
begin
p.x:=x;
p.y:=y;
p:=Image1.ClientToScreen(p);
p:=ScreenToClient(p); // т.е. метод формы
Label1.Caption:=IntToStr(p.x)+";"+IntToStr(p.y);
end;

2) Если есть уверенность, что Image лежит именно на форме и всегда там будет (без прослоек в виде всяких панелей), т.е. ее Parent точно форма - то можно скорректировать координатами формы, но там еще заголовок, толщина бордюра - короче заморочек много... Лучше 1, другого я не смог придумать


 
$HiC0   (2003-07-28 17:27) [5]

Spasibo. <5==> B> GB> =C6=> :)



 
KSergey   (2003-07-28 17:33) [6]

<5==> B> GB> =C6=> :)
Это хорошо или сухари сушить? Или это уже не поможет...


 
default   (2003-07-28 17:35) [7]


procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin

Label1.Caption:=IntToStr(Image1.Left + X) + " : " +
IntToStr(Image.Top + Y);

end;



 
KSergey   (2003-07-28 17:52) [8]

default © (28.07.03 17:35)

Это все прикольно, если картинка непосредственно на форме лижит... Это мой 2-й пункт, только я не то ляпнул по поводу координаты формы прибавить - конечно же картинки, наврал.
Но если там неизвесное кол-во парентов - то надо всех их прибывлять, а это уже не смешно. Потому мне 1-й вариант и приглянулся больше.


 
default   (2003-07-28 17:58) [9]

KSergey © (28.07.03 17:52)
ну TImage всё равно на каком-то Parent-е лежит, вот и обрабатывать его OnMouseMove
не совсем понимаю проблему(


 
default   (2003-07-28 18:02) [10]

KSergey © (28.07.03 17:52)
всё понятно



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-33282
Cyber
2003-07-17 11:24
2003.08.11
Всем, всем, всем! Предложение о сотрудничестве


14-33303
Саня
2003-07-24 13:43
2003.08.11
Привет Мастера!


1-33198
МалОй
2003-07-28 21:38
2003.08.11
SubMenu в MainMenu


3-33082
xBocT
2003-07-17 15:18
2003.08.11
Ошибочка при работе с AdoDataSet


1-33148
Mishenka
2003-07-26 22:15
2003.08.11
Запуск программ.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский