Kniga-Online.club
» » » » Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Читать бесплатно Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001. Жанр: Программирование издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

  {Design: Используйте свойство AdmDlg для изменения координаты Y}

  pType := BAR or CT_LEGEND;

  {Design: Изменяем свойство ChartType с 1 - lineна 2 - bar.}

  DecimalsNum[CD_YLEG] := 0;

  {Design: Изменяем свойство Decimals с 2 до 0}

  Stacked := CHART_STACKED;

  {Design: Изменяем свойство Stacked с 0 - None на 1 - Normal}

  RightGap := 20;

  {Design: Тоже}

  OpenData[COD_COLORS] := 2;

  Color[0] := clBlack;

  Color[1] := clYellow;

  CloseData[COD_COLORS] := 0;

  {Фу!!}

  {Design: Для изменения цветов 2 серий:1)  Убедитесь, что ThisSerie установлен в 0.  ИзменитеThisColor на clBlack.2)  Установите ThisSerie в 1.  Измените ThisColor наclYellow.}

  Title[CHART_TOPTIT] := 'Статьи и заголовки';

  Title[CHART_LEFTTIT] := 'CCM';

  Title[CHART_BOTTOMTIT] := 'Карты';

  {Design:  щелкните на свойстве TitleDlg и установите верхний, левый и нижний заголовки}

 end;

end;

Procedure TF_Chart.Build2(Ch : TChartFX);

 {Данная процедура устанавливает свойства, которые не могут (насколько я определил это) быть установлены в режиме разработки}

const

 XAbbrevs : array[0..4] of string[4] =('Acc', 'Bar', 'Mas', 'Amex', 'Din');

 SeriesTitles : array[0..1] of string[8] =('Статьи', 'Заголовки');

 XTitles : array[0..4] of string[20] = ('Access', 'Barclaycard', 'Mastercard', 'American Express', 'Diners');

 {естественно, вы должны нормально читать из базы данных xTitles и значения}

 Values : array[0..1, 0..4] of double =((50, 60, 70, 80, 90),(30, 35, 25, 37, 42));

var i, SerieNo : integer;

begin

 with Ch do begin

  LegendWidth := 120;

  {Установка количества серий, количества значений ******************}

  OpenData[COD_INIVALUES] := MAKELONG(2, 5);

  CloseData[COD_INIVALUES] := 0;

  {*********************************************************}

  OpenData[COD_VALUES] := 2;

  {если вы пропускаете приведенное выше утверждение, (в котором вы вводите номер SERIES и VALUES), и CloseData ниже, назначение значений не создает ошибки, но и не работает! Назначение значений Legend и KeyLeg работает без OpenData/CloseData}

  ThisSerie := 0;

  for i := 0 to 1 do SerLeg[i] := SeriesTitles[i];

  for i := 0 to 4 do= begin

   Legend[i] := XTitles[i];

   KeyLeg[i] := XAbbrevs[i];

  end;

  SerieNo := 0;

  for SerieNo := 0 to 1 do begin

   ThisSerie := SerieNo;

   for i := 0 to 4 do Value[i] := Values[SerieNo, i];

  end;

  CloseData[COD_VALUES] := 0;

 end;

end;

procedure TF_Chart.FormResize(Sender: TObject);

var w, h : longint;

begin

 w := NB.Width;

 H := NB.Height;

 {при необходимости увеличиваем/уменьшаем размер диаграммы}

 Chart1.Width := W – 18;

 Chart1.Height := H – 12;

 Chart2.Width := W – 18;

 Chart2.Height := H – 12;

 {перемещаем кнопку выхода в правый угол}

 ExitBtn.Left := SpeedPanel.Width – 32;

end;

end

CHARTFX – минимум максимум

Delphi 2 

Так можно сделать с ChartFX в Delphi 2…. Я думаю то же самое будет и в D1…

cfxStockTrends.Adm[CSA_MIN] := X; //устанавливаем минимум по оси Y

cfxStockTrends.Adm[CSA_MAX] := Y; //Устанавливаем максимум по оси Y 

Пример CHARTFX

Delphi 1 

Документация, поставляемая с Delphi, слишком запутанна и тяжела, особенно если вы не пользователь VBX…

Следующий пример устанавливает некоторые значения и пр. для ChartFX:

{Код получает данные из базы данных и рисует их}

begin

 MyTable.active := True; {открываем базу данных}

 MyTable.first;

 MyChart.title[CHART_BOTTOMTIT] := 'Заголовок по оси X';

 MyChart.title[CHART_LEFTTIT] := 'Заголовок по оси Y';

 MyChart.OpenData[COD_XVALUES] := MakeLong(numOfSeries,numofPoints);

 MyChart.OpenData[COD_VALUES] := MakeLong(numOfSeries, NumofPoints);

 MyChart.ThisSerie := SeriesNum; {начинаем с 0}

 While MyTable.EOF <> True do begin

  MyChart.value[i] := MyTable.FieldByName('SOMEFIELD').AsFloat;

  MyChart.Xvalue[i] := MyTable.FieldByName('SOMEOTHERFIELD').AsFloat;

  MyTable.next;

  i:=i+1; {естественно, вам необходимо определить и инициализировать 'i'}

 end;

 MyChart.CloseData[COD_Values] := 0;

 MyChart.CloseData[COD_XValues] := 0;

 MyTable.active := False; {закрываем базу данных}

end;

{Обратите внимание на то, что данный код отностится к диаграмме типа xy scatter. Если вы хотите сменить тип диаграммы ChartFX, вам не нужно устанавливать значения для COD_XVALUES} 

Управление свойством Font через сервер автоматизации

Данный документ предназначен главным образом тем программистам, кто использует OLE/COM и хочет встроить объект Font (типа Delphi-го TFont) в свой сервер автоматизации. Интерфейс IFontDisp для COM будет иметь ту же функциональность, что и Delphi-ий TFont. Например, если у вас имеется клиент автоматизации, содержащий объект со свойством Font, и в сервере автоматизации для изменения атрибутов текста вы хотите иметь те же методы (наприр, имя шрифта, жирное или наклонное начертание). Для хранения и управления шрифтом сервер автоматизации может применять реализацию интерфейса IFontDisp.

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

Демонстрационный проект содержит следующие модули:

Project1_TLB: Паскалевская обертка для библиотеки типов, содержащей определение интерфейса.

Unit1: Реализация интерфейса: код, содержащий описание свойств интерфейса и реализующий его методы.

Unit2: Главная форма сервера автоматизации. Данный модуль не является обязательным, но он в ходе тестирования обеспечивает обратную связь, так что мы можем видеть как отрабатываются вызовы наших методов.

FontCli: Клиент автоматизации, получающий ссылку на интерфейс, и использующий его методы.

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

1. Выберите пункт меню File|New|ActiveX|Automation Object и в Мастере Automation Object Wizard выберите в качестве имени класса MyFontServer. Создайте единственное свойство с именем MyFont и типом IFontDisp. Для получения дополнительной информции смотри Developer's Guide, chapter 42 (руководство разработчика, глава 42), там подробно описана работа с библиотеками типов и создание интерфейсов в редакторе библиотеки типов.

2. В предыдущем шаге при добавлении интерфейса с помошью редактора библиотеки типов вы должны были получить паскалевский модуль-обертку (в нашем примере модуль имеет имя Unit1). Unit1 будет содержать обертку реализаций методов получения и назначения свойства MyFont. На данном этапе вы обеспечите хранение значений свойства MyFont в форме FFont (TFont) и добавите код реализации, наполняющий функциональностью методы получения и установки (get/set).

Unit1 использует Unit2. Unit2 содержит форму, компонент Memo и StatusBar для отображения каждого реализованного метода, для диагностических целей.

3. Создайте Unit2, содержащий форму с компонентами TMemo и TStatusBar. Форма используется для отображения жизнедеятельности в модуле Unit1.pas. Это шаг не является строго обязательным, он помогает понять что происходит в данный момент между клиентом автоматизации и сервером.

4. Создайте клиент автоматизации. В нашем случае модуль имеет имя FontCli, содержит метку, показывающую текущий шрифт и кнопку, устанавливающую MyFont на сервере. 

unit Project1_TLB;

{ Данный файл содержит паскалевские декларации, импортированные из библиотеки типов. Данный файл записывается во время каждого импорта или обновления (refresh) в редакторе библиотеки типов. Любые изменения в данном файле будут потеряны в процессе очередного обновления. }

{ Библиотека Project1 }

{ Версия 1.0 }

interface

uses Windows, ActiveX, Classes, Graphics, OleCtrls, StdVCL;

const LIBID_Project1: TGUID = '{29C7AC94-0807-11D1-B2BA-0020AFF2F575}';

const

 { GUID'ы класса компоненты }

 Class_MyFontServer: TGUID = '{29C7AC96-0807-11D1-B2BA-0020AFF2F575}';

type

 { Предварительные объявления: Интерфейсы }

 IMyFontServer = interface;

 IMyFontServerDisp = dispinterface;

Перейти на страницу:

Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Советы по Delphi. Версия 1.4.3 от 1.1.2001 отзывы

Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*