Тут вопрос, что человеку надо сделать самому...
Теперь по порядку.
1. Что бы какие-то контролы не "уезжали", надо их вынести за пределы ScrollBox'а. Например, положить панельку вне поля прокрутки и на нее класть контролы. Второй вариант - отслеживать "прокрутку" и просто перемещать контролы так, что бы они были всегда видны.
2. Что бы во втором списке данные фильтровались в завсисимости от первого, эту фильтрацию надо написать. В обработчике события OnChange первого списка надо очистить второй и загрузить в него данные, соотв. выбрвнному в первом. Подробнее код не могу показать, т.к. не знаю как у тебя храняться данные.
3. По поводу объекьтов для домов и т.д. Никаких объектов "клать" не надо. Надо иметь список этих объектов с привязкой к карте (координатами). Когда тебе надо показать какой-нить объект, то просто рисуешь его в нужном месте по соотв. координатам.
4. Курсор мыши можно сделать свой. Для этого надо создать ресурс с этим курсором (стандартный дельфевый Image Editor для этого вполне подходит), подключить этот ресурс в проект (директива компилятора {$R имя_файла_ресурса}), а потом при старте приложения погрузить его (если не ошибаюсь, то через LoadResource). Примеров в гугле находится дофига по ключевым словам Load Custom Cursor Delphi.
|