Виртуальная библиотека Delphi - [21]

Шрифт
Интервал

>    //Define a smaller drawing rectangle within the button

>    R := Bounds(Width - xFrame - 4 * xSize + 2,

>                       yFrame + 3, xSize - 6, ySize - 7);

>    with CaptionBtn do

>      Canvas.TextRect(R, R.Left + 2, R.Top - 1, 'W');

>  finally

>    ReleaseDC(Self.Handle, Canvas.Handle);

>    Canvas.Handle := 0;

>  end;

>end;

>procedure TForm1.WMNCPaint(var Msg : TWMNCPaint);

>begin

>  inherited;

>  DrawCaptButton;

>end;

>procedure TForm1.WMNCActivate(var Msg : TWMNCActivate);

>begin

>  inherited;

>  DrawCaptButton;

>end;

>procedure TForm1.WMSetText(var Msg : TWMSetText);

>begin

>  inherited;

>  DrawCaptButton;

>end;

>procedure TForm1.WMNCHitTest(var Msg : TWMNCHitTest);

>begin

>  inherited;

>  with Msg do

>    if PtInRect(CaptionBtn, Point(XPos - Left, YPos - Top)) then

>      Result := htCaptionBtn;

>end;

>procedure TForm1.WMNCLButtonDown(var Msg : TWMNCLButtonDown);

>begin

>  inherited;

>  if (Msg.HitTest = htCaptionBtn) then

>    ShowMessage('You hit the button on the caption bar');

>end;

>procedure TForm1.FormResize(Sender: TObject);

>begin

>//Force a redraw of caption bar if form is resized

>  Perform(WM_NCACTIVATE, Word(Active), 0);

>end;

>end.

Преобразование текста OEM в Ansi

Эта версия работает под любым Delphi.

(Начиная с Delphi 2, это можно записать короче с использованием AnsiToOem и OemToAnsi.)

Здесь все просто.

>function ConvertAnsiToOem(const S : string) : string;

>{ ConvertAnsiToOem translates a string into the OEM-defined character set }

>{$IFNDEF WIN32}

>var

>  Source, Dest : array[0..255] of Char;

>{$ENDIF}

>begin

>{$IFDEF WIN32}

>  SetLength(Result, Length(S));

>  if Length(Result) > 0 then

>    AnsiToOem(PChar(S), PChar(Result));

>{$ELSE}

>  if Length(Result) > 0 then

>  begin

>    AnsiToOem(StrPCopy(Source, S), Dest);

>    Result := StrPas(Dest);

>  end;

>{$ENDIF}

>end; { ConvertAnsiToOem }

>function ConvertOemToAnsi(const S : string) : string;

>{ ConvertOemToAnsi translates a string from the OEM-defined

>  character set into either an ANSI or a wide-character string }

>{$IFNDEF WIN32}

>var

>  Source, Dest : array[0..255] of Char;

>{$ENDIF}

>begin

>{$IFDEF WIN32}

>  SetLength(Result, Length(S));

>  if Length(Result) > 0 then

>    OemToAnsi(PChar(S), PChar(Result));

>{$ELSE}

>  if Length(Result) > 0 then

>  begin

>    OemToAnsi(StrPCopy(Source, S), Dest);

>    Result := StrPas(Dest);

>  end;

>{$ENDIF}

>end; { ConvertOemToAnsi }

Состояние кнопки insert (Insert/Overwrite)

>{------------------------------------------}

>{ Returns the status of the Insert key. }

>{------------------------------------------}

>function InsertOn: Boolean;

>begin

> if LowOrderBitSet(GetKeyState(VK_INSERT)) then InsertOn := true

> else InsertOn := false

>end;

Сводка функций модуля Math

Здесь я привожу полный список всех функций и процедур модуля Math. При переходе от Delphi 2 к Delphi 3 модуль Math почти не изменился, фирма Borland ввела в него только три новые функции: MaxIntValue, MInIntValue и Sumint. Эти функции отличаются от своих прототипов (MaxValue, MInValue и Sum) лишь тем, что работают исключительно с целыми числами, не принимая и не возвращая величин с плавающей точкой. Что касается остальных функций, то большинство из них вполне очевидно. Если вам покажется иначе — что ж, садитесь за исследования. И не надейтесь, что все тайны Delphi достанутся вам на блюдечке в виде help-файла!

Тригонометрические функции и процедуры

ArcCos — Арккосинус

ArcCosh — Пиперболический арккосинус

ArcSIn — Арксинус

ArcSInh — Гиперболический арксинус

ArcTahn — Гиперболический арктангенс

ArcTan2 — Арктангенс с учетом квадранта (функция ArcTan, не учитывающая квадрант, находится в модуле System)

Cosh — Гиперболический косинус

Cotan — Котангенс

CycleToRad — Преобразование циклов в радианы

DegToRad — Преобразование градусов в радианы

GradToRad — Преобразование градов в радианы

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

RadToCycle — Преобразование радианов в циклы

RadToDeg — Преобразование радианов в градусы

RacIToGrad — Преобразование радианов в грады

SinCos — Вычисление синуса и косинуса угла. Как и в случае SumAndSquares и MeanAndStdDev, одновременная генерация обеих величин происходит быстрее

Sinh — Гиперболический синус

Tan — Тангенс

Tanh — Гиперболический тангенс

Арифметические функции и процедуры

Cell — Округление вверх

Floor — Округление вниз

Frexp — Вычисление мантиссы и порядка заданной величины

IntPower — Возведение числа в целую степень. Если вы не собираетесь пользоваться экспонентами с плавающей точкой, желательно использовать эту функцию из-за ее скорости

Ldexp — Умножение Х на 2 в заданной степени

LnXPI — Вычисление натурального логарифма Х+1. Рекомендуется для X, близких к нулю

LogN — Вычисление логарифма Х по основанию N

LogIO — Вычисление десятичного логарифмах

Log2 — Вычисление двоичного логарифмах

Power — Возведение числа в степень. Работает медленнее IntPower, но для операций с плавающей точкой вполне приемлемо

Финансовые функции и процедуры

DoubleDecliningBalance — Вычисление амортизации методом двойного баланса

FutureValue — Будущее значение вложения

InterestPayment — Вычисление процентов по ссуде

InterestRate — Норма прибыли, необходимая для получения заданной суммы

InternalRateOfReturn — Вычисление внутренней скорости оборота вложения для ряда последовательных выплат


Еще от автора Неизвестный Автор
Галчонок

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


Призраки ночи

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


Закат  вечности

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


mmmavro.org | День 131, Победа

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


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


mmmavro.org | День 132, Поэт

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


Рекомендуем почитать
Графика DirectX в Delphi

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


Вторая жизнь старых компьютеров

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


DirectX 8. Начинаем работу с DirectX Graphics

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.