Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2014, 15:56   #1
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию Вставка данных из Edit в Stringgrid в столбец

Здравствуйте! Для расчета, я определяла координаты щелчков мыши на канве. Они у меня записываются в Edit2 (x) и Edit3 (y). При каждом щелчке текущее значение координаты меняется. Мне необходимо записать эти координаты в Stringgrid1(состоит из 2 столбцов и n-ного количества строк). Я попыталась это сделать, но в таблицу записываются все одинаковые значения. Подскажите где у меня ошибка, как сделать, чтобы выводились координаты всех точек по порядку???

Код:

procedure TForm2.Image1Click(Sender: TObject);
Const n=100;
var MyMouse:TMouse;
X,Y,i:integer;
begin
X:=Image1.ScreenToClient(MyMouse.Cu rsorPos).X;
Y:=Image1.ScreenToClient(MyMouse.Cu rsorPos).Y;
Edit2.text:=floattostr(X);
Edit3.text:=floattostr(Y);
for i:=1 to n do
begin
StringGrid1.Cells[0,i]:=Edit2.Text;
StringGrid1.Cells[1,i]:=Edit3.Text;
end;
end;
Изображения
Тип файла: jpg Безымянный.jpg (12.3 Кб, 143 просмотров)
Аника Янковская вне форума Ответить с цитированием
Старый 18.11.2014, 16:52   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Замени OnClick на OnMouseDown.
Выкинь mouse, X, Y, N, цикл, эдиты.
Код:
procedure TMainForm.ImageMouseDown(Sender: TObject;
                                   Button: TMouseButton;
                                   Shift: TShiftState;
                                   X, Y: Integer);
begin
  with Grid do
    begin
      RowCount:= RowCount + 1;
      Cells[0, RowCount - 1]:= IntToStr(X);
      Cells[1, RowCount - 1]:= IntToStr(Y);
    end;
end;
Замени эдиты, например, панелями (или лейблами). Координаты текущие выводи в них по событию OnMouseMove.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.11.2014, 18:22   #3
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Координаты текущие выводи в них по событию OnMouseMove.
А как правильно записать, чтобы выводились координаты через OnMouseMove. Подскажите пожалуйста.
Аника Янковская вне форума Ответить с цитированием
Старый 18.11.2014, 18:27   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Аника Янковская Посмотреть сообщение
А как правильно записать, чтобы выводились координаты через OnMouseMove. Подскажите пожалуйста.
сначала давай-ка самостоятельно поэкспериментируй. ну, а если не получится, тогда я нарисую.
должен же я убедиться, что ты не стремишься сесть мне на шею!
Там и так все места давно проданы.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.11.2014, 18:32   #5
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Согласна. Буду пробовать.
Аника Янковская вне форума Ответить с цитированием
Старый 18.11.2014, 18:37   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Аника Янковская Посмотреть сообщение
Согласна. Буду пробовать.
давай быстрей, пока я спать не завалился.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.11.2014, 18:48   #7
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Код:
procedure TForm2.MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
label2:=IntToStr(X);
label3:=IntToStr(Y);
end;
Ошибка с типами получается??? Подскажите пожалуйста.
Аника Янковская вне форума Ответить с цитированием
Старый 18.11.2014, 19:18   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
procedure TForm2.MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
label2.Caption:= Format('X = %d', [X]);
label3.Caption:= Format('Y = %d', [Y]);
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.11.2014, 19:27   #9
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Можно и так, наверное
Код:
label2.Caption:=IntToStr(X);
Или так
Код:
label2.Caption:='X = '+IntToStr(X);
type_Oleg вне форума Ответить с цитированием
Старый 18.11.2014, 19:28   #10
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Спасибо. А если мне надо, чтобы координаты на Image (находится на форме) определялись, а не на всем формате. Что надо исправить?
Аника Янковская вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка данных в шаблон документа в ячейку Excel из StringGrid artemavd Общие вопросы Delphi 4 29.05.2011 14:49
CheckBox'ы в столбец в Stringgrid'e Bright-rider Общие вопросы Delphi 2 08.12.2010 13:30
Инвертировать столбец в StringGrid artemavd Общие вопросы Delphi 4 21.09.2010 18:42
Фиксированный столбец в StringGrid Universum Помощь студентам 3 06.04.2009 13:53
Вставка/импорт массива значений из текстового файла в столбец таблицы bungler Microsoft Office Excel 4 08.01.2009 19:09