Новые книги

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

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

Примеры я буду приводить на языке Object Pascal. В основном я работаю на нём, пишу на Delphi. Предвидя нападки со стороны поклонников C-подобных языков, скажу два тезиса:
Прямо сейчас мы становимся свидетелями эпохи, когда интернет становится неотъемлемой частью продуктов и услуг. В самое ближайшее время фраза «интернет отключен» будет звучать так же нелепо, как «электричество недоступно». А современным предпринимателям придется приспосабливаться к новым реалиям, одновременно адаптируя свои продукты и переосмысливая все сферы деятельности, ведь для достижения успеха привычные сценарии развития, принятые во время так называемой второй волны, окажутся неэффективными. Книга «Третья волна интернета» частично посвящена воспоминаниям о прошлом, частично – планам на будущее, а частично – это манифест о бескорыстном трудолюбии человека. Она поможет осознать свое место как предпринимателя в современном мире и заставит действовать. Да, будущее остается неопределенным, но именно в этом и заключается его привлекательность.

Вопрос и Ответ 55

Вопросы и Ответы


      55. Можно ли получить растровое изображение формы с заголовком и рамкой?

      Стандартные средства Delphi позволяют получать растровое изображение только внутренней части окна. Для получения изображения всего окна с заголовком и рамкой необходимо воспользоваться функциями API.

      Во-первых, получаем контекст всего окна функцией:

      function GetWindowDC(Wnd: HWnd): HDC;

      Затем копируем растровое изображение окна в компонент TImage (для примера). И освобождаем полученный контекст окна:

      function ReleaseDC(Wnd: HWnd; DC: HDC): Integer;

      Пример:

      ............

      procedure TForm1.Button1Click(Sender: TObject);
      VAR DC: hDC;
      begin

        DC := GetWindowDC(Handle);
        Image1.Picture.BitMap.Height := Height;
        Image1.Picture.BitMap.Width := Width;
        BitBlt(Image1.Picture.BitMap.Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY);
        ReleaseDC(Handle, DC);

      end;

      ............


...предыдущая страница следующая...
оглавление



"Вопрос и Ответ 55"
Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2024 .
При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны!
Время генерации страницы: 0.008