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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2008, 22:48   #21
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Продумал идею окончательно, нужен всего один массив двухмерный = ширина * высота карты в пикселях. Тип - байт.
Остальные массивы промежуточные, из них как раз этот основной и нужно сгенерировать. Вручную их составлять не надо, код написать один раз и по карте покликать по странам в определенном порядке (хоть по алфавиту).
Из константы массива со странами (такого же как с жанрами, только со странами) получать название страны, нулевой элемент не заполнять это будет означать что курсор ни в одну страну не попадает.

Чем хорош этот вариант, так это простейшая проверка в MouseMove:
Caption := Countries[Map[x,y]];
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 10.04.2008 в 22:58.
mutabor вне форума Ответить с цитированием
Старый 11.04.2008, 13:51   #22
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

кстати где можно посмотреть инфу об этих байтах
и еще об
s:=чего то там or чего то там
что означает тут or?
^_^
WOLFak вне форума Ответить с цитированием
Старый 11.04.2008, 14:40   #23
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

а нельзя ли вот этой хорошо звучащей идеи код увидить
пожалуйста..
я ж тока начинающий (очень начинающий) программер
^_^
WOLFak вне форума Ответить с цитированием
Старый 11.04.2008, 15:05   #24
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Посмотри вот на этот пример.
Попробуй как работает
Я специально вставил комментарий, чтобы было понятно откуда такие константы.
Вложения
Тип файла: rar test_map.rar (99.9 Кб, 16 просмотров)
alexBlack вне форума Ответить с цитированием
Старый 11.04.2008, 16:32   #25
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

угу ща попробую на большой сделать
^_^
WOLFak вне форума Ответить с цитированием
Старый 11.04.2008, 16:34   #26
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

я тут попутно сокет разбирал так вот
я активизирую клиента сокета но без серва
и мне дает ошибку что типа асинхронно что то?
как исправить?
когда серв запущен ошибок нету(я явно что то упустил с клиентом
в нем я
port = 9999
host=127.0.0.1
address=127.0.0.1
и все
я просто пишу form1.clientsocket1.active:=false
^_^

Последний раз редактировалось WOLFak; 11.04.2008 в 16:42.
WOLFak вне форума Ответить с цитированием
Старый 11.04.2008, 16:45   #27
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Про байты и хорошо звучащую идею, это я так понял вопрос мне?

Попробую объяснить более доступно. Отложим пока предварительную подготовку и возьмем нашу программу. Нужно:
1. Константный массив со странами (допустим их пять)
Код:
const
Countries: array[0..5] of string = (
  '','Австрия','Испания','Германия','Франция','Гондурас');
Обрати внимание что их на самом деле шесть, нулевой элемент - пустая строка, это будет нейтральная территория.

2. Двухмерный массив (матрица) по размерам такой же как и карта (изображение), но в отличие от карты в к-рой элемент имеет тип TColor = integer = 4 байта, элементы нашего массива будут типа byte.
Код:
var
Map: array of array of byte;
Размеры матрицы я не задаю, так как это не обязательно, все равно грузить ее нужно из файла или из ресурсов.
Матрица эта будет иметь примерно такой вид (это ее фрагмент)

... 0 1 1 2 2 5 5 ...
... 0 1 3 3 3 5 5 ...
... 0 0 4 4 4 4 0 ...

Каждая цифра соответствует одной стране, 0 - нейтральной территории.

3. При работе программы будет выполняться всего одна строка кода (если не считать загрузку матрицы при старте программы), вот эта строка:
Код:
procedure <чей-то>.MouseMove... //смотря какой компонент ты выберешь
begin
//название страны будет появлятся в заголовке формы
Caption := Countries[Map[x,y]];
end;
"Подводная часть айсберга" это создание этой самой матрицы, по трудоемкости не легче чем в Фотошопе маску сделать (только в Фотошопе нужно будет работать руками, а тут головой). Нужно написать код (если что я помогу) для ее создания на основе карты.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 11.04.2008 в 16:56.
mutabor вне форума Ответить с цитированием
Старый 11.04.2008, 16:57   #28
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

тип байт как я мог забыть ?! в голове просто крутяться биты сокеты и все такое
на счет 'надводной части айсберга' я вроде знал и тему создал на случай если кто нить знает где взять карту с разноцветными странами и если бы таковая была я бы и сам сделал но карты такой нету (наверное) вот я и тону ударившись о "Подводную часть айсберга")))
я вот не раз видел проги с картой и там можно выберать страну одним кликом мне нужно тоже самое
короче плиз помогите
^_^
WOLFak вне форума Ответить с цитированием
Старый 11.04.2008, 17:05   #29
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

я ща над картой фотошопом попробую цвета поизменять
тот исходник alexBlack'а не фурычит с jpeg ) пишит что изменять можно тока битмап
но идея mutabor выглядит более надежной
^_^

Последний раз редактировалось WOLFak; 11.04.2008 в 17:09.
WOLFak вне форума Ответить с цитированием
Старый 11.04.2008, 17:12   #30
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
"Подводная часть айсберга" это создание этой самой матрицы, по трудоемкости не легче чем в Фотошопе маску сделать (только в Фотошопе нужно будет работать руками, а тут головой). Нужно написать код (если что я помогу) для ее создания на основе карты.
голова у меня есть тока не на столько умная как надо
вот и вопрос как этот код должен работать(составление карты of byte)?
^_^
WOLFak вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь KpeHDeJIb Помощь студентам 4 04.07.2008 11:52
МНЕ НУЖНА ПОМОЩЬ Акашаев Нурлан Общие вопросы Delphi 4 29.06.2008 21:07
Нужна помощь londoner Общие вопросы Delphi 2 05.02.2007 14:23