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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2016, 10:01   #1
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию Таблица. Выделение областей.

Нужна помощь в написании программы, которая по событию отпускания кнопки мыши onMouseUp, выводит на форму координаты крайних (левой верхней и правой нижней) ячеек выделенной области.

Код:
procedure TForm1.FormCreate(Sender: TObject);
const N=17 mod 3+10;
        M=17 mod 2+9;
var Col,Row: integer; // Col-столбец, Row - строка
begin
StringGrid1.ColCount:=N; 
StringGrid1.RowCount:=M; 
for Col:=0 to StringGrid1.ColCount - 1 do
for Row:=0 to StringGrid1.RowCount - 1 do
StringGrid1.Cells[ Col , Row ]:=' [ ' + IntToStr(Col) + ' , ' + IntToStr(Row) + ' ] ';

  StringGrid1.Width:=StringGrid1.DefaultColWidth*StringGrid1.ColCount;
  StringGrid1.Height:=StringGrid1.DefaultRowHeight*StringGrid1.RowCount;

end;

procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift:
  TShiftState; X, Y: Integer);
begin
  Label1.Caption:=' Координаты левой верхней ячейки и правой нижней [' + IntToStr(
  StringGrid1.Selection.Left ) + ' , ' + IntToStr(StringGrid1.Selection.Top)+ '] ';
  // StringGrid1.Selection.Right ) + ' , ' + IntToStr(StringGrid1.Selection.Bottom)+ '] ';
end;

end.
Левую верхнюю выводит, а правую нижнюю как прописать?
serge-first вне форума Ответить с цитированием
Старый 31.03.2016, 10:15   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

нет под рукой IDE, чтобы проверить.

проверьте, должно быть:
StringGrid1.Selection.Right
StringGrid1.Selection.Bottom
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.03.2016, 10:17   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

В Selection есть и другие поля, то же Right и Bottom
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.03.2016, 10:22   #4
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

Прописал так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
const N=17 mod 3+10;
      M=17 mod 2+9;
var Col,Row: integer; // Col-столбец, Row - строка
begin
StringGrid1.ColCount:=N; //У вас будут свои значения, /17 mod 3+10
StringGrid1.RowCount:=M; // согласно вашему варианту  /17 mod 2+9
for Col:=0 to StringGrid1.ColCount - 1 do
for Row:=0 to StringGrid1.RowCount - 1 do
StringGrid1.Cells[ Col , Row ]:=' [ ' + IntToStr(Col) + ' , ' + IntToStr(Row) + ' ] ';

  StringGrid1.Width:=StringGrid1.DefaultColWidth*StringGrid1.ColCount;
  StringGrid1.Height:=StringGrid1.DefaultRowHeight*StringGrid1.RowCount;

end;

procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift:
  TShiftState; X, Y: Integer);
begin
  Label1.Caption:=' Координаты левой верхней ячейки [' + IntToStr(
  StringGrid1.Selection.Left ) + ' , ' + IntToStr(StringGrid1.Selection.Top)+ '] ';
  Label2.Caption:=' Координаты правой нижней ячейки [' + IntToStr(
  StringGrid1.Selection.Right ) + ' , ' + IntToStr(StringGrid1.Selection.Bottom)+ '] ';
end;

end.
serge-first вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распознование областей на изображении rasfir C# (си шарп) 2 07.04.2014 20:56
Выделение границ компонента edit и таблица в listbox xrenomx Общие вопросы Delphi 9 18.12.2011 01:18
Пересечение областей графиков vefer Microsoft Office Excel 0 28.10.2011 11:57
Макрос, таблица, выделение сразу всех смежных строк жирным kibernet Microsoft Office Word 6 07.06.2011 11:27
Выделение областей buba1 JavaScript, Ajax 1 24.10.2010 20:43