![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Нужно написать небольшую программу, а как не знаю.
Условие: На форме установлена метка Label1 и кнопка Button1. Вывести в метку растояние в мм. между курсором мыши и центром кнопки Butto1 в момент нажатия кнопки мыши. |
|
#2
|
||||
|
||||
|
Может быть и в пикселях сойдет?
|
|
#3
|
||||
|
||||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var x: integer;
begin
x:= Form1.Left + Button1.Left + (Button1.Width div 2) +
Form1.BorderWidth + (Form1.Width - Form1.ClientWidth) div 2;
x:= Mouse.CursorPos.X - x;
Label1.Caption:= IntToStr(x);
end; но учти, что на разных мониторах пиксели разного размера (зависит от размера кинескопа).З.Ы. Для визуального контроля создай Button2 и пропиши код: Код:
procedure TForm1.Button2Click(Sender: TObject);
var TMP: TBitmap; x, y: integer;
begin
x:= Button1.Left;
y:= Button1.Top + Button1.Height;
TMP:= TBitmap.Create;
TMP.Height:= 10;
TMP.Width:= Button1.Width;
with TMP.Canvas do
begin
Brush.Style:= bsSolid;
Brush.Color:= clRed;
FillRect(Bounds(0,0,TMP.Width div 2,TMP.Height));
Brush.Style:= bsSolid;
Brush.Color:= clLime;
FillRect(Bounds(TMP.Width div 2,0,TMP.Width,TMP.Height));
end;
Form1.Canvas.Draw(x,y,TMP);
TMP.Free;
end; |
|
#4
|
||||
|
||||
|
Вот пример проги, кот. вычисляет координаты позиции курсора относительно центра кнопки (при нажатии на оную):
|
|
#5
|
|||
|
|||
|
Спасибо что помогли!
|
|
#6
|
|||
|
|||
|
Перерыл много информации а так и не нашол скольки пикселям будет равен 1 мм. Если не трудно может кто подскажет.
|