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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 20:14   #1
Kottik
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 47
По умолчанию Найти запись в TList в зависимости от координат TPaintBox

Здравствуйте.

В наличии:
1) класс ТТочка с паблик свойствами: X и Y (целые), плюс ещё некоторые свойства.
2) несколько объектов типа TList, хранящих объекты класса ТТочка.
Почему несколько? Они отличаются Y. В одном TList все Y одинаковые.
Например, list1 все Y=100, list2 Y=200, list3 Y=300.
Внутри каждого объекта TList отсортировываю записи по значению X.

X и Y являются центрами окружностей на TPaintBox. Все объекты генерирую случайно. Всего этих точек(окружностей) может быть не более 1000.

Как при наведении курсора мыши на окружность получить все её свойства, т.е. найти её в списке? (отображу их на ТСтатусБар или всплывающим сообщением).
Окружности могут находиться очень близко друг от друга, даже налогаться друг на друга, диаметр всех окружностей 10.
Если можно - то выделить, "подсветить" выбранную окружность.
Учиться никогда не поздно
Kottik вне форума Ответить с цитированием
Старый 18.04.2010, 21:39   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Честно говоря не понимаю почему несколько TList, это легче чем двумерный массив указателей на ваши классы описания ? Т.е. просто таблица (X, Y грубо говоря) в которой ячейки ваши указатели. Ну да ладно, даже если и так, почему два цикла (один вложеный) не сделать и проверять пока не найдутся X и Y нужные ?
BOBAH13 вне форума Ответить с цитированием
Старый 18.04.2010, 21:55   #3
Kottik
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 47
По умолчанию

ВОВАН13, спасибо за советы.

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
почему несколько TList?
Мне нужно знать сколько точек(окружностей) находится на каждом уровне (уровней может быть от 2 до 10), поэтому для каждого уровня отдельный TList (у каждого одно значение Y для всех его объектов). На каждом уровне точек больше, чем на предыдущем. На первом и вовсе только 1. Поэтому, если использовать двумерный массив у меня будет только последняя строка заполнена полностью, остальные не до конца. При этом будет расходоваться память впустую?

Допустим, на TPaintBox вешаю событие OnMouseMove.
Получаю текущие координаты курсора
Код:
GetCursorPos(p);
Но ведь чтобы точные координаты получить, нужно будет четко в центр попасть окружности... А если рука дрогнет? Вот если бы захватывать, например, диаметр 4 вокруг текущего положения курсора. Уровень то легко будет найти и найду тот TList, который для этого уровня окружностей предназначен. Но вот потом перебрать все координаты X...
Учиться никогда не поздно
Kottik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись чисел из одного массива в 2 других(в зависимости от парности) chester20 Помощь студентам 0 04.03.2010 15:23
Паскаль. Дана матрица размерностью M*M. Найти сумму координат минимального элемента Венера9 Помощь студентам 3 26.01.2010 15:21
Найти и поменять запись в файле Kib Общие вопросы Delphi 3 11.11.2009 16:46
Запись структуры TList в файл, проблема с длинными строками типа AnsiString Xardas Общие вопросы Delphi 2 24.05.2009 20:18
Помогите найти последную запись Reskov Microsoft Office Access 2 18.12.2008 11:42