Новые книги

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

Книга предназначается, в первую очередь, бизнесменам и предпринимателям, маркетологам и руководителям IT-компаний, а также всем, кто интересуется SEO-рекламой и продвижением сайтов.
Что такое блог, сегодня знает каждый или практически каждый пользователь Интернета. И судя по стремительно возрастающему количеству блогов в Сети, для многих блогинг – достаточно серьезное увлечение. Но далеко не каждый знает, что это увлечение вполне может быть очень прибыльным. Как «заставить» блог приносить деньги? Как создать и раскрутить свой блог? Как выбрать целевую аудиторию и тематику? Ответы на эти и многие другие вопросы вы найдете в практическом руководстве Евгения Литвина.

Откройте для себя профессиональные секреты успеха, узнайте, как хобби может приносить прибыль!

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

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



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


      2. Как вставить растровое изображение в компонент ListBox?

      Для этого необходимо установить в инспекторе объектов поле Style в lbOwnerDrawFixed, при фиксированной высоте строки, или в lbOwnerDrawVariable, при переменной, и установить собственный обработчик события для OnDrawItem. В этом обработчике и надо рисовать растровое изображение.

      Пример:

      Рисуются изображения размером 32*16 (размер стандартного глифа для Delphi). Очень полезно при поиске нужного изображения для кнопок!

      Установить в инспекторе объектов для ListBox поле ItemHeight = 19, а поле Color = clBtnFace.

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

      { Загрузить список файлов в ListBox1 при нажатии на кнопку Load (например)}
      procedure TForm1.bLoadClick(Sender: TObject);
      VAR S : String;
      begin

        ListBox1.Clear;{чистим список}
        S := '*.bmp'#0; {задаем шаблон}
        ListBox1.Perform(LB_DIR, DDL_ReadWrite, Longint(@S[1])); {заполняем список}

      end;

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

      {Отобразить изображения и имена файлов в ListBox}
      procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: DrawState);
      VAR

        Bitmap : TBitmap;
        Offset : Integer;
        BMPRect: TRect;

      begin

        WITH (Control AS TListBox).Canvas DO BEGIN

          FillRect(Rect);
          Bitmap := TBitmap.Create;
          Bitmap.LoadFromFile(ListBox1.Items[Index]);
          Offset := 0;
          IF Bitmap <> NIL THEN BEGIN

            BMPRect := Bounds(Rect.Left+2, Rect.Top+2, (Rect.Bottom-Rect.Top-2)*2, Rect.Bottom-Rect.Top-2);
            {StretchDraw(BMPRect, Bitmap); Можно просто нарисовать, но лучше сначала убрать фон}
            BrushCopy(BMPRect,Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height), Bitmap.Canvas.Pixels[0, Bitmap.Height-1]);
            Offset := (Rect.Bottom-Rect.Top+1)*2;

          END;
          TextOut(Rect.Left+Offset, Rect.Top, ListBox1.Items[Index]);
          Bitmap.Free;

        END;

      end;

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

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


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