Работа с регионами


Содержание

Работа с регионами

Отправка запчастей в любой регион России через ТК

Находитесь в другом регионе? Нет проблем! Мы можем отправить Вам запчасти через транспортную компанию.

Порядок заказа:

  1. Отправляете запрос со списком необходимых запчастей на почту. Отправить запрос. (Указываете необходимость отправки запчастей в регион);
  2. Согласовываете детали заказа с менеджерами по телефону. В соответствии со ст.ст. 8, 10, 26.1 Закона РФ от 07.02.1992 № 2300-1 «О защите прав потребителей» на момент приобретения запчастей своевременно предоставляется вся полная, объективная, необходимая и достоверная информация о заказываемых запчастях, обеспечивающая возможность правильного выбора запчастей, в том числе и информация, касающаяся производителя запчастей, их состояния и имеющихся недостатках;
  3. Заполняете форму отправки запчастей;
  4. Вам на почту приходит копия формы отправки. Обязательно проверьте правильность данных перед оплатой;
  5. Рассчитайте стоимость доставки:
  6. Мы формируем счет и отправляем его Вам на почту (счет действителен 2 дня с момента выставления);
  7. Оплачиваете всю сумму заказа (Оплатой заказа Вы подтверждаете свое согласие с условиями отправки);
  8. После оплаты , мы отправляем заказ в соответствии с формой отправки, заполненной Вами;
  9. Копию транспортной накладной отправляем Вам на почту.

Условия отправки:

  1. Заполнение и отправка формы отправки запчастей;
  2. 100% предоплата заказа до отправки;
  3. Отправка происходит через Деловые линии, СДЭК или ПЭК;
  4. Доставка до транспортной компании бесплатно;
  5. Отправка запчастей осуществляется только в жесткой обрешетке, которую делает транспортная компания. Если вы не согласны, обязательно укажите это в письме менеджеру и в форме отправки (в этом случае ТК не несет ответственность за сохранность деталей);
  6. Оплата услуг ТК при получении груза. Посмотрите на сайте ближайший город доставки и тарифы Деловые линии, СДЭК или ПЭК;
  7. В случае порчи груза в результате действий транспортной компании, претензии предъявляются в транспортную компанию, при отправке заявляется оценочная стоимость груза, чек прилагается к грузу внутри формы отправки, наклеенной на груз. Претензию можно предъявить в размере этой суммы плюс сумма доставки;
  8. Отправка производится 2 раза в неделю — Вторник, Пятница;

  9. Внимание. БУ запчасти не подлежат возврату после их отправки. (Состояние запчастей подтверждается фотографиями по почте до отправки). Согласно главе XVIII «Особенности продажи непродовольственных товаров, бывших в употреблении» постановления Правительства РФ от 19.01.1998 № 55 (ред. от 23.12.2020) «Об утверждении Правил продажи отдельных видов товаров, перечня товаров длительного пользования, на которые не распространяется требование покупателя о безвозмездном предоставлении ему на период ремонта или замены аналогичного товара, и перечня непродовольственных товаров надлежащего качества, не подлежащих возврату или обмену на аналогичный товар других размера, формы, габарита, фасона, расцветки или комплектации» сведения, характеризующие состояние бывшего в употреблении товара, в том числе его недостатки, указываются на товарном ярлыке.

Получение груза в ТК:

  1. Осмотрите груз до подписания каких-либо документов;
  2. Производите оплату за перевозку только после того как осмотрите груз;
  3. При повреждении з/ч в процессе перевозки необходимо писать претензию в транспортную компанию;
  4. Претензию можно предъявлять в размере суммы чека плюс сумма доставки (оценочная стоимость(ценность) заявляется при отправке);

Дополнительная информация:

Для отправки необходимы:

  • Город доставки;
  • ФИО получателя;
  • Паспортные данные (серия, номер, кем и когда выдан) (Необходимы для ТК);
  • Контактный телефон получателя.

Внимание. БУ запчасти не подлежат возврату после их отправки. (Состояние запчастей подтверждается фотографиями по почте до отправки).
Согласно главе XVIII «Особенности продажи непродовольственных товаров, бывших в употреблении» постановления Правительства РФ от 19.01.1998 № 55 (ред. от 23.12.2020) «Об утверждении Правил продажи отдельных видов товаров, перечня товаров длительного пользования, на которые не распространяется требование покупателя о безвозмездном предоставлении ему на период ремонта или замены аналогичного товара, и перечня непродовольственных товаров надлежащего качества, не подлежащих возврату или обмену на аналогичный товар других размера, формы, габарита, фасона, расцветки или комплектации» сведения, характеризующие состояние бывшего в употреблении товара, в том числе его недостатки, указываются на товарном ярлыке.

Карьера

Группа компаний «Регион», работающая на финансовом рынке c 1995 года, приглашает в свою команду Ведущего разработчика С# + MS SQL.

Группа компаний «Регион», работающая на финансовом рынке c 1995 года, приглашает в свою команду Ведущего разработчика С#.

До приглашения на собеседование просим сделать задание.

Страховая компания «Югория Жизнь», входящая в Группу компаний «РЕГИОН», приглашает на вакансию «Программист 1С 8»

Желательно опыт работы компания финансового сектора
Приветствуется знание SQL/опыт разработки и администрирования MS SQL Server

Страховая компания «Югория Жизнь», входящая в Группу компаний «РЕГИОН», приглашает на вакансию

Страховая компания «Югория Жизнь», входящая в Группу компаний «РЕГИОН», приглашает на вакансию «Специалист отдела учета и сопровождения договоров»

Страховая компания «Югория Жизнь», входящая в Группу компаний «РЕГИОН», приглашает на вакансию «Актуарий»

Страховая компания «Югория Жизнь», входящая в Группу компаний «РЕГИОН», приглашает на вакансию

Страховая компания «Югория Жизнь», входящая в Группу компаний «РЕГИОН», приглашает на вакансию «Специалист отдела учета и сопровождения договоров»


В одну из компании ГК Региона в ГСК Югория требуется Коуч/Территориальный менеджер по развитию продаж (Сургут):

ГК «РЕГИОН» более 20 лет. Все эти годы мы создавали команду талантливых и целеустремленных людей, и высоко ценим интеллект, творческий подход и преданность делу.

188 сотрудников РЕГИОНа имеют квалификационные аттестаты специалистов рынка ценных бумаг! Большая часть из нас работает на финансовом рынке более 10 лет!

РЕГИОН — это неограниченные возможности для профессионального развития и карьерного роста. Свой путь от стажеров и рядовых сотрудников до глав крупнейших и компаний здесь прошли Сергей Судариков (партнер ГК РЕГИОН), Андрей Жуйков (партнер ГК РЕГИОН), Алексей Кузнецов (руководитель «Услуги на рынке долгового капитала» и «Торговые операции»), Анна Зайцева (руководитель «Спецдепозитарий»), Екатерина Зайцева (управление активами на финансовых рынках), Ольга Конышева (управление активами на рынке недвижимости) и многие другие.

Для нас важно, что мы не просто делаем операции на финансовом рынке, а тем самым помогаем приумножать пенсионные накопления миллионов россиян, возводить дома и развивать экономику России.

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

Мы всегда открыты для новых идей, для активных и сильных людей. Добро пожаловать в нашу команду — КОМАНДУ «РЕГИОН»!

Работа с регионами. Продажа и доставка напольных покрытий по всей России

Особое внимание компания ООО «Магазин пола» уделяет работе с регионами России. На протяжении 5 лет наша команда удовлетворяет запросы покупателей от Калининграда до Владивостока, от Лабытнанги до Новосибирска. Благодаря четкой и отлаженной работе наших надежных партнеров в сфере логистики, таких как ПЭК, «Деловые линии», «ЖелДорЭкспедиция», Кит, ДаТранс наши покупатели в регионах получают качественный и надежный линолеум и ламинат по выгодной цене точно в срок.

Сейчас для наших покупателей в регионах в целях экономии времени и средств открываются склады на удалении порядка 500 км от Москвы. В случае если интересующей вас продукции нет в наличии, в зависимости от страны производства и наличия на складах, срок поставки составит от 1 до 9 недель.

Как мы работаем с покупателями из регионов России?

Внимание! Работа с регионами осуществляется только по безналичному расчету*.

Оформление заказа:

— В нашем Интернет-магазине через сервис JivoSite;

— По эл.почте (отправляете заказ на info@magazin-pola.ru);

— По телефону 8 (800) 333-45-69 (Звонок по России бесплатный) через наших менеджеров;

— После уточнения всех нюансов, наша компания высылает на ваш контактный e-mail счет на оплату материалов.

Доставка до ТК и отправка заказа в Ваш город:

— Отгрузка заказа с нашего склада в Москве осуществляется исключительно по 100% предоплате;

— Мы отправляем заказ в день поступления оплаты на наш расчетный счет или на следующий день до транспортной компании. Стоимость доставки до ТК можно посмотреть тут.

— В этот же день отправляем Вам по электронной почте номер накладной или скан документа транспортной компании;

— После получения Вами заказа, отправляем по почте России оригиналы документов для Вашей бухгалтерии.

Экономьте на логистике вместе с ООО «Магазин пола»!

Для региональных покупателей доступны к покупке линолеум различных типов:


Для просмотра всех цветов в представленных ниже коллекциях воспользуйтесь зеленой кнопкой Подробнее.

15 городов России, где легче всего искать работу

Компания HeadHunter по просьбе Сравни.ру составила список из 15 городов России с наибольшим количеством вакансий. В лидерах оказались Москва, Санкт-Петербург и Новосибирск.

В июне 2020 года число вакансий на hh.ru на 57% превысило показатель июня прошлого года. Больше всего специалистов ищут в столице — за первый месяц лета работодатели разместили 109 596 вакансий со средней зарплатой в 62 449 ₽. В 2,5 раза меньше предложений о работе в Санкт-Петербурге — 44 310 со средним окладом 49 484 ₽. Новосибирску требуется 10 647 специалистов, которым готовы заплатить в среднем по 42 985 ₽.

В Москве и Санкт-Петербурге больше вакансий, но и конкуренция за них выше: в среднем на одно предложение работодателя в столице приходится 7 активных резюме кандидатов, в городе на Неве — 6,3. По всем регионам России этот показатель равен 4,5. Самая высокая конкуренция в столице наблюдается за позиции уровня топ-менеджмента — почти 17 активных резюме в расчёте на одну вакансию. Немного ниже показатель для государственной службы — 16,3.

Замыкает список городов с высоким спросом на работников Волгоград, где компании хотят закрыть 3 925 вакансий. Самая низкая средняя зарплата среди топ-15 наиболее активных в поиске персонала городов — в Омске — 35 868 ₽.

Лидер среди размещенных предложений во всех вошедших в список городах — вакансия менеджера по продажам. Также в топ входят предложения для менеджеров по работе с клиентами, продавцов-консультантов и бухгалтеров.

Согласно данным Росстата, средняя заработная плата в России составляет 43 381 ₽ (данные на апрель 2020). При этом самый высокий доход получают жители Ямало-Ненецкого автономного округа — 112 884 ₽, а самый низкий — республики Дагестан — в среднем 23 383 ₽ в месяц.

Настроения на рынке

Исследование хедхантинговой компании Kelly Services, в рамках которого она опрашивает как работодателей, так и работников, показало, что первые более оптимистично оценивают ситуацию на рынке труда в 2020 году: почти половина компаний планирует нанимать новых людей или проводить индексацию заработных плат. В то же время половина работников считает, что зарплаты не растут, а две трети готовы сменить текущую работу. Опрошенные соискатели отметили увеличение продолжительности поиска новой работы (67%) и рост требований работодателей (63%). Большинство из них считает, что число вакансий не растёт или вообще снижается — в сумме доля таких респондентов составила 78%.

По данным службы исследований HeadHunter, в 2020 году было опубликовано на 10% больше вакансий, чем годом ранее, и на 2020 год специалисты компании прогнозируют рост этого показателя на 7–12%. Лидерами по количеству предложений о работе стали сферы продаж и информационных технологий. Количество активных резюме за год увеличилось на 12%.

Около трети опрошенных HeadHunter соискателей рассказали, что в 2020 году их работодатели сокращали персонал или количество рабочих мест (например, объединяли должности). Еще по 20% упоминали снижение премий или зарплат.

В прошлом году ЦБ указывал на признаки дефицита на рынке труда, связанного с низкими зарплатами и нехваткой высококвалифицированных кадров. Формирование такого дефицита отмечало и Министерство экономического развития.

Илон Маск рекомендует:  Что такое код ocidefinebyname

Показатели безработицы действительно сокращаются. В мае 2020 года уровень безработицы в России опустился до 4,7%, снизившись по сравнению с маем 2020 года на 0,5 процентных пункта. В 2020 году он составлял 5,5%.

10 советов для развития региональных продаж

Для увеличения продаж многие компании практикуют расширение географии деятельности. С чего начинать региональные продажи? Реанонс статьи Николая Сибирева об освоении новых рынков сбыта.

Начинающий региональный менеджер часто пытается найти информацию, что и в какой последовательности ему надо делать для развития региональных продаж. Даже региональный директор не всегда хорошо понимает, что надо делать его подчиненным. Можно ли говорить о типовом алгоритме работы менеджера, перед которым поставлена задача освоить новые рынки?

Да, можно! Только это не универсальный алгоритм, на всех рынках он работать не будет, но позволит избежать многих типовых ошибок при начале работы.

Где этот алгоритм работать не будет:

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

1) Надо выбрать один регион, с которого можно начинать

На примере одного региона надо отработать все технологии, которые будут использоваться в других местах. Типичная ошибка, когда компания сразу пытается «проявиться» во всех регионах.

Москва – это нетиповой, особый рынок. На первый взгляд он безумно заманчивый, но конкуренция там самая большая. Еще 10 лет тому назад, чтобы начать работать с регионами, надо было выйти в Москву и оттуда продавать далее. Сейчас ситуация совершенно другая: чтобы освоить другие рынки, в столицу выходить необязательно. В Санкт-Петербурге тоже высокая доля сетевого бизнеса, по некоторым неофициальным оценкам город считается «столицей сетевого ритейла». Это весомый фактор.

Как выбрать регион? Критерий далеко не маркетинговый, но очень практичный – вечером сел на поезд, утром доехал. В среднем это получается в пределах 500-600 км.


Наиболее оптимальный способ развития региональных продаж – это планомерная последовательность своих действий. Достигнув запланированных результатов в отдельном регионе, можно с учетом накопленного опыта развивать следующий.

Как ни парадоксально, если часть региональных менеджеров тупо обзванивают иногородние компании по местным «желтым страницам», а другие работают по алгоритму, результат будет различным. В первом случае будет бурная активность, а во втором – быстрые результаты.

В случае, когда стоит задача развития региональных продаж в масштабах всей России, вначале целесообразно разработать один регион, а потом последовательно все остальные.

2) Составить план текущей работы с горизонтом планирования не менее чем на три месяца

Этот план должен включать календарный график последовательности задач, которые вы планируете решить. «Чтобы выиграть битву, надо продумать план сражения».

3) Составление «дистрибутивной карты»

После выбора нового рынка, первая задача будет заключаться в том, чтобы собрать информацию «кто есть кто» в этом регионе. Для этого используется методика составления дистрибутивной карты. На ее составление уходит от двух недель до одного месяца. Составление дистрибутивной карты региона будет вызывать затруднения только первый раз на конкретном товарном рынке. Дальше она будет повторяться с небольшими модификациями.

Разные товарные рынки имеют свою собственную специфику по товаропроводящим потокам. Если вы пропустили этот совет, то вы выходите в регион с закрытыми глазами, не имея ни малейшего представления о том, что там происходит и с кем надо начинать сотрудничество.

4) Алгоритмы сбора информации

На первый взгляд, собрать информацию о регионе довольно просто, но это только на первый взгляд, до тех пор, пока вы с этой задачей не сталкивались. Алгоритмы сбора информации надо заранее продумать, они могут поменяться в ходе работы, но об этом надо позаботиться предварительно. Источники информации в регионе могут быть различными: конечные клиенты, рекрутинговые агентства, консалтинговые компании, рекламные/промоутерские компании и т.д. Для каждого источника информации продумывается заранее своя легенда.

Чем тщательнее вы готовите алгоритмы сбора информации, тем эффективнее вы сможете решить предыдущую задачу и более грамотно подготовить план развития региона.

5) Выбрать «целевую» группу региональных клиентов

В зависимости от задач регионального развития и ресурсов вы должны выбрать «целевую» группу региональных клиентов, которые для вас представляют интерес. Скорее всего, что через шесть месяцев эта «целевая» группа клиентов должна быть расширена.

6) Программа продвижения

Дальше можно думать о программе продвижения – как и каким образом вы будете помогать своим региональным клиентам продавать вашу продукцию. Вы должны иметь несколько вариантов, а не один единственный.

При любой программе продвижения вы должны оценить ее эффективность. Другими словами, если при проведении программы продвижения вы не сможете оценить ее эффективность, то лучше ее не делать. Например, если вы региональному клиенту даете скидку, но при этом не понимаете за что, то лучше ее не давать. Точка зрения «мы им даем скидку, а остальное – это их проблемы» далеко не самая продуктивная.

7) Подготовка к переговорам

Да, я понимаю, что это банальный совет, но тем не менее. Просто помните, что любая импровизация готовится заранее. В этой связи, несколько рекомендаций.

  • Заранее сделайте анализ по конкурентным товарам/предложениям, которые есть в регионе: цена/ товар/качество. Надо заранее придумать конкурентные преимущества, даже если их немного.
  • Основная цель регионального партнера – это заработать денег. В этом смысле любое ваше предложение будет оцениваться насколько «легко» и «быстро» он сможет получить доход. В свою очередь, все свои предложения ведите исходя из этого предположения, насколько выгодно ему сотрудничество с вашей компанией. Это сильно упрощает переговоры.
  • По телефону вести переговоры можно, но не очень целесообразно. На данном этапе по телефону лучше договориться о встрече и о предварительной заинтересованности.
  • В любом случае переговоры с региональным партнером – это торговля и он заинтересован в наиболее выгодных условиях для себя. У вас слишком мало информации о том, что реально происходит в регионе, чтобы серьезно обсуждать свое предложение с потенциальным партнером.

8) Подготовка к командировке

Что такое план командировки, я думаю, все знают. Однако мы сейчас говорим о первой командировке в тот регион, который вы хотите развивать.

А) Срок командировки. Он может различаться в зависимости от специфики вашего рынка. Но наиболее целесообразно планировать командировку на несколько рабочих дней.

Первый день – это знакомство с новым местом, сбор первичной информации, встречи с теми, кто может рассказать, что происходит в регионе, то есть, не с партнерами. За этот день вы должны понять для себя специфику данного региона и его особенности.

Второй день – это знакомство с вашими будущими региональными партнерами. Не всегда целесообразно сразу проводить окончательные переговоры по своему предложению, надо иметь возможность взять «тайм-аут» на размышления, на мнение «центрального офиса» и т.д. Я думаю, понятно, что у вас должны быть намечены встречи, по меньшей мере, с тремя-пятью представителями компаний, которые для вас представляют интерес. Именно в ходе встречи вы можете оценить для себя перспективность данных партнеров. Есть много специализированных методик, которые могут помочь решить эту задачу.


Третий день – это согласование вашего предложения и достижение договоренностей о сотрудничестве. Рекомендую по итогам каждого рабочего дня готовить отчет для себя. Это вам позволит систематизировать и структурировать полученную информацию. Более того, через несколько месяцев вы будете смотреть на эти отчеты уже совершенно «другими» глазами.

В) Когда будете составлять план командировки, не стесняйтесь его обсудить с руководством. Могут быть дельные советы и рекомендации. Более того, могут быть поставлены дополнительные задачи, которые могут вам помочь в решении ваших задач. К руководству можно по-разному относиться, но среди них попадаются вполне «адекватные» люди.

С) Когда будете составлять план командировки с разбивкой по дням, не забудьте распланировать временной график ваших задач. Это позволит вам успеть решить все запланированные дела.

D) Заранее определите, по каким вопросам и как лучше вам связаться с центральным офисом. Возможно, у вас могут возникнуть вопросы, которые лучше сразу обсудить с офисом.

9) Контроль и анализ

Переговоры с вашим региональным партнером вы провели, контракт заключили, первую поставку сделали. В этой ситуации расслабляться нельзя. Это только пробная поставка продукции. Для вас основная задача – это контроль и анализ того, как продукция начинает продаваться в регионе. Основное контактное лицо – не служба закупки, а коммерческий директор или начальник отдела продаж.

10) Дальнейшее развитие продаж

В зависимости от специфики продукции, ваши региональные партнеры через три месяца выйдут на «стабильный» оборот продаж. После этого надо планировать дальнейшее развитие продаж в регионе, правда, это уже другой алгоритм.

Работа с регионами

Windows API предоставляет набор функций, позволяющих описать произвольную (при желании — достаточно сложную) геометрическую фигуру, которая потом может использоваться при работе с окнами, или, в терминологии Delphi, элементами управления. Использование может заключаться, например, в отрисовке на холсте, в задании специфического региона обновления окна, и т.д. Помимо таких вот относительно невинных возможностей, технология регионов позволяяет также глумиться над благородными очертаниями любого потомка TWinControl (иными словами, любым контролом, имеющим Handle, aka TForm, TButton, и т.д.). Особенно широко регионы используются в формах, при их отрисовке и обновлении. Итак, для начала, давайте разберёмся, что такое этот самый регион.

Win32 SDK регион определяет следующим образом:

(имеется в виду, что есть стандартная функция, определяющая входит ли точка (X,Y) в наш регион).

В SDK упомянуты три основных типа регионов: прямоугольные, эллиптические, и полигональные. О чётвёртом типе, прямоугольном с закруглёнными краями, стыдливо умалчивается, ну да и фиг с ним. Видимо это связано с тем, что его можно получить из первых двух. Дело в том, что регионы могут комбинироваться между собой с применением логических операций OR, XOR и т.д. Но к этому мы вернёмся позже.

С точки зрения Windows, регион является обыкновенным объектом GDI, задаваемым дескриптором HRGN. В Delphi также доступен этот тип, и объявление его выглядит следующим образом:

Как видим, ничего сверхъестественного. По сути это указатель на некую структуру в памяти. Структура эта описана следующим образом:

_RGNDATA = record
rdh : TRgnDataHeader ;
Buffer : array [ 0 .. 0 ] of CHAR ;
Reserved : array [ 0 .. 2 ] of CHAR ;
end ;

Что примечательно, в Win32 SDK _RGNDATA объявлена немного иначе. Наиболее любопытный член этой записи, безусловно, TRgnDataHeader. В модуле Windows.pas фигурирует и он:

_RGNDATAHEADER = packed record
dwSize : DWORD ;
iType : DWORD ;
nCount : DWORD ;
nRgnSize : DWORD ;
rcBound : TRect ;
end ;

Вот его стоит рассмотреть подробнее.

dwSize Указывает размер заголовка (т.е. _RGNDATAHEADER) в байтах;
iType Тип региона, всегда равен RDH_RECTANGLES = 1;
nCount Кол-во прямоугольников, из которых составлен регион;
nRgnSize Размер буфера, необходимого для получения структуры TRect, указывающей координаты прямоугольников, составляющих регион. Если размер неизвестен, поле может быть равно нулю;
rcBound Координаты прямоугольника, в который вписан регион.

Вот именно эта структура и задаёт регион, как таковой, и именно с ней работают практически все функции API. Пора познакомиться с ними поближе.
Условно все эти функции можно разбить на три группы: создание/удаление, отрисовка и прочие. Расмотрим их все по порядку. Для удобства я буду приводить не си-шные декларации из SDK, а паскалевские декларации, объявленные в модуле Windows, ибо именно с ними нам и предстоит работать.

Функция Синтаксис Описание
CombineRgn function CombineRgn (p1, p2, p3: HRGN; p4: Integer): Integer; stdcall; Создаёт новый регион p1, комбинируя регионы p2 и p3 на основе режима p4
CreateEllipticRgn function CreateEllipticRgn (p1, p2, p3, p4: Integer): HRGN; stdcall; Создаёт эллиптический регион по четырём координатам
CreateEllipticRgnIndirect function CreateEllipticRgnIndirect (const p1:TRect): HRGN; stdcall; Создаёт эллиптический регион, впсанный в заданный прямоугольник p1
CreatePolygonRgn function CreatePolygonRgn (const Points; Count, FillMode: Integer): HRGN; stdcall; Создаёт полигональный регион по массиву точек Points с числом вершин Count с режимом заливки FillMode
CreatePolyPolygonRgn function CreatePolyPolygonRgn (const pPtStructs; const pIntArray; p3, p4: Integer): HRGN; stdcall; Создаёт регион, состоящий из серии полигонов, задаваемых массивом точек pPtStructs, число вершин каждого из которых указывается в массиве pIntArray с общим числом вершин p3 и режимом заливки p4
CreateRectRgn function CreateRectRgn (p1, p2, p3, p4: Integer): HRGN; stdcall; Создаёт прямоугольный регион по четырём координатам
CreateRectRgnIndirect function CreateRectRgnIndirect (const p1: TRect): HRGN; stdcall; Создаёт прямоугольный регион по заданному прямоугольнику p1
CreateRoundRectRgn function CreateRoundRectRgn (p1, p2, p3, p4, p5, p6: Integer): HRGN; stdcall; Создаёт прямоугольный регион по координатам p1-p4 с эллиптически закруглёнными краями с высотой эллипса скругления p5 и шириной p6
ExtCreateRegion function ExtCreateRegion (XForm: PXForm; Count: DWORD; const RgnData: TRgnData): HRGN; stdcall; Создаёт регион по его данным RgnData размером Count с указанной трансформацией XForm
DeleteObject function DeleteObject (p1: HGDIOBJ): BOOL; stdcall; Удаляет регион и освобождает все, занятые под него ресурсы
Илон Маск рекомендует:  getcwd - Получить имя текущего рабочего каталога

Надо сказать, что последняя функция DeleteObject не фигурирует в разделе по работе с регионами в явном виде, т.к. предназначена она для более широкого использования. По большому счёту, она удаляет любой логический объект GDI (перо, кисть, шрифт, битмап) и освобождает все отведённые под этот объект ресурсы. Для полных даунов SDK ласково уточняет, что после вызова сей функции ссылка на удаляемый объект становится неопределённой.

Функция Синтаксис Описание
SetPolyFillMode function SetPolyFillMode (DC: HDC; PolyFillMode: Integer): Integer; stdcall; Устанавливает режим заливки регионов PolyFillMode для контекста dc
GetPolyFillMode function GetPolyFillMode (DC: HDC): Integer; stdcall; Возвращает текущий режим заливки регионов на конктексте dc
PaintRgn function PaintRgn (DC: HDC; RGN: HRGN): BOOL; stdcall; Рисует регион rgn на контексте dc текущей кистью контекста
FillRgn function FillRgn (DC: HDC; hrgn: HRGN; hbr: HBRUSH): BOOL; stdcall; Заливает регион hrgn на контексте dc с заданной кистью hbr
FrameRgn function FrameRgn (DC: HDC; hrgn: HRGN; hbr: HBRUSH; Width, Height: Integer): BOOL; stdcall; Рисует на контексте dc рамку вокруг региона hrgn кистью hbr соответствующей ширины и высоты Width и Height
Функция Синтаксис Описание
EqualRgn function EqualRgn (p1, p2: HRGN): BOOL; stdcall; Проверяет, являются ли размеры и форма регионов p1 и p2 идентичными
InvertRgn function InvertRgn (DC: HDC; p2: HRGN): BOOL; stdcall; Инвертирует цвета региона p2 на контексте dc
OffsetRgn function OffsetRgn (RGN: HRGN; XOffset, YOffset: Integer): Integer; stdcall; Сдвигает регион rgn по осям X и Y на XOffset и YOffset соответственно
SetRectRgn function SetRectRgn (Rgn: HRgn; X1, Y1, X2, Y2: Integer): BOOL; stdcall; Конвертирует регион rgn в прямоугольный, заданный четырьмя координатами
GetRgnBox function GetRgnBox (RGN: HRGN; var p2: TRect): Integer; stdcall; Возвращает прямоугольник p2, в который вписан указанный регион rgn
RectInRegion function RectInRegion (RGN: HRGN; const Rect: TRect): BOOL; stdcall; Определяет, «влазит» ли пряпоугольник Rect в границы региона rgn
PtInRegion function PtInRegion (RGN: HRGN; X, Y: Integer): BOOL; stdcall; Определяет, входит ли точка (X,Y) в регион rgn
GetRegionData function GetRegionData (RGN: HRGN; p2: DWORD; p3: PRgnData): DWORD; stdcall; Заполняет данными региона rgn буфер PRgnData размером p2, при pRgnData = nil — возвращает размер региона в памяти.


Каким же образом это безобидное и абстрактное, в общем-то, понятие взаимодействует со вполне реальными элементами управления? Ведь все перечисленные функции служат, по большому счёту, для того, чтобы создать некую замысловатую фигуру и тем или другим способом отрисовать её в чьём-то контексте, DC, а о том, чтобы каким-то образом изменить форму той же кнопки и речи даже нет. Дело здесь в том, что мы пока мельком рассмотрели функции, касающиеся создания и манипуляций регионами. А ещё существуют функции работы с окнами, и вот там-то нам все наши созданные регионы и пригодятся. Поглядим, что это за функции.

Функция Синтаксис Описание
SetWindowRgn function SetWindowRgn(hWnd: HWND; hRgn: HRGN; bRedraw: BOOL): Integer; stdcall; Устанавливает для окна с дескриптором hWnd регион отображения hRgn, при взведённом флаге bRedraw — перерисовывая окно
GetWindowRgn function GetWindowRgn(hWnd: HWND; hRgn: HRGN): Integer; stdcall; Возвращает регион отображения hRgn для окна с дескриптором hWnd

Сразу оговорюсь, что на самом деле этих функций гораздо больше, равно как и область применения регионов гораздо ширше. Но нас они пока не волнуют. Итак, мы знаем, как создать и модифицировать регион, как скормить его окну (ибо параметр hWnd есть не что иное, как WinControl.Handle), и как его уничтожить. Настало время слегка поэксперементировать.

Запускаем среду, заводим новый проект, тщательно сохраняем куда попало. В обработчике OnCreate пишем первое, что, по идее, приходит в голову:

Результатом запуска окажется симпатичный эллипс на экране. А теперь попробуйте дописать такой простенький обработчик на OnKeyPress:

В момент выполнения программы при нажатии «p» мы,
по идее должны получить картинку нашей формы. Но как это ни покажется странным, мы получим картинку полной, т.е. неусечённой формы. Собственно, если взглянуть на реализацию GetFormImage — ничего странного не обнаружиться, создаётся виртуальный битмап, на который себя отрисовывает форма и все контролы на ней. Но об этой забавной фиче стоит помнить: для любой, самой извратной формы всегда можно получить её первоначальную картинку функцией GetFormBitmap, а любой загруглённый/продырявленный/звездообразный контрол всегда можно отрисовать на любой левый канвас в его первозданном виде функцией PaintTo.

Аналогичным образом создаются и другие типы регионов, единственное внимание стоит, пожалуй, уделить полигональным. Начнём с самого простого. В делкарации функции есть интересный параметр: FillMode. Согласно SDK он может принимать два значения — ALTERNATE и WINDING. Со вторым всё просто — вычисляются границы, и всё, что между — заливается текущей кистью. А вот первый при заливке анализирует, по какую сторону ребра (чётную или нечётную) он находится. Что это означает, мы увидим на следующем примере.

Запустите программу, посмотрите на результат (она превратит форму в звезду), и поменяйте значение параметра FillMode на ALTERNATE. И запустите её снова. На тот случай, если по каким-то причинам вам влом напрягаться со всякими там модами, ниже приведёны примеры того, что вы могли увидеть:

FillMode = WINDING FillMode = ALTERNATE

Обратите внимание, что если вы кликаете мышкой на «дырку», сообщение получает окно, лежащее под вашей формой. Если форма выведена на пустом десктопе, вы вполне успешно можете из «дырки» вызвать контекстное меню экрана. Т.е. это дейтсвительно «дыра», а не просто прозрачная отрисовка. Теперь разберёмся, как работает функция CreatePolyPolygonRgn. Её предназначение в том, чтобы рисовать сразу несколько регионов, которые могу даже не пересекаться. А могу — и пересекаться, именно для этого и нужен параметр FillMode. Поглядим, как это выглядит, и что оно делает:

Важно помнить, что первый параметр, вновь создаваемый регион, должен существовать до вызова функции.
Из первой серии функций осталось только разобраться с комбинированием регионов, о чем и пойдёт речь далее.

Результат комбинирования определяется четвёртым параметром функции CombineRgn. Давайте посмтрим, какие значения он может принимать.

RGN_ADD Пересечение двух регионов p2 и p3
RGN_COPY Создаёт копию региона p2
RGN_DIFF Вернёт часть p2, не являющуюся частью p3
RGN_OR Объединение двух регионов p2 и p3
RGN_XOR Объединяет регионы p2 и p3, исключая пересекающиеся области

Возвращаемые значения могут быть NULLREGION (пустой регион), SIMPLEREGION (один прямоугольник), COMPLEXREGION (всё остальное) и ERROR (нифига не создано). Посмотрим, как это выглядит на практике (чтобы не сильно мучитья, я просто дописывал предыдущий пример).

Нерасмотренной из первой группы функций осталась только ExtCreateRgn. Я сейчас не буду на ней заостряться, скажу только, что на пару с функцией GetRegionData, она может пригодиться, например, для сохранения и загрузки регионов в файл / из файла.

Регионы нужны не только для того, чтобы резать дырки в формах. Иногда они могут оказаться довольно полезным инструментом именно в своём «родном» качестве, т.е. для отрисовки на экране достаточно сложных геометрических фигур. Например, для вывода карт, представляющих собой совокупность ломанных линий, построенных по массивам точек. Создать такую линию нам уже не составит труда, пора разобраться, как её показать юзеру.

Из функций отрисовки две первые нам уже смутно знакомы: они делают тоже, что делает параметр FillMode (ALTERNATE/WINDING) для функций CreatePolygonRgn и CreatePolyPolygonRgn. GetPolyFillMode получает заданный для указанного контекста режим заливки, а SetPolyFillMode устанавливает его. Просто на этот раз речь идёт не о создании региона, а всего лишь о его отрисовке. Установленное значение будет иметь смысл для всех функций, заливающих регион, т.е. PaintRgn и FillRgn, при этом сам регион останется таким, каким он и был создан, а вот раскрашен будет по разному, в том случае, если он состоит из нескольких пересекающихся регионов. Для простых регионов типа прямоугольника или элипса установка данного значения ничего не меняет.

Итак. Давайте срочно что-нить создадим и нарисуем. Можно, конечно, сделать это в одной функции, например в OnCreate, но тогда изображение будет весьма недолговечным — до первой перерисовки формы. Поэтому поступим иначе: объявим private property fRgn, в OnCreate его инициализируем, в OnPaint будем его отображать, а в OnDestroy — уничтожим. Код методов представлен ниже:

procedure TForm1 . FormCreate ( Sender : TObject ) ;
begin
fRgn : = CreateEllipticRgn ( 10 , 10 , 200 , 200 ) ;
end ;

procedure TForm1 . FormDestroy ( Sender : TObject ) ;
begin
DeleteObject ( fRgn ) ;
end ;

procedure TForm1 . FormPaint ( Sender : TObject ) ;
begin
Canvas . Brush . Color : = clBlack ;
PaintRgn ( Canvas . Handle , fRgn ) ;
end ;

Следует помнить, что Функции отрисовки регионов всегда работают с цветом,
указанным в Canvas.Brush.Color. Даже рисуя бордюр (frame) использоваться будет не цвет Canvas.Pen, что, в общем-то, представляется более логичным, а цвет Canvas.Brush.

Ничего такой получился кружочек. Погребального вида. Давайте сделаем его более жизнерадостным, и заодно разберёмся, как работает FrameRgn:

У меня получилась такая вот картинка:

Насколько я могу судить, функции FillRgn и PaintRgn отличаются друг от друга только тем, что первая позволяет указать дескриптор кисти, не связанной с текущим canvas’ом. Сомнительная фича с точки зрения дельфей, т.к. манипулировать с текущим цветом кисти канваса всяко легче, чем создавать отдельный экземпляр класса TBrush. Вот, собственно, и всё об отрисовке. Примечательно то, что для того, чтобы нарисовать регион нам не нужно знать, что он из себя представляет. Мы просто передаём дескриптор одной и той же процедуре, а она отобразит на экране круг, овал, треугольник, звезду Давида — всё, что угодно.
Функции, представленные в разделе прочее ничего особенно интересного из себя не представляют, и, в общем-то, интуитивно понятны. поэтому рассотрим лишь некоторые из них.


Сделаем это на примере. Давайте озадачимся возможностью таскать мышкой по всей форме круг, созданный в предыдущем примере. Что нам нужно. Во-первых, запоминать, где началось перетаскивание (fStartX, fStartY). Во-вторых, флаг (fDragging), указывающий, что юзер действительно перетскивает наш регион, а не просто гоняет с экрана мух. В третьих, надо узнать, ткнул ли он на регион, а не мимо (PtInRegion). В четвёртых, надо двигать регион по мере того, как он двигает мышь (OffsetRgn). Вот, пожалуй, и всё. На этот раз текст модуля приведу полностью. Единственное что там стоит упомянуть — это свойство DoubleBuffered. Оно выставлено в TRUE, т.к. иначе появляется мерцание. Итак.

uses
Windows , Messages , SysUtils , Variants , >, Graphics ,
Controls , Forms , Dialogs ;

type
TForm1 = class ( TForm )
procedure FormCreate ( Sender : TObject ) ;
procedure FormDestroy ( Sender : TObject ) ;
procedure FormPaint ( Sender : TObject ) ;
procedure FormMouseDown ( Sender : TObject ; Button : TMouseButton ; Shift :
TShiftState ; X , Y : Integer ) ;
procedure FormMouseMove ( Sender : TObject ; Shift :
TShiftState ; X , Y : Integer ) ;
private
< Private declarations >
fDragging : boolean ;
fRgn : hRGN ;
fStartX ,
fStartY : integer ;
public
< Public declarations >
end ;

var
Form1 : TForm1 ;

procedure TForm1 . FormCreate ( Sender : TObject ) ;
begin
fRgn : = CreateEllipticRgn ( 10 , 10 , 200 , 200 ) ;
fDragging : = FALSE ;
DoubleBuffered : = TRUE ;
end ;

procedure TForm1 . FormDestroy ( Sender : TObject ) ;
begin
DeleteObject ( fRgn ) ;
end ;

procedure TForm1 . FormPaint ( Sender : TObject ) ;
var
bmp : TBitmap ;
begin
bmp : = TBitmap . Create ;
try
bmp . LoadFromFile ( ‘C:WINDOWS\Голубые кружева 16.bmp’ ) ;
Canvas . Brush . Bitmap : = bmp ;
PaintRgn ( Canvas . Handle , fRgn ) ;
Canvas . Brush . Color : = clBlack ;
FrameRgn ( Canvas . Handle , fRgn , Canvas . Brush . Handle , 2 , 2 ) ;
finally
Canvas . Brush . Bitmap : = nil ;
bmp . Free ;
end ;
end ;

procedure TForm1 . FormMouseDown ( Sender : TObject ; Button :
TMouseButton ; Shift : TShiftState ; X , Y : Integer ) ;
begin
if ( Button = mbLeft ) and ( PtInRegion ( fRgn , X , Y ) ) then begin
fDragging : = TRUE ;
fStartX : = X ;
fStartY : = Y ;
end ;
end ;

procedure TForm1 . FormMouseMove ( Sender : TObject ; Shift :
TShiftState ; X , Y : Integer ) ;
begin
if ( ssLeft in Shift ) and fDragging then begin
OffsetRgn ( fRgn , X — fStartX , Y — fStartY ) ;
fStartX : = X ;
fStartY : = Y ;
Refresh ;
end ;
end ;

procedure TForm1 . FormMouseUp ( Sender : TObject ; Button : TMouseButton ;
Shift : TShiftState ; X , Y : Integer ) ;
begin
fDragging : = FALSE ;
end ;

Как видим, абсолютно ничего сложного в работе с регионами нет. А вот возможности они дают довольно интересные. Фигуру любой формы можно раскрасить как угодно (в т.ч. и битмапом), вывести на экран, определить, входит ли точка (X,Y) в эту фигуру, двигать её, и многое ещё другое. Для полноты картины нам осталось только научиться сохранять регионы на диск и считывать обратно.

Как уже говорилось в самом начале, все данные о регионе храняться в структуре RGNDATA. Упоминалась также и функция, позволяющая эту структуру получить: GetRegionData. У этой функции есть приятная особенность: если в третий параметр передать nil, то она вернёт размер памяти, необходимый для сохранения региона.

Аналогичным образом можно и прочитать записанный на диск регион:

Работа с регионами

Работа с Регионами

Одним из приоритетных направлений работы нашей компании является работа с региональными клиентами.

Покупка картриджей в регионах России осуществляется с помощью транспортных компаний.

Покупка осуществляется от 20000р.

Схема работы при покупке картриджей в регионах:

  • Для начала Вам необходимо связаться с нами, сообщить какие картриджи и в каком количестве Вы хотите продать.
  • После согласования всех нюансов, Вы высылаете нам картриджи транспортной компанией. Для отправки Вам потребуются реквизиты, которые Вы можете узнать у наших менеджеров.
  • Сразу после отправки Вам следует сообщить нам информацию о грузе (дату отправки картриджей, какой транспортной компанией выслали).
  • После получения и проверки Ваших картриджей, мы производим оплату за поставленные картриджи удобным для Вас способом. Оплата осуществляется на следующий рабочий день после получения груза.

Доставка груза от отправителя до терминала транспортной компании в Москве оплачивает отправитель.

Работа с регионами

С 2003 года у нас появилось большое количество региональных клиентов, с которыми мы успешно сотрудничаем и сейчас. Наши клиенты находятся в Центральной России, в Поволжье, на Кубани, в Сибири, на Дальнем Востоке и за Полярным кругом.

По желанию клиента мы готовы осуществить доставку товара в любые регионы РФ.

Мы работаем с крупными транспортными компаниями «Деловые линии», «ПЭК», «РЖД» и другими, которые зарекомендовали себя как надежные перевозчики.

Доставка до пункта приема транспортной компании и оформление отправки производится оперативно нашими силами. Стоимость транспортировки груза по Москве до транспортной компании составляет 500 рублей.

Также вы всегда можете забрать товар на нашем складе в Москве по адресу: 2-й Южнопортовый проезд, д. 26А.

10 советов для развития региональных продаж

Для увеличения продаж многие компании практикуют расширение географии деятельности. С чего начинать региональные продажи? Реанонс статьи Николая Сибирева об освоении новых рынков сбыта.

Начинающий региональный менеджер часто пытается найти информацию, что и в какой последовательности ему надо делать для развития региональных продаж. Даже региональный директор не всегда хорошо понимает, что надо делать его подчиненным. Можно ли говорить о типовом алгоритме работы менеджера, перед которым поставлена задача освоить новые рынки?

Да, можно! Только это не универсальный алгоритм, на всех рынках он работать не будет, но позволит избежать многих типовых ошибок при начале работы.

Где этот алгоритм работать не будет:

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

1) Надо выбрать один регион, с которого можно начинать

На примере одного региона надо отработать все технологии, которые будут использоваться в других местах. Типичная ошибка, когда компания сразу пытается «проявиться» во всех регионах.

Москва – это нетиповой, особый рынок. На первый взгляд он безумно заманчивый, но конкуренция там самая большая. Еще 10 лет тому назад, чтобы начать работать с регионами, надо было выйти в Москву и оттуда продавать далее. Сейчас ситуация совершенно другая: чтобы освоить другие рынки, в столицу выходить необязательно. В Санкт-Петербурге тоже высокая доля сетевого бизнеса, по некоторым неофициальным оценкам город считается «столицей сетевого ритейла». Это весомый фактор.

Как выбрать регион? Критерий далеко не маркетинговый, но очень практичный – вечером сел на поезд, утром доехал. В среднем это получается в пределах 500-600 км.

Наиболее оптимальный способ развития региональных продаж – это планомерная последовательность своих действий. Достигнув запланированных результатов в отдельном регионе, можно с учетом накопленного опыта развивать следующий.

Как ни парадоксально, если часть региональных менеджеров тупо обзванивают иногородние компании по местным «желтым страницам», а другие работают по алгоритму, результат будет различным. В первом случае будет бурная активность, а во втором – быстрые результаты.

В случае, когда стоит задача развития региональных продаж в масштабах всей России, вначале целесообразно разработать один регион, а потом последовательно все остальные.

2) Составить план текущей работы с горизонтом планирования не менее чем на три месяца

Этот план должен включать календарный график последовательности задач, которые вы планируете решить. «Чтобы выиграть битву, надо продумать план сражения».

3) Составление «дистрибутивной карты»


После выбора нового рынка, первая задача будет заключаться в том, чтобы собрать информацию «кто есть кто» в этом регионе. Для этого используется методика составления дистрибутивной карты. На ее составление уходит от двух недель до одного месяца. Составление дистрибутивной карты региона будет вызывать затруднения только первый раз на конкретном товарном рынке. Дальше она будет повторяться с небольшими модификациями.

Разные товарные рынки имеют свою собственную специфику по товаропроводящим потокам. Если вы пропустили этот совет, то вы выходите в регион с закрытыми глазами, не имея ни малейшего представления о том, что там происходит и с кем надо начинать сотрудничество.

4) Алгоритмы сбора информации

На первый взгляд, собрать информацию о регионе довольно просто, но это только на первый взгляд, до тех пор, пока вы с этой задачей не сталкивались. Алгоритмы сбора информации надо заранее продумать, они могут поменяться в ходе работы, но об этом надо позаботиться предварительно. Источники информации в регионе могут быть различными: конечные клиенты, рекрутинговые агентства, консалтинговые компании, рекламные/промоутерские компании и т.д. Для каждого источника информации продумывается заранее своя легенда.

Чем тщательнее вы готовите алгоритмы сбора информации, тем эффективнее вы сможете решить предыдущую задачу и более грамотно подготовить план развития региона.

5) Выбрать «целевую» группу региональных клиентов

В зависимости от задач регионального развития и ресурсов вы должны выбрать «целевую» группу региональных клиентов, которые для вас представляют интерес. Скорее всего, что через шесть месяцев эта «целевая» группа клиентов должна быть расширена.

6) Программа продвижения

Дальше можно думать о программе продвижения – как и каким образом вы будете помогать своим региональным клиентам продавать вашу продукцию. Вы должны иметь несколько вариантов, а не один единственный.

При любой программе продвижения вы должны оценить ее эффективность. Другими словами, если при проведении программы продвижения вы не сможете оценить ее эффективность, то лучше ее не делать. Например, если вы региональному клиенту даете скидку, но при этом не понимаете за что, то лучше ее не давать. Точка зрения «мы им даем скидку, а остальное – это их проблемы» далеко не самая продуктивная.

7) Подготовка к переговорам

Да, я понимаю, что это банальный совет, но тем не менее. Просто помните, что любая импровизация готовится заранее. В этой связи, несколько рекомендаций.

  • Заранее сделайте анализ по конкурентным товарам/предложениям, которые есть в регионе: цена/ товар/качество. Надо заранее придумать конкурентные преимущества, даже если их немного.
  • Основная цель регионального партнера – это заработать денег. В этом смысле любое ваше предложение будет оцениваться насколько «легко» и «быстро» он сможет получить доход. В свою очередь, все свои предложения ведите исходя из этого предположения, насколько выгодно ему сотрудничество с вашей компанией. Это сильно упрощает переговоры.
  • По телефону вести переговоры можно, но не очень целесообразно. На данном этапе по телефону лучше договориться о встрече и о предварительной заинтересованности.
  • В любом случае переговоры с региональным партнером – это торговля и он заинтересован в наиболее выгодных условиях для себя. У вас слишком мало информации о том, что реально происходит в регионе, чтобы серьезно обсуждать свое предложение с потенциальным партнером.

8) Подготовка к командировке

Что такое план командировки, я думаю, все знают. Однако мы сейчас говорим о первой командировке в тот регион, который вы хотите развивать.

А) Срок командировки. Он может различаться в зависимости от специфики вашего рынка. Но наиболее целесообразно планировать командировку на несколько рабочих дней.

Первый день – это знакомство с новым местом, сбор первичной информации, встречи с теми, кто может рассказать, что происходит в регионе, то есть, не с партнерами. За этот день вы должны понять для себя специфику данного региона и его особенности.

Второй день – это знакомство с вашими будущими региональными партнерами. Не всегда целесообразно сразу проводить окончательные переговоры по своему предложению, надо иметь возможность взять «тайм-аут» на размышления, на мнение «центрального офиса» и т.д. Я думаю, понятно, что у вас должны быть намечены встречи, по меньшей мере, с тремя-пятью представителями компаний, которые для вас представляют интерес. Именно в ходе встречи вы можете оценить для себя перспективность данных партнеров. Есть много специализированных методик, которые могут помочь решить эту задачу.

Третий день – это согласование вашего предложения и достижение договоренностей о сотрудничестве. Рекомендую по итогам каждого рабочего дня готовить отчет для себя. Это вам позволит систематизировать и структурировать полученную информацию. Более того, через несколько месяцев вы будете смотреть на эти отчеты уже совершенно «другими» глазами.

В) Когда будете составлять план командировки, не стесняйтесь его обсудить с руководством. Могут быть дельные советы и рекомендации. Более того, могут быть поставлены дополнительные задачи, которые могут вам помочь в решении ваших задач. К руководству можно по-разному относиться, но среди них попадаются вполне «адекватные» люди.

С) Когда будете составлять план командировки с разбивкой по дням, не забудьте распланировать временной график ваших задач. Это позволит вам успеть решить все запланированные дела.

D) Заранее определите, по каким вопросам и как лучше вам связаться с центральным офисом. Возможно, у вас могут возникнуть вопросы, которые лучше сразу обсудить с офисом.

9) Контроль и анализ

Переговоры с вашим региональным партнером вы провели, контракт заключили, первую поставку сделали. В этой ситуации расслабляться нельзя. Это только пробная поставка продукции. Для вас основная задача – это контроль и анализ того, как продукция начинает продаваться в регионе. Основное контактное лицо – не служба закупки, а коммерческий директор или начальник отдела продаж.

10) Дальнейшее развитие продаж

В зависимости от специфики продукции, ваши региональные партнеры через три месяца выйдут на «стабильный» оборот продаж. После этого надо планировать дальнейшее развитие продаж в регионе, правда, это уже другой алгоритм.

Формы нестандартного вида

Работа с регионами (статья)

Содержание материала

Общее описание

Windows API предоставляет набор функций, позволяющих описать произвольную (при желании — достаточно сложную) геометрическую фигуру, которая потом может использоваться при работе с окнами, или, в терминологии Delphi, элементами управления. Использование может заключаться, например, в отрисовке на холсте, в задании специфического региона обновления окна, и т.д. Помимо таких вот относительно невинных возможностей, технология регионов позволяяет также глумиться над благородными очертаниями любого потомка TWinControl (иными словами, любым контролом, имеющим Handle, aka TForm, TButton, и т.д.). Особенно широко регионы используются в формах, при их отрисовке и обновлении.

Итак, для начала, давайте разберёмся, что такое этот самый регион.

Win32 SDK регион определяет следующим образом:

В Microsoft Windows регионом называется прямоугольник, полигон или эллипс (либо комбинация двух или более этих фигур), которые могут быть заполненны, нарисованы, инвертированы, обрамлены и могут использоваться для определения местонахождения курсора (имеется в виду, что есть стандартная функция, определяющая входит ли точка (X,Y) в наш регион).

В SDK упомянуты три основных типа регионов: прямоугольные, эллиптические, и полигональные. О чётвёртом типе, прямоугольном с закруглёнными краями, стыдливо умалчивается, ну да и фиг с ним. Видимо это связано с тем, что его можно получить из первых двух. Дело в том, что регионы могут комбинироваться между собой с применением логических операций OR, XOR и т.д. Но к этому мы вернёмся позже.

С точки зрения Windows, регион является обыкновенным объектом GDI, задаваемым дескриптором HRGN. В Delphi также доступен этот тип, и объявление его выглядит следующим образом:

HRGN = type LongWord;

Как видим, ничего сверхъестественного. По сути это указатель на некую структуру в памяти. Структура эта описана следующим образом:

Buffer: array [ 0 .. 0 ] of CHAR;

Reserved: array [ 0 .. 2 ] of CHAR;

Что примечательно, в Win32 SDK _RGNDATA объявлена немного иначе. Наиболее любопытный член этой записи, безусловно, TRgnDataHeader. В модуле Windows.pas фигурирует и он:

_RGNDATAHEADER = packed record

Вот его стоит рассмотреть подробнее.

dwSize: Указывает размер заголовка (т.е. _RGNDATAHEADER) в байтах;

iType: Тип региона, всегда равен RDH_RECTANGLES = 1;

nCount: Кол-во прямоугольников, из которых составлен регион;

nRgnSize: Размер буфера, необходимого для получения структуры TRect, указывающей координаты прямоугольников, составляющих регион. Если размер неизвестен, поле может быть равно нулю;

rcBound: Координаты прямоугольника, в который вписан регион.

Вот именно эта структура и задаёт регион, как таковой, и именно с ней работают практически все функции API. Пора познакомиться с ними поближе.

Условно все эти функции можно разбить на три группы: создание/удаление, отрисовка и прочие. Расмотрим их все по порядку. Для удобства я буду приводить не си-шные декларации из SDK, а паскалевские декларации, объявленные в модуле Windows, ибо именно с ними нам и предстоит работать.

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!

Илон Маск рекомендует:  Безлимитный хостинг в России от компании SmartApe
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL