|
Вопрос # 3 783/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Ранее задавался вопрос 3726 о задании точек на канве и отображением координат этих точек на форме. У меня вопрос:
Подскажите, как сделать так, чтобы задавая определенную совокупность точек на канве, получать координаты в отдельных окнах Edit. Например:
Точка1 в окнах Edit1 и Edit2
Точка2в окнах Edit3 и Edit4
..........................................и т.д.
Чтобы было понятнее, о чем речь, ниже привожу код .
Приложение: Переключить в обычный режим- procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- Canvas.TextOut(X,Y,,'X='IntToStr(X)+'Y='IntToStr(Y));
- end;
 |
Вопрос задал: portulakg (статус: 1-ый класс)
Вопрос отправлен: 16 февраля 2010, 15:29
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Alexey6522
Здравствуйте, portulakg!
В общем вот что я добавил и изменил в твоём коде
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Canvas.Pen.Color:= clRed;
Image1.Canvas.Pen.Width:= 5;
Image1.Canvas.Polyline([Point(X, Y), Point(X, Y)]);
if (Edit1.Text = '0') or (Edit1.Text = '') then begin
Edit1.Text:= IntToStr(X);
Edit2.Text:= IntToStr(Y);
end else
if (Edit3.Text = '0') or (Edit3.Text = '') then begin
Edit3.Text:= IntToStr(X);
Edit4.Text:= IntToStr(Y);
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit11.Text:=IntToStr(x);
Edit12.Text:=IntToStr(y);
end;
 |
Ответ отправил: Alexey6522 (статус: 1-ый класс)
Время отправки: 17 февраля 2010, 07:55
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 14; последнее сообщение — 17 февраля 2010, 04:45; участников в обсуждении: 2.
|
Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 15:52 [#1]:
Скажи, что за прогу ты пишешь или так, балуешься?
Можно считать координаты каждого Editа все очень просто
|
|
portulakg (статус: 1-ый класс), 16 февраля 2010, 16:03 [#2]:
Идея следующая:
По карте задаются точки трассы.Координаты выводятся в расчетную часть программы
|
|
Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 16:32 [#3]:
теперь я совсем запутался, Edit тебе для чего, координаты вводить или показывать?
|
|
portulakg (статус: 1-ый класс), 16 февраля 2010, 16:52 [#4]:
По карте задаются точки трассы.Координаты этой трассы заполняют таблицу
т.А - x1:=Edit1,y1:=Edit2
т.В - x2:=Edit3,y2:=Edit4
т.С - x3:=Edit5,y2:=Edit6
|
|
Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 17:31 [#5]:
Честно, ни х... не понял, Edit - это и есть ваша таблица????
|
|
Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 17:32 [#6]:
В общем я понял так, есть карта, когда вы выбираете на ней маршрут, вам надо забить значениями все Edit, так?
|
|
portulakg (статус: 1-ый класс), 16 февраля 2010, 17:36 [#7]:
Алексей, куда выслать exe-шник, и из него станет все понятно.
|
|
Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 17:37 [#8]:
выложи скрин этого будет достаточно
|
|
portulakg (статус: 1-ый класс), 16 февраля 2010, 17:51 [#9]:
А как выложить bmp файл.. Раньше этого делать не приходилось.
|
|
Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 17:54 [#10]:
Ошибка в твоем вопросе, это дезинформация,
Если точки координат выводятся прямо на экране, тогда что тебе нужно от Edit-ов, распиши все по пунктам
1 - щелкаем мышкой по карте, на ней появляется текст с координатами
2 - координаты первой точки нужно вывести в Edit 1-2
3 - вычислить, что там должно у тебя по условию вычисляться
и т.д. Ато написал надо и все, а что надо х.з.
как ты выкладывал exe файл так же и скриншот выложи или ты не знаешь как его сделать???
|
|
Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 18:15 [#11]:
Смотрю твой исходник, для чего кнопки условия, правило T1-T4, R R1 и что ты вообще хочешь от своей программы?
|
|
portulakg (статус: 1-ый класс), 16 февраля 2010, 18:25 [#12]:
Алексей,кнопки имеют отношение к расчетной части программы, меня же интересует вопрос:как кликнув по точке на карте получить заполнение точек А, В,С и О, да так, чтобы они фиксировались и не изменялись при следующем клике по следующей точке.
|
|
Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 22:19 [#13]:
В общем вот что я добавил и изменил в твоём коде
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Canvas.Pen.Color:= clRed;
Image1.Canvas.Pen.Width:= 5;
Image1.Canvas.Polyline([Point(X, Y), Point(X, Y)]);
if (Edit1.Text = '0') or (Edit1.Text = '') then begin
Edit1.Text:= IntToStr(X);
Edit2.Text:= IntToStr(Y);
end else
if (Edit3.Text = '0') or (Edit3.Text = '') then begin
Edit3.Text:= IntToStr(X);
Edit4.Text:= IntToStr(Y);
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit11.Text:=IntToStr(x);
Edit12.Text:=IntToStr(y);
end;
|
|
portulakg (статус: 1-ый класс), 17 февраля 2010, 04:45 [#14]:
Спасибо, работает.Напиши ответ на общем форуме, чтобы я мог поставить оценку
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|