Новые книги

Как наилучшим образом представить Ваши идеи посредством диаграмм? Как удержать внимание аудитории?

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

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

И все это — на простых и понятных примерах из жизни милых и пушистых котиков, которые дарят нам множество приятных эмоций.

Вопрос и Ответ 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;

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

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


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