Вы находитесь на странице: 1из 113

*- TCollection Objects

-----------------------------------------------------------------

TCollection- �� ��� �� � �⨯ � � � ॠ���� 樨 � �� �����


����⮢, �������� ���� ���� ��
� . TCollection- �� �������
����� �� 饥 ����⨥, � � ��������, ������⢮ ��� .
������ ��ꥪ⮢ TCollection �������� � �⠭���������� ��
�믮 � � � � � � , � ���� �� �������� ⨯ ��� ������ � �� ��� �� -
���� ⨯��, ⠪��, ��� TSortedCollection, TStringCollection �
TResourceCollection. � ���������� � ��⮤�� ���������� �
�� ��� �
����⮢, TCollection �।�⠢��� ���� �쪮 ��� 樮 ���� � �-
� , ����� ��뢠����楤�������㭪�����������������

�����.

TCollection �।��������, �� ������ �����


���������
��‫� � � אַ‬ � � ᢥ � � � � � TObject ⠪, �� ��� ���� ��������
�� ����� ��뢠�� �������� ����� Done. �� �� ��� � � -
�짮 � � � � � � � � � � � � � ⮢ , �� ���室��� �� TObject, � �����-
���� ��易⥫� ��८�।����� ��⮤ FreeItem ��� ⮣�, �⮡�
� � 쭮 ���� �
�� � �
� �
��. ����� ���, ���ਬ�� , �����⢫��
����� �������� � ��� ��� � ��
�.

*- ����
-----------------------------------------------------------------

Count (�쪮 ��� �⥭ ��)


Count: Integer;

���� 饥 �� ����⮢ � ����� �� �


, ��� �� �� ������
�� MaxCollectionSize. ��������
� , �����������������
����-

�� � 0, � ������ �� �� 1 ������
砥�, ��Count ���ॢॢ � �
������������ .

��. ⠪��: ��६����� MaxCollectionSize

Delta (�쪮 ��� �⥭��)


Delta: Integer;

��� ����⮢, �� ���� �� �� � ������


��� Items ��
��� ����������. �� Delta �� 0, � ����� �� ����� ���
����-
� ���, ��⠭��������� � Limit.

�ਬ�砭��: �����祭�� ��� ����� ����� 筮 ���� ����-


�� �� ��� ���� ⥫�� �� . �⮡� ����������� �� �, �����
�� ���室��, ����⠩��� ��⠭����� ��砫쭮� Limit ��
⠪��� ��������, ����� ��� �����筮 ��� ��� ����⮢,
����� �� ��� ᮡ������ � � � � � � � � � � � � , � ��⠭���� Delta
⠪, �⮡� ��� ���祭�� ������ ����७�� � ��� �������-
⢮.

��. ⠪��: Limit, TCollection.Init

Items (�쪮 ��� �⥭��)


Items: PItemList;
�����⥫� �� ���� � � �
� � � �� ��� � � � .

��. ⠪��: ⨯ TItemList

Limit (�쪮 ��� �⥭��)


Limit: Integer;

�뤥 ���� � � ��騩 ��� � � � �� � (� ������)


Items.

��. ⠪��: Delta, TCollection.Init

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(ALimit, ADelta: Integer);

������� ��ꥪ� ����� � Limit, � � ALimit, � Delta, -


�� ADelta. ����� �뤥 ��� ��ꥬ ����� , ������� ��� ��

���
� � ALimit ����⮢, �� ����� ����� ���������, �� �� � �-
��� �� ADelta �� �� ���, ���� ��� �����筮 ����� ��� ����
�� ����⮢ �� ��� ��� � � � ⨣MaxCollectionSize.

��. ⠪��: TCollection.Limit, TCollection.Delta.

Load
constructor Load(var S: TStream);

������� � ������ ������ �� ���� � S. TCollection.Load


��뢠 �� ��⮤ GetItem ��� ������� ����� �����.

��. ⠪��: TCollection.GetItem

Done
destructor Done; virtual;

��८�।��塞����: ��� �� � � � � � � �.

������ ����� � ��� ������������, ���������� �ᥬ �


⠬� �����, ��뢠� ��⮤ TCollection.FreeAll � ��⠭�������
Limit � � 0.

��. ⠪��: TCollection.FreeAll

At
function At(Index: Integer) : Pointer;

�����頥� ����� � ����� � ����� �Index � �����.


��� ��⮤ �������� �������� �������, ��� �������� ���
� 0 ����. �� ������ ����� 0 ��� ����� ��� � � Count,

At ��뢠�� Error � ����� coIndexError, ��� �� ������-
�� nil.

��. ⠪��: TCollection.IndexOf


AtDelete
procedure AtDelete(Index: Integer);

������ ����� � ����樨 Index � ��६�� � � � � � � � -


����� �� ���� ������ �����. Count �� � �� ���
� 1, ��
������,
�뤥������ ��� ����� , �� ᮡ � �� ��
. �� Index ����� 0 ���
����� ��� � �� Count, � ��뢠���� ��⮤ Error � �����
coIndexError.

AtDelete �� ��� ������ ������, �뢥 ������ ��� 㤠�����


�����. �� ����室����� �����६���� ����� � ��� �����
����� �� ᮡ� � � � AtFree.

��. ⠪��: TCollection.FreeItem, TCollection.Free,


TCollection.Delete

AtFree
procedure TCollection.AtFree (Index: Integer);

������ � ��� ����������� � �����ᮡ


�� Index. ����������
�� � �饬�:

Item := At (Index); {����砥 � � � � � � � ��� � � }


AtDelete (Index); {� � � � � � � � � � ��� � � }
FreeMem (Item); {��� �����������}

AtInsert
procedure AtInsert(Index: Integer; Item: Pointer);

��⠢��� Item � ������ Index � ��।������ ����� �-


����� �� ���� ������ ����. �� Index ����� 0 ���
� AtInsert �� 뢠�� ��⮤ Error � �� ��� coIndexError, �
���� Item �� ��⠢�����.

�� Count � � Limit �� �맮 �� AtInsert, � ����� ��뢠��


SetLimit ��� 㢥��祭�� �뤥 ������ ��� ���� �����. �� �맮
SetLimit �� ����� ������ �����, � ��뢠���� ��⮤ Error

����� coOverflow, � ���� Item �� ��⠢�����.

��. ⠪��: TCollection.At, TCollection.AtPut,


TCollection.SetLimit

AtPut
procedure AtPut(Index: Integer; Item: Pointer);

������� ����� � ����樨 Index ����� , ������� �


�� Index ����� 0 ��� ����� ��� � � Count, � ��뢠����
��⮤ Error � ����� coIndexError.

��. ⠪��: TCollection.At, TCollection.AtInsert

Delete
procedure Delete(Item: Pointer);

������ ����� Item �� �����. �� ��������


AtDelete(IndexOf(Item)). Delete �� ��� ������������, �뤥 ������
��� Item. �� ����室����� ����� ����� � ��� ��������
����� ��뢠�� Free.

��. ⠪��: TCollection.AtDelete, TCollection.DeleteAll

DeleteAll
procedure DeleteAll;

������ �� ������ �� �����, ��⠭������� Count � �


0.

��. ⠪��: TCollection.Delete, TCollection.AtDelete

Error
procedure Error(Code, Info: Integer); virtual;

� ������
��८�।��塞����: ������ � � .

��뢠���� � � � 묨 ��㣨�� ��⮤��� ��ꥪ � ⮢ ����� ,


����� ����砥��� ��� ��
� . �� � � 砭 � � �� � ��⮤ �� � � � � � �
��� ��६��� �믮 � � � � � � 212 - Code, ��� Code- �� ���� ��
⠭� coXXXX, 㪠�����
뢠 �� �� �� ��� .� Error ����� ��८�-
।����� ��� ����祭 � � ����� 㢥� � � � � � � � � �짮짮짮��⥫ � � �
��� ���� �� ��� �
�������� �� 室� �� ��� � � .

��. ⠪��: ����⠭�� ����� coXXXX

FirstThat
function FirstThat(Test: Pointer) : Pointer;

FirstThat �ਬ���� ��� ����� , �������� 㪠��⥫�� ��


��
���� Test, � ������� ������ ����� �� �� ���, ����
Test ��
������� True. �����頥� ����� � �����, ��� �����
Test ������� True, ��� nil, �� ����Test ������� False
��� ��� ����⮢. Test ������ 㪠�뢠 㭪����������������

� �������
⨯� far, � � � 쪮 ���� �������⨯
� Pointer � ����-
������ ���祭�� �� Boolean. ���ਬ��:

function Matches (Item: Pointer): Boolean; far;

�������� ! ����Test �� ����� ���� �������� ����


�.

�।�������, �� List ����� ⨯ TCollection, ������:

P := List.FirstThat(@Matches);

�⢥����� ����饬�:

I := 0;
while (I < List.Count) and not Matches(List.At(I))
do Inc(I);
if I < List.Count then P := List.At(I) else P := nil;

��. ⠪��: TCollection.LastThat, TCollection.ForEach


ForEarch
procedure ForEarch(Action: Pointer);

ForEach �ਬ���� ����⢨�, ��।������� �����, ��


������ 㪠���� 뢠 Action, ��� ������� ����� �����.
����
�� �
Action ������ 㪠�뢠��������������楤�����far, � �� ��
-
������ ���� ��� ��� ⨯� Pointer. ���ਬ��:

procedure PrintItem(Item: Pointer); far

��������! �����Action �� ����� ���� �������� ��楤


�-
�.

�� List ����� ⨯ TCollection, � ������:

List.ForEach(@PrintItem);

�⢥����� ����饬�:

for I := 0 to List.Count - 1 do PrintItem(List.At(I));

��. ⠪��: TCollection.FirstThat, TCollection.LastThat

Free
procedure Free(Item: Pointer);

������ ����� Item �� ����� � ��� ������������. ��


�������� ����饬�:

Delete(Item); {㤠��� 㪠��⥫� �� �����}


FreeItem(Item); {��� ������Item}

��. ⠪��: TCollection.FreeItem, TCollection.Delete

FreeAll
procedure FreeAll;

������ � �� � ������ ������ ��� ����


.⮢ �����
���
������ ��� ����⮢ ����� ��� ��� ������������ ��뢠��
DeleteAll.

��. ⠪��: TCollection.DeleteAll

FreeItem
procedure FreeItem(Item: Pointer); virtual;

��८�।��塞����: ������ ��८�।������.

��⮤ FreeItem ������ ��� ������������ Item. �� � � 砭 �


TCollection.FreeItem �।��������, �� Item 㪠�뢠
ꥪ�� �� ���� ,
���� ����TObject, � ����� � 뢠�� �������� Done:

if Item <> nil then Dispose(PObject(Item), Done);

��ꥪ�� , �������� �����, � �� � �� ����


� � ����⢥
����⮢ ���⠪������
TObject, �� , ��� ������ ���,
������
��८�।����� FreeMem ��� ��� ������������, ����� Item.

��������! ��⮤ FreeItem ��뢠���� �� Free � FreeAll,


��
������� �� ������ ��뢠���� �������.

��. ⠪��: TCollection.Free, TCollection.FreeAll

GetItem
function TCollection.GetItem(var S: TStream):
Pointer; virtual;

��८�।��塞����: ������ � �� ������


.

��⠥� ����� �� ���� S. � � � 砭 � � TCollection.GetItem


�।��������, �� ������ ����� ���� ���TObject, � ��뢠��
��� ������ ����� TStream.Get:

GetItem := S.Get;

��ꥪ�� , �������� �����, � �� � �� ����


� � ����⢥
����⮢ ���⠪������
TObject, �� , ��� ������ ���,
������
��८�।����� GetMem ��� � ⥭�� �� ���� � �� ������� �
������ 㪠��⥫� �� ����.

Load ��뢠�� GetItem ��� �⥭�� ������� ����� ����


�.
��� ��⮤ ����� ���� ��८�।����, �� �� ������ ��뢠
����
�����।�⢥���.

��. ⠪��: TStream.Get, TCollection.Load,


TCollection.Store

IndexOf
functionIndexOf(Item: Pointer): Integer; virtual;

��८�।��塞����: ������� �� ��८�।������.

������� ������ ��� Item. �८���


��
� ����� �
TCollection.At. �� Item �� �ন��� � ����� , � IndexOf
������� -1.

��. ⠪��: TCollection.At

Insert
procedure Insert(Item: Pointer); virtual;

��८�।��塞����: ������� �� � �� ������


.

��⠢��� Item � �����, ��������� ���� �������, �



�� ����室���. �� � � 砭 � � � � ⠢�� ��� �������� �����
�맮��� AtInsert(Count, Item); ����, �������� �����, ⠪��,
��� ������� ��� ������, ����� ��⠢���� ������ � ���
����.

��. ⠪��: TCollection.AtInsert;


LastThat
function LastThat(Test: Pointer): Pointer;

LastThat �ਬ���� ��� ����� , �������� 㪠��⥫�� ��


��
���� Test, � ������� ������ ����� � ���浪� �� ������ ��
�� ���, ���� Test �� ���� True. �����頥� ����� �� �-
����, ��� ����� Test ������� True, ��� nil, �� ����
Test ������� False ��� ��� ����⮢. Test ������ 㪠����뢠
�� �������� �� � � �� far, � �� ������� ���� �����
����
⨯�
Pointer � ���������� ���祭 �� �� Boolean, ���ਬ��:

function Matches(Item: Pointer): Boolean; far;

��������! ���� Test �� ����� ���� ������짮쭮쭮�㭪樥


�.

�� List ����� ⨯ TCollection, � ������:

P := List.LastThat(@Matches);

�⢥�����:

I := List.Count - 1;
while (I >= 0) and not Matches(List.At(I)) do Dec(I);
if I >= 0 then P := List.At(I) else P := nil;

��. ⠪��: TCollection.FirstThat, TCollection.ForEach;

Pack
procedure Pack;

������ �� ����� �� 㪠��⥫� � ���祭��� nil.

��. ⠪��: TCollection.Delete

PutItem
procedure PutItem(var S: TStream;
Item: Pointer); virtual;

��८�।��塞����: ������ � �� ������


.

���� ����� Item � ��� S. �� ��砭 � �


TCollection.PutItem �।��������, �� ������ �����
���� ����� TObject, � ⠪�� �� ����, ��� ������� �����
��뢠�� TStream.Put:

S.Put(Item);

��ꥪ�� , �������� �����, � �� � �� ����


� � ����⢥
����⮢ ���⠪������
TObject, �� , ��� ������ ���,
������
��८�।����� PutItem ��� ����� ����� Item � ���.

Store ��뢠�� PutItem ��� ������� ����� �����.


���
��⮤ ����� ��८�।�������, �� �� ������ ��뢠���� ����
�।��-
�����.

��. ⠪��: TCollection.GetItem, TCollection.Store,


TCollection.Load

SetLimit
procedure SetLimit(ALimit: Integer); virtual;

��८�।��塞����: � �� ������।��.

������� ��� �ᮡ��� �����, ������� ������, ����室�


���
��� � ��� � ALimit ����⠬�. �� ALimit ����� Count, � ���
��⠭���������� ��� Count, � �� ALimit ����� MaxCollection-
Size, � ��� ��⠭���������� ��� MaxCollectionSize. ��� �-
��, �� ALimit �⫨砥��� �� ⥪ �饣� ���祭�� Limit, �
SetLimit �뤥����� ���� ��� � Items �� Alimit ����⮢, ��-
�� ���� Items ��������� � ���� ���� � ������, �뤥��
����
��� ���� ����, ��� ��������
.

��.⠪��: TCollection.Limit, TCollection.Count, ��६�����


MaxCollectionSize

Store
procedure Store(var S: TStream);

���� �� ����� � �� ��� ������ � ����


� S.
TCollection.Store ��뢠�� TCollection.PutItem ��� �������
����� �����.

��. ⠪��: TCollection.PutItem

*- TColorDialog ColorSel
-----------------------------------------------------------------

���������� ���� 梥⮢ �।�⠢��� �� � �� ���


�� ����
���������� ���� � ���������� "Colors", ��������饥
��������
��⥫�
�������� 梥� ������� �� �ᥩ � ண��
�� � �����६���� ����� �
,
���������� ��� 梥⮢�� �奬�.
������

TColorDialog � �� ��������� � �� ��� �� ������ �


⮡ ��-
�������⮢, �����騩� TColorItem, TColorGroup, TColorSelector
� TColorDisplay. ��������� ᠭ �� ��
ᯮ ���� ��� ����������������

梥⮢ �ন��� � ����� 14.

*- ����
-----------------------------------------------------------------

BakLabel
BakLabel: PLabel;


������������ᥫ���� 梥� ��.

BakSel
BakSel: PColorSelector;

��������ᥫ���� 梥� �� ����������� ����.

Display
Display: PColorDisplay;


����������ꥪ�梥� ��
� � ��� ���������� ���� . �����


��
�� � � �������
� ���⥪���
� ����
� � ���� � � �������.

ForLabel
ForLabel: PLabel;


������������梥� ���
�������� ���������� ���� .

ForSel
ForSel: PColorSelector;


��������ᥫ���� 梥� ���
�������� ���������� ���� .

GroupIndex
GroupIndex: Byte;

뢠�� �� ��㯯� �
���� ᮡ�㯯
� 梥⮢, ����� �뫠
��⨢�� ����
����
���.

Groups
Groups: PColorGroupList;

����뢠�� �� �� 㯯 梥⮢ ��������������.
� ����

��㯯 梥⮢ �����뢠�� �� ��㯯� ����⮢, ��� ������ ����-
��⥫� ����� �롨���梥�.

MonoLabel
MonoLabel: PMonoSelector;

����뢠����ᥫ���� ���������
� �ਡ� ⮢.

Pal
Pal: TPalett;

��
�� ����� ����� 塞��������.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init (APalette: TPalette;
AGroups: PColorGroup);

������� ���������� ���� � �� 62�19 �


����������
'Colors', ��뢠� ��������� Init, ��� ��������
TDialog, � �������� � �� ��Options �� � ���� ofCentered.
��⠭�������� Pal � � APalette. ������� � ��⠢���
��㯯� 梥⮢, �易��� � AGroups, � ᯨᯨ ᯨᯨ ⮢ 梥⮢,
����
�易��� � AGroups^.Items ����� � �易��묨 � ���� ����ᠬ�
�ப� � ⪨ � �� ⪠�� . ������� � ��⠢��� ᥫ����� 梥�
��� 梥⮢ ���� � ������ ��, ��ᢠ���� �� ForSel � BakSel, �
⠪�� ᮡ���� � �� ⠢��� ��⪨ ��� ��� ᥫ���,

��ᢠ���� �� ForLabel � BakLabel. ������� � ��⠢���
����� ������� �ᥫ���� � ��� ����. ������� � ��⠢���

������ Ok � Cancel, � ��।��� �� ��� �� 㯯� 梥⮢.

��. ⠪��: TDialog.Init

Load
constructor Load (var S: TStream);

������� � ������ ����������� ���� �� ���� � S, ��뢠�


Load, ���
�砫� ��������� ������
�� TDialog, ��⥬ ���
㪠��⥫� �� �������� ,��������� �� � � � ��TColorDialog, � �

�����祭�� ��� �������.

��. ⠪��: TDialog.Load

DataSize
function DataSize: Word; virtual;

������� ��� ������� , �।�⠢���騩 ᮡ�� �� � ���


-
���, ��।����� � ��� �� ����������� ����, � �������
SetData ���
GetData.

��. ⠪��: TColorDialog.GetData, TColorDialog.SetData

GetData
procedure GetData (var Rec); virtual;

��뢠�� GetIndexes ��� ������ ��� ����� � �


�� �� �
������ ��㯯� � ColorIndexes, ��� �� ������� DataSize ����
�� Rec � Pal, �८���
��
� � �⨯�� Rec � ⨯ TPalette.

��. ⠪��: TColorDialog.DataSize

GetIndexes
procedure GetIndexes (var Colors: PColorIndexes);

������ 梥⮢� ������� � Colors �������� �� 묨 梥⠬� �


������ �� ��㯯 � Groups. TColorDialog.GetData � ����
� �
GetIndexes ��� ��⠭���� ����� � � � ColorIndexes � 묨
�����ᠬ � ������ ��㯯� �� Groups. ��� �
��� ColorIndexes �
����, ���� ����⠭����� ���‫� ���� ����������� �ﭨ‬
�������
LoadIndexes � SetData.

��. ⠪��: ��६����� ColorIndexes

HandleEvent
procedure HandleEvent (var Event: TEvent); virtual;

��뢠�� ��⮤ HandleEvent, ��� ������


�� TDialog, ���
�⪨ � ⠭�����
��� �� �������� ����������� ����, ��⥬ �⢥
砥�
�� ������� cmNewColorIndex, ��⠭������� �� 梥⮢�� �� �� ��
����������� ���� ���� 梥�.
��. ⠪��: TDialog.HandleEvent, TColorDisplay.SetColor

SetData
procedure SetData (var Rec); virtual;

������� DataSize ���� �� Rec � Pal, �८���


� � ���
��⨯
Rec �
⨯ TPalette. �� ShowMarkers �� True, � �����뢠�� ������-
��� ᥫ���� � ����� 梥�� ᥫ�����.

��. ⠪��: TColorDialog.DataSize, ��६����� ShowMarkers

SetIndexes
procedure SetIndexes (var Colors: PColorIndexes);
virtual;

��⠭�������� ������� � ������ ��㯯� 梥⮢ �� Groups -


�묨 �⢥������ � ���� ᠬ �� Colors. TColorDialog.SetData
��뢠�� SetIndexes ��� ��⠭���� ����� � � �� 㯯� 梥⮢ ��
ColorIndexes, ����⠭������� �� ���� ������ � ���� �����
����
������, ����� ColorIndexes ��⠭���������� �� Groups.

��. ⠪��: TColorDialog.SetData

Store
procedure Store (var S: TStream);

�����뢠�� ���������� ���� 梥⮢ � ��� S, ��뢠� �砫�


��⮤ Store, ��� �� TDialog, � ��⥬ �����뢠� 㪠��-
������
⥫� �� ���������, �������� � ������� TColorDialog, � �
�����-
祭�� �����뢠� �������, � � ������ Pal.

��. ⠪��: TDialog.Store

*- TColorDisplay ColorSel
-----------------------------------------------------------------

TColorDisplay �।�⠢��� ������� ��� �� ᯨ


��� ⮡ -
����, ���� ��� � � ������������
� � ப � � 梥�, �� �
�����
ᥫ����� 梥⮢ ����������� ����. ��������� ���� �롮 � 梥⮢
�� � ���� �� � �
���� ���� ���
��ᯨ⮡ 梥� ��� ��������樨
����� �⥫���, ��� �룫 廊� ��� �롮 � 梥⮢ �.

����� �� ���ଠ�� � ����� TColorDisplay � ��⮤�� �ਢ�-


���� � ����⨢��� ����� � �.

*- ��� TColorGroup ColorSel


-----------------------------------------------------------------

���ᠭ��
TColorGroup = record
Name: PString;
Index: Byte;
Items: PColorItem;
Next: PColorGroup;
end;
���� : ��㯯� 梥⮢ ��।���� ����������� ��㯯� �易�-
��� ����⮢, ��� ������ ���짮� �⥫������ �롨��� 梥�.
Name �ন� ��� �� 㯯�, Index �ন� ��� 浪��� ����� 梥� �
�� 梥⮢, � Items 㪠����뢠 �� ���� ����� � �易����
ᯨ � ��ᯨ�⮢ 梥⮢. Next 㪠 � 뢠 � � � � � � � � 騩 � � � � � �
�易���� ��
㯯 梥⮢.

���������� ����梥⮢ �ন����� -�� � �㯯, �����-


���
饥 �易��� ����ᥩ TColorGroup.

��� �ᮡ����� � ��� �� ���


樨 ����ᥩ ��㯯� 梥⮢ � �� ��
-
�������ColorGroup.

�� . ⠪�� : � ���ColorGroup

*- �� ꥪ� TColorGroupList ColorSel
-----------------------------------------------------------------

��� � � � 㯯 梥⮢ �।�⠢��� ��� �� ���


�� ���
�� ꥪ� ����-��, ��� � � ப � ��� ��� �����������
�� 㯯 梥⮢ ��� �롮� � ���������� ���� �롮� 梥⮢.
TColorGroupList ����� ᥡ� ��� ���筮� ���������� ����,
��
� ।�⠢����� � ��� ᯨᯨ  �����
易��� � ����ᥩ
TColorGroup.

��� �� �� ���ଠ�� � ����� TColorGroupList � �� ⮤ �� �� -


������ � ����⨢��� ��� �� �� .

*- ��� TColorIndex ColorSel


-----------------------------------------------------------------

��� ᠭ��
TColorIndex = record
GroupIndex: Byte;
ColorSize: Byte;
ColorIndex: array [0..255] of Byte;
end;

� ���: ����� � � � � ���� � 롮� 梥⮢ � �� ����� �����


⨯� TColorIndex ��� � ������� ��� 浪����� ����� ��⨢ ����
����� � �� � 㯯
�� 梥⮢ � ᯨ ᯨ⮢ 梥⮢, ����� -
����
��� ����� � � � � � � ���� ���� ⠭ ��� � � � � � �� �।��饥 ���
‫�ﭨ‬
�� ���� ��. 짮� ������ ⨯ ����� ।�⢥��� �������
� �� �
��
�� 室����. �� � �� ������ �� �� �
�� LoadIndexes �
StoreIndexes.

�� . ⠪�� : �� ����LoadIndexes, �� ���� StoreIndexes.

*- ��� TColorItem ColorSel


-----------------------------------------------------------------

��� ᠭ��
TColorItem = record
Name: PString;
Index: Byte;
Items: PColorItem;
end;

� ���
: ����� � � 梥� ��।���� ���������� ����� �
�� 㯯�, ��� ��� ண� ���짮� �⥫� ����� �롨��� 梥�. Name
�� ন� ��� �����, Index �ন���� 浪��� ����� �������
梥� �ண� ,� �� ।����饩 梥� �����. Next 㪠���� 뢠 ��
� � � � � � � �易 � � � � ᯨ
�� �� ᯨ⮢ 梥⮢.
����

������ � � � � ���� 梥⮢ �ন����� -ᯨᯨ � ᯨᯨ⮢, ��� -


���
���� 饥 �易��� ⨯
����ᥩ � TColorItem.

��� �ᮡ����� � ��� �� ���


樨 ����� ����ᥩ ⨯� TColorItem
� �� �������ColorItem.

*- �� ꥪ� TColorItemList ColorSel
-----------------------------------------------------------------

��� ᯨ � ��� ᯨ⮢ 梥⮢ �।�⠢��� �� � �� ��� �


�� -
�� �� ꥪ� , ��� ������
�� TListViewer, ��� 騩 ����-
⮢ � ��� 㯯 梥⮢, ��� ����� � ��� 짮� �⥫������ �롨���
梥�. �� ᯨ �ᯨ����
⮢梥⮢ ������ �� ���� Items ����� ⨯ �
TColorGroup. ������ � � � ���� � 롮� 梥⮢ ��������
����⮢ 梥⮢ ��� �।��⠢����� ����� �⥫�����������
� 롨��� ��㯯� ����⮢ 梥⮢ ��� �롮� 梥⮢.

��� �� �����ଠ�� � ����� TColorItemList � �� ⮤ �� � ਢ�-


���� � ����⨢��� ��� �� ��.

*- ��� TColorSel ColorSel


-----------------------------------------------------------------

��� ᠭ��
TColorSel = (csBackground, csForeground);

� ���: �� ꥪ�� ᥫ���� 梥⮢ � �� ����� ����� 塞�


⨯ TColorSel ��� ���ᠭ�� ⨯� ᥫ����: � � ������ �
����� .

�� . ⠪�� : TColorSelector.SelType

*- �� ꥪ� TColorSelector ColorSel
-----------------------------------------------------------------

�� ꥪ�� ᥫ���� 梥⮢ �����뢠�� 梥�, ���� �� ���


������ � �⮡������� �����. ������ � � ��� �� �� ਠ��:
����
��� 梥⮢ � � , �� �� ��� 梥� ���� �
�����. ������ � � � ����
� 롮� 梥⮢ ����������� �� ��� �⨯ �� ��� ������ ����������
� 롮� 梥⮢ � 梥� ����� ����� � � � � � � �.
⮢, � � �

��� �� �����ଠ�� � ����� TColorSelector � �� ⮤ �� � ਢ�-


���� � ����⨢��� ��� �� ��.

*- ��� TCommandSet Views


-----------------------------------------------------------------

��� ᠭ��: TCommandSet = set of Byte;


����
: ��� TCommandSet ������� ��� � � ��������

����
��� �� �
������⢠ , ᮤ�ঠ饣� �� 256 ������. �� �������� �믮� ����
���⮥ ��� �� ���� ��।�����, �⢥����� �� ������ �����-
�� ��।�������� ����� � ���� � �� � ��� � ⨩⪨ ᮤ , �
���-
����� ��⠭����� ��� � �����
.

���ਬ��, ��⮤� TView: EnableCommands, DisableCommands,


� �����
GetCommands � SetCommands � � �� �� ��⨯� TCommandSet.
����� ������ ����� ������ � ����� ��� �� ��
, � �� ����
���
���
���� �:

CurCommandSet: TCommandSet = [0..255] - [cmZoom, cmClose,


cmResize, cmNext];

��. ⠪��: cmXXXX, TView.DisableCommands,


TView.EnableCommands, TView.GetCommands, TView.SetCommands

*- TDeskTop App
-----------------------------------------------------------------

TDeskTop- �� ����� ��㯯�, ����� ������� �� � ���


⮡�
����� TBackground, �� ���� � ������ ���� � ��
�� �⮡-
����
� ������ ��� ��
� �. TDeskTop �।�⠢��� ����⨢���
������� �� �, � �� ��������������� ��� 孥� ���� � � ����

������ ���� ����‫�ﭨ‬.

��������! � ���� 2.0 � ��ꥪ� ����⨢��� (�


�祩) ����-
�� ������ ����� ����, ��������饥 ����뢠�� ᮤᮤ�����筮
��
��� ��������ꥪ� � � 㬮 �砭 � � .

*- ����
-----------------------------------------------------------------

Background
Background: PBackground

����뢠�� �� ��ꥪ� 䮭� ����⨢��� ������.

TileColumnsFirst
TileColumnsFirst: Boolean;

TileColumnsFirst ��।����, ����� �� ���� ��� �⤠�����



�।���⥭�� � ��砥 �����筮�� ᮤ� � � � �����
� ������� :�

���⨪���� ��� ��ਧ��⠫��. �� � � 砭 � � TileColumnsFirst


�� False, �� �
� ������������ , �ਭ�� � ���� 1.0, �⤠�饩
�।���⥭�� ���⨪���� �� �� ����������� . ��⠭���� �⮣�
���� � �� True �ਢ���� � �⤠��� �।���⥭�� ��ਧ��⠫�� �
��� ������⠪, ��, ���ਬ��, �����筮� � �� ������� ���� ����
������� �� ��� �冷 � � � � � � � , � �� ���� ��� ����.

��. ⠪��: TDesktop.Tile


*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect);

������� ��㯯� TDeskTop � Bounds, ��뢠� �������-


�� Init, ��� ������
�� TGroup. ��⠭�������� GrowMode ���
gfGrowHiX + gfGrowHiY. ��� ᮤ ᯨ ����� �
⮡� �������
� ���� ��
��뢠�� InitBackground, � �� Background �� �� nil, ������-
���� ��� ��⠢��.

��. ⠪��: TDeskTop.InitBackGround, TGroup.Init,


TGroup.Insert

Cascade
procedure Cascade(var R: TRect);

������ �⮡���� �� ����, ����� ����� � �� ������


�����-
筮, � �ਭ������騥 �� � ������ � ��, � "���� ���" �ଠ-
�. ��ࢮ� ���� � 横 � � � � � � � 浪 � (ᠬ�� ������
) ��������
�� ��� ������ �� �, � ������ ���� ���
� �饥 ���� ������
�� ��-
�����, ���� �������� ���� ���� ���� � �� ���� �������
� ��,
��
� �।��饥. ��⨢��� ���� �� � ���� ����� ��⠫��� � �����

�������訩 � � � .

�� ���
� ������� �� ����� � � � ������
���� ����
���
� �, �
��� ��⠢��� �� �� ���� � ��뢠�� TileError.

��. ⠪��: ofTileable, TDeskTop.Tile, TDesktop.TileError

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।��塞����: ��८�।������ ।��.

��뢠�� ��⮤ HandleEvent, ��� ������


�� TGroup, �
��⥬ ��� ��뢠�� ������� cmNext (���筮 ����⨢��� ������� F6)
� cmPrevious 横����� ��室�� �� ����� (���� �� �� � �����
� ������ � � � � � � � ⮡�
� � ����������), �ਭ������� � ��� -
⨢��� ������ �� �.

��. ⠪��: TGroup.HandleEvent, ����⠭�� ������ cmXXXX

InitBackGround
procedure InitBackGround; virtual;

��८�।��塞����: ������ ��८�।������.

������� �⮡� ���� ����� �� �� � ������ ����-


���� ��� Background. TDeskTop.Init ��뢠�� ���, ��� ��
��⠢��� Background � ���� ������� . ���� ��� �����
� ����
� � � � � Background ��� � � � � �
��८�।����� ��� �� ⮤ � �� ������ �
��.
��. ⠪��: TDeskTop.Init

Tile
procedure Tile(var R: TRect);

��८�।��塞����: ������ ��८�।������.

������ �⮡���� �� ������ ������ � ofTileable,



�ਭ������騥 �祩 ������ � �
��, � �����筮� �ଠ�. ��
���
� ������� �� ����� � � � ���������� � ॡ 㥬� �� �
� ��, �
��� ��⠢��� �� �� ���� � ��뢠뢠뢠 ��
TileError.

��. ⠪��: TDeskTop.Cascade, ofTileable, TDeskTop.TileError

TileError
procedure TileError; virtual;

��८�।��塞����: ������ ��८�।������.

��⮤ TileError ��뢠뢠뢠 ����, �� �������� �訡�����६�


���
� TDeskTop.Tile ��� TDeskTop.Cascade. �� ����� ��८�।�-
���� ���, �⮡� 㪠���� ���짮짮짮��⥫�, �� ��� � ��� �����
������ ���������.

��. ⠪��: TDeskTop.Tile, TDeskTop.Cascade

*- TDialog Dialogs
-----------------------------------------------------------------

TDialog �।�⠢��� ᮤ��� 樠���� �� �����ꥪ�, 㭠�-


��������� �� TWindow, � ᮤ ᯨ ����� � 樠�쭮 ���०������ ��-
���짮짮짮 ����� ������ ���� � ������
����� � � . ��ꥪ������������
���� �⫨����� �� �� ।������� �� 㬮�砭�����������
�騬
�㭪⠬:

- GrowMode �� 0, �.�. ��������� ���� ����� 㢥��稢����� ;

- 䫠�� wfMove � wfClose ��⠭������, �.�. ��������� ����

����� ��६���� � ����뢠뢠뢠


�(�
������� ����뢠뢠뢠
�����
�� �
⮣� );

��� 稪 �ᮤ TDialog
- �� ⨩ ��뢠뢠뢠�

TWindow.HandleEvent, ��
⠪�� �������⥫ ���뢠뢠뢠
쭮 �� � �
��
⢥�� �� ������ Esc � Enter.
������ Esc �������� ������� cmCancel, � Enter ��������
����-
��� cmDefault;

- ��������� ���� �� ����� �����;

- ��⮤ TDialog.Valid �����頥� True �� ������� cmCancel, �


��⨢��� ��砥 ��뢠뢠뢠 ��
TGroup.Valid.

��������! � ���� 2.0 � ���������� � �������饩 ��㬮�-

砭�� �� � �������������� ���� �����ন���� ��� � ������


�������. �।��騥 ��� � TDialog ������� ������ Palette.
������ ��ꥪ�������������
���������㪠�뢠��������,
� ����
-

��� Palette ����⠭�� dpXXXX.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect; ATitle: TTitleStr);

������� ���������� ���� � ������� �


��� � ����������
,

��뢠� ���������Init, 㭠��������� � TWindow, ��।���� �


����⢥ �� ����
� Bounds, ATitle � wnNoNumber. GrowMode ��⠭�-
��������� � �� 0, � Flags ��⠭���������� ��� wfMove +
wfClose. �� ����砥�, �� �� 㬮�砭����������� ���������
��६���� � ����뢠�� , �� ����� �������� �� ����.

����⨬, �� TDialog �� ��।���� �ᮤ


� ⢥����� ��������,

� ��� ��� Close 㥬� �१ TWindow, TGroup �


� Done, ����

TView.

��. ⠪��: TWindow.Init

Load
constructor Load (var S: TStream);

���뢠�� ��ꥪ������������ ���������� S, ��뢠� �-


砫� ���������Load, 㭠��� � TWindow, � ��⥬ �����-
� �����
��� ����室��� �� � ��� ���ଠ�� � ������ . Load ��� ���
���祭�� 䫠��� Options ����㦥���������������� ����
, � ��
���� ovVersion �� ofVersion10, � Load ��⠭�������� ����
Palette �� dpGrayDialog � �������� ���祭��Options, �⮡�
��� ����砫� ofVersion20.

��. ⠪��: TWindow.Load

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।��塞����
: ������ � �� ������
.

��뢠������設�
��� ⢮ �ᮤ ��뢠� ��⮤HandleEvent,
, ⨩
㭠��������� ���뢠��ᮤ����� ������
� TWindow, � ��⥬ �� �
Enter � Esc. � ������, ����� Esc �������� �������

cmCancel, � Enter ���뫠뢠��


��饭��cmDeafult.

���뢠��cmOK, cmCancel, cmYes � cmNo,


��� ��⮤ ⠪�� �� �
�४��� ०����� ���‫���� ����������� �ﭨ‬.

��. ⠪��: TWindow.HandleEvent

GetPalette
function GetPalette: PPalette; virtual;
��८�।��塞����
: ��८�।������ ।��.

��� ��⮤ �����頥� 㪠��⥫���������, � �������� �����-


� ᮡ�������� ���� Field. � ⠡��� 19.39 �������� �������, ����-

�頥���������� ��� 祭��Palette.

������ 19.39 �����頥���������


�����������
���������
-
�� ���� ���祭��Palette

------------------------------------------------------------
���� Palette �����饭���������
------------------------------------------------------------
dpBlueDialog CBlueDialog

dpCyanDialog CCyanDialog

dpGrayDialog CGrayDialog
------------------------------------------------------------

��������! � ���� 1.0 GetPalette �ᥣ �� ����� 頫� 㪠�� -


� � �� �������, ��।������� �� 㬮�砭�� , CDialog. ��� ����-
祭�� ���ᮤ���⨬ � � ।��騬� ���� ‫ ﬨ‬CDialog �� �०����
����㯭�. ������, �������� �� 㬮�砭�� � ��� � 2.0,
CGrayDialog, �����筠 CDialog.

��. ⠪��: TWindow.Palette

Valid
function Valid(Command: Word): Boolean; virtual;

��८�।��塞����
: ��८�।������ ।��.

�����頥� ���祭�� True, �� �������� �������- cmCancel,


��� �� ��⮤ Valid, 㭠���
� �����
� TWindow, �����頥� True.

��. ⠪��: TGroup.Valid

*- ������
-----------------------------------------------------------------

��ꥪ�� ��������������� ᮤ� � � � ��� ������������

������ �� �� ���祭�� ����Palette. ����� �������� �� �,


�� ������ ���������� ���� CDialog, � �� �� 㥬������ � 1.0,
�����筠 �����, � ��।������� �� 㬮�砭�� � ��� � 2.0,
CGrayDialog.

1 2 3 4 5 6 7 8 9
�����������������������������������ͻ

CGrayDialog � 32� 33� 34� 35� 36� 37� 38� 39� 40�
������������������������������������

CBlueDialog � 64� 65� 66� 67� 68� 69� 70� 71� 72�
������������������������������������

CCyanDialog � 96� 97� 98� 99�100�101�102�103�104�


�����������������������������������ͼ

� � � � � � � � �
����� �� ��� � � � � � � � � ����⨢���
��
� � � � � � � � ������ ���
��⨢��� ������� � � � � � ���� ���ᢥ 祭���

��
� � � � � � ��⪠
���⮣��� ����������� � � � �������� ��ଠ�쭠 �
��
� � � � ��⪠
���
�� ������������� � ��������������������


��� � � ⥪��
�������� ������� ������������
��� �
⪮�

1 2 3 4 5 6 7 8 9
�����������������������������������ͻ
CGrayDialog � 32� 33� 34� 35� 36� 37� 38� 39� 40�
������������������������������������
CBlueDialog � 64� 65� 66� 67� 68� 69� 70� 71� 72�
������������������������������������
CCyanDialog � 96� 97� 98� 99�100�101�102�103�104�
�����������������������������������ͼ
� � � � � � � � �
��ଠ�쭠� �� � � � � � � � � ����⨢���
"������" � � � � � � � ������ ������

"������" �� ������ � � � � � ���


����� ��
㬮�砭�� � � � � � ������
�뢠뤥뤥�
����� ���������� � � � ���������
��ଠ���
"������" � � � ������
����饭��� �������������� � ������������� ���� "���
���"
"������" �
����⨢��� �������������������
"������"

19 20 21 22 23 24 25
���������������������������ͻ
CGrayDialog � 50� 51� 52� 53� 54� 55� 56�
����������������������������
CBrayDialog � 82� 83� 84� 85� 86� 87� 88�
����������������������������
CCyanDialog �114�115�116�117�118�119�120�
���������������������������ͼ
� � � � � � �
��ଠ�쭠� ��� � � � � � ��� �������� � � ������
���� ����� � � � � � ����
�⪮ � � ���
�����
� ������� � � � � ����
���
��
���� ����� � � � �
��५�� ����������� � � ������� ����
� �� ���� ��
���� ����� � � ���� ���� ���
��
��५�� ������� ���������� �
����������� ���� ������ ���

19 20 21 22 23 24 25
���������������������������ͻ
CGrayDialog � 50� 51� 52� 53� 54� 55� 56�
����������������������������
CBrayDialog � 82� 83� 84� 85� 86� 87� 88�
����������������������������
CCyanDialog �114�115�116�117�118�119�120�
���������������������������ͼ
� � � � � � �
��ଠ��� ������ � � � � � � �� ��१�ࢨ�� ��
�� � � � � �
��⨢�� ���� � ����� � � � ������� ��१�ࢨ�� ��
�� � � �
�뢠뤥뤥 �������� ��������� � ���������� ���ଠ 樮����
� �������
��������� � �� �����������

��. ⠪��: ��⮤ GetPalette ��� ������� ⨯� ��ꥪ�.

*- ��ꥪ� TDirCollection StdDlg


-----------------------------------------------------------------
TDirCollection �।�⠢��� ᮤ�� ����� ���� ᥩ DirEntry,
��� �㥬� TDirListBox. ����� �� ���ଠ�� � �����
TDirCollection � ��� ��⮤�� �ਢ����� � �������� � ���� ���
�� .

*- ��� TDirEntry StdDlg


-----------------------------------------------------------------
���ᠭ��:
TDirEntry = record
DisplayText: PString;
Directory: PString;
end;

�㭪��: DirEntry �।�⠢��� �� ���� ᮤ����� ⨯,


�� ঠ騩 ���� � ��⥬ � ��⠫��� � ���
ᠭ��. �� ����� �
� �-
������� � ��ꥪ�� TDirCollection ��� � ���������ଠ 樨 �
��⠫��� ��� ����������� ���� �� ���⠫���.

��. ⠪��: ��ꥪ� TDirCollection

*- ��ꥪ� TDirListBox StdDlg


-----------------------------------------------------------------
TDirListBox �।�⠢��� ᮤ �� � 樠��� �� ⮡�� ���
����� ����-��, ��⮡�� 騩� ��ॢॢ� ��⠫����, � � ��饥�� �
��ꥪ� TDirCollection ��� � �� � 짮짮짮 ������ TChDirDialog.

�� 㬮�砭�� ��⠫��� ������� � ���� � ���� ���


���
� �

���⨪��쭮� ���� � ��� ����
� . ����� �� ���ଠ��
� �����
TDirListBox � ��� ��⮤�� �ਢ����� � ��������
� ��
�� ���
�� .

*- TDosStream Objects
-----------------------------------------------------------------
TDosStream- �� � 樠������ �����������
� � � , ॠ��-
���騩 ������ਧ������ �� 䠩��DOS.
� ��������� ��������
ᯨ� ����������� 䠩� DOS, ����� ��� ��� � ०�� ����㯠:

stCreate, stOpenRead, stOpenWrite ��� stOpen. � TDosStream �����-
�� ��������쭮� ���� Handle- ���樮��� �����䨪���䠩��
DOS, � �� ��㥬� �������㯠������� 䠩�� .

� ���� � �� �
����設�⢮ ��� �������ਧ������ ���
짮짮짮
TBufStream, ���� ������ TDosStream. TDosStream ��८�।����
�� ����� � � � � ⮤ �TStream, �� ���祭��� TStream.Flush.

*- ����
-----------------------------------------------------------------
Handle (�쪮 � ���⥭�� )
Handle: Word;

㥬 � �쪮 ���
Handle- �� �����䨪���䠩��DOS, � �� ��
����㯠 �������䠩� �� � .
��

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(FileName: FNameStr; Mode: Word);

������� ��� 䠩��DOS � ������ FileName � ������� ०����

���� 㯠. � ��砥 ��� ���� Handle ��⠭���������� ������ -


�䨪����䠩��DOS. �訡�� 㪠�뢠 맮 ���� ����� Error � ��㬥�-
� stInitError.

��㬥�� Mode ������ �ਭ����� ���� �� ���祭��:


stOpenRead, stOpenWrite ��� stOpen. �� ����⠭�� ������ ��
�� ����� � � ���� "����⠭�� ���� � stXXXX".

Done
destructor Done; virtual;

��८�।��塞����: �� ��८�।������.

����뢠�� � ��������� ��� 䠩��DOS.

��. ⠪��: TDosStream.Init

GetPos
function GetPos: Longint; virtual;

� ������
��८�।��塞����: �� � � .

�����頥� ���祭��⥪�饩 ����樨����� . ��ࢠ� ������


����� ����� 0.

��. ⠪��: TDosStream.Seek

GetSize
function GetSize: Longint; virtual;

��८�।��塞����: �� ��८�।������.

�����頥� ������� � ���� .

Read
procedure Read(var Buf; Count: Word); virtual;

��८�।��塞����: �� � �� �������
.

���뢠�� �� ����
� Count ���� � ���� Buf, ��稭���⥪�-
饩 ����樨 ����
�.

��. ⠪��: TDosStream.Write, stReadError

Seek
procedure Seek(Pos: Longint); virtual;

��८�।��塞����: �� ��८�।������.

��⠭�������� ⥪���� ������ ��� Pos ���� �� ��


砫�
����. � 0 ࢠ.
����� ����� �������

��. ⠪��: TDosStream.GetPos, TDosStream.GetSize

Truncate
procedure Truncate; virtual;

��८�।��塞����: �� ��८�।������.

������ �� ����� ⥪�饣� ���� � ⥪�饩 ����樨 ��


���� ����
�.

��. ⠪��: TDosStream.GetPos, TDosStream.Seek

Write
procedure Write(var Buf; Count: Word); virtual;

�����뢠�� Count ���� �� ���� Buf � ���, ��稭���⥪�-


饩 ����樨.

��. ⠪��: TDosStream.Read, stWriteError

*- ��� TDrawBuffer Views


-----------------------------------------------------------------

���ᠭ��: TDrawBuffer = array[0..MaxViewWidth-1] of Word;

�㭪��: ��� TDrawBuffer � � � ������


��� ��� ����
� �ᯨ
��

��� ��⮤�� Draw ����� �������
� ��� ⮡ . ���筮 ����� ⮢
� ��ਡ��� �������
��
� � ଠ������� ��ப� �� ��ப�� �
TDrawBuffer, � ��⥬ �뢠뢠뢮�
�������:�

var
B: TDrawBuffer;
begin
MoveChar(B, ' ', GetColor(1), Size.X);
{�������� ���� ��� ����
}
WriteLine(0, 0, Size.X, Size.Y, B);
{���� ���� �� � �}
end;

��. ⠪��: TView.Draw, MoveBuf, MoveChar, MoveCStr, MoveStr

*- ��� TEditBuffer Editors


-----------------------------------------------------------------

���ᠭ��:
TEditBuffer = array [0..65519] of Char;
TEditBuffer ��।���� ���� ������ ��� ।����� ����
� � �.
��ꥪ�� TEditor � TMemo � �� ����� �����
� TEditBuffer ��� ���-
����� ���� � ��।����� ����
� � �.

*- ��ꥪ� TEditor Editors


-----------------------------------------------------------------

TEditor ॠ����� ���,� ������ ।���� � ��ꥬ�������


64K ��� � �� �짮 ����� � �ண� ��Turbo Vision. �� �����
������-
��� ���, �⬥�� ���������,��� � ��⥬�� ����, ���� ��
� -
�� � ०��� �ନ����� ����㯮� ���������� ०���� ��⠢��/-
������, ᯨ ����� ����⨢��� ������ , � ⠪�� ���� �
������.
�⮡����� ������ � 짮
।���� ����� � �� � ������� ।����-
����� 䠩�������������ப����
� ����� �������ਥ� �
����������
����� ��� �������.

������� ��㣨� ��ꥪ�� , ⠪��, ��� TMemo � TFileEditor,


�����⠫쭮 ���� ������� ��ꥪ�� ।����, �� ��� ���� ����


��� ���㭪樨 �� TEditor.

���짮 ����� ��ꥪ �


⮢ ।���� ��������� ���ᠭ� � �����
15, "������� � ⥪� �⮢� �� ���������".

*- ����
-----------------------------------------------------------------

AutoIndent
AutoIndent: Boolean;

�� AutoIndent �� True, � ।���� ������


� � �� -
���� ����� ��ப� ⥪�� � � �������, � ���ன � 稭�� � ���
�।���� ��ப�; � ��⨢��� ��砥 ���� ��ப� ��稭������
��� ����� ����樨.
��

Buffer
Buffer: PEditBuffer;

����뢠�� �� ����, � ���� � � ꥪ� �।���� � ���


� ।�� -
��㥬� ���. ����� ����� ᯨ �ঠ�� ��64K �� ����.

��. ⠪��: ⨯ TEditBuffer

BufLen
BufLen: Word;

��� ������ ⢮
BufLen � � �� ���� ����� ��砫�������
⥪�騬 ���������������
.

BufSize
BufSize: Word;

BufSize �।�⠢��� ��� � ᯨ ��� ����


�� ⥪ ⮢ � -���
��.
CanUndo
CanUndo: Boolean;

CanUndo ��।����, �����ন���� �� ।���� ०�� �⬥��


���������. �� 㬮�砭�� TEditor.Init ��⠭�������� ���
祭��
CanUndo �� True, �� 㪠����
뢠 ।����
�� ᯨᯨ �����
�⬥���� ���������.

CurPos
CurPos: TPoint;

CurPos 㪠����
뢠 ��ப� � ���
���
�� 䠩��, � ������ ��室����
�����. Cursor.X ���� ⥪�騩 ����� ���, � Cursor.Y- ⥪���� ���-
��.

CutPtr
CutPtr: Word

CutPtr �।�⠢��� ᯨ �� ��������� ����� � ����।��-


��.

DelCount
DelCount: Word;

������⢮ �� ����� ���� ��� ⪠ � � � , ����� �뫨 㤠����


���
�� ⥪��. DelCount � �� ������
��� �⬥�� ��������� , �易����
� 㤠������ �� ���� .

Delta
Delta: TPoint;

Delta �।�⠢��� ᯨ �� ������ �� � �ப ��� ���


���
� � ,
��������� �� �⮡� ����� �����. Delta.X- �� ����
������
���
���
, � Delta.Y- ����� ������� ��ப�.

DrawLine
DrawLine: Integer;

DrawLine �।�⠢��� ᯨ�
�� ��������� �� ���

��ப�, �
������ �������� ��⠢�塞� �� ��� . ��⮤ Draw � �� ����Draw-
Line ��� ��⨬���樨 ��, ����� ���� ��� � ����������
�����뢠�� .

DrawPtr
DrawPtr: Word;

DrawPtr �।�⠢��� ᯨ �� ��������� ����� � ����


, �
� �-
��㥬�� Draw.

GapLen
GapLen: Word

GapLen �।�⠢��� ᯨ ������


� � "��� ��⪠" ����� ⥪��
�� ����� � ⥪�� ��� �����. ����⨥ ��� ��
⪠ �������-
�� � ����� 15.
HScrollBar
HScrollBar: PScrollBar;

� � � � 뢠�� �� ��ꥪ� ��ਧ��⠫쭮� ������ ��� �⪨, � 易�-


� � � ।���. � � � � 祭�� nil 㪠����
뢠 �� ������� � � � �
� � � � � � � �� �⪨.

Indicator
Indicator: PIndicator;

� � � � 뢠�� �� ��ꥪ� ��������, � 易��� � ।���.



� � ꥪ� �������� �����뢠�� ।����㥬� � �����騩 ������
� � �� � ��� ���
� �.

� � . � � � : � � ꥪ� TIndicator

InsCount
InsCount: Word;

������⢮ �� � � � �, � � ⠢� � � � � � � ⥪� � , � � � � � � �
� � ��
�-
� � � � � � ६�饭�� �����. InsCount �� ��������� � ��
� ����
⬥ -
� � � � � , � 易���� � ��⠢� � � .

IsValid
IsValid: Boolean;

� �������� ����
� � � � ন� ���祭�� True, � � � ��
� � � � � ⨬ � . IsValid � � � �ᯨ �������
⮤ Valid. ��

� � . � � � : TEditor.Valid

Limit
Limit: TPoint;

Limit �ন� ��������


� ਭ� � ����� ᮤ�� ⥪
. Limit.X
� � � � � � � � � ᠬ � � ������� ����
�, � Limit.Y- � � � � � � ⢮ � � �

䠩��
.

Modified
Modified: Boolean;

� � � � � � � � 祭�� True, � � � � � � � � � � � � � � .

OverWrite
OverWrite: Boolean

� � OverWrite �� True, � � � � ⠥� � � � � � � �� ���


� � � � � � � � � � � ⢮� � � 訥 ��; � � � ⨢� � � � � 砥 ।���� ����-
� ⢫� � � � ⠢� � � � � � � � � � �� ���� .

Selecting
Selecting: Boolean;

Selecting �� True � � � � 砥, � � � � � 짮��⥫��⬥� -


� � � � � � , � � � � � � 뢠�� ��� �⬥⪨ ��砫������, �� �� �⬥⪨
��� ��� � . � �� ⠫ �� ��� � � � � � ६��� Select �� False.
SelEnd
SelEnd: Word;

SelEnd � ।�⠢��� � � ������ � � � � ���� ���� �


뤥 �
-��
��� � ⥪�� .

SelStart
SelStart: Word;

SelStart � ।�⠢��� � � ������ � � � � ���� ��砫� �뤥-


��� � � � � ⥪�� .

VScrollBar
VScrollBar: PScrollBar;

��� � 뢠�� �� �� ꥪ� ���⨪ �� 쭮� ������ � ⪨, � 易���


�� �
� ।���. � ��� 祭�� nil 㪠����
뢠 �� ������⢨� ⠪�� ������
⪨.
� �� �

*- �� ⮤ �
-----------------------------------------------------------------

Init
constructor Init (var Bounds: TRect;
AHScrollBar, AVScrollBar: PScrollBar;
AIndicator: PIndicator;
ABufSize: Word);

��� � � � � �⮡ ����

� ����� � � � ��栬�, 㪠����� 묨 �
Bounds, ��⥬ � ��� ��������� Init, 㭠�� ����������
TView. �� ⠭ �� � � � � � � GrowMode �� gfGrowHiX + gfGrowHiY,
Options �� Options ��� ofSelectable � EventMask ��
evMouseDown + evKeyDown + evCommand + evBroadcast. ��� � � 뢠��
��� � � � ।���� � ��ᢠ����� ���� HScrollBar, VScrollBar,
Indicator � BufSize ��� 祭��, �� ।���� � ����⢥
�� � ��. �� ⠭ �� � � � � � � CanUndo �� True.

� 뤥��� ������ ��� ���� ।���������


� � �, �� 뢠�
InitBuffer. � � ��� � � � � 뤥���� �� 㤠�����, � Init �� 뢠��
EditorDialog ��� � 뢠뤥���饭�� "Out of memory" �
�� ⠭ �� � � � � � � ���� ��
�� ��� 0. ��� ���
樠����樨 ����
�� 뢠�� SetBufLen (0).

�� . � �� : TView.Init, TEditor.InitBuffer, TEditor.SetBufLen

Load
constructor Load (var S: TStream);

��� � � � � � ��� � 㦠�� ��ꥪ� ।���� �� ���� � S, �� 뢠�


��� ��������� Load, 㭠��� � ����� � TView, � ��⥬ ��� � -
��� ��� � , ��� � � � � � TEditor. � 뤥��� ������ � ���樠�
������
��� � � �� , ��� � TEditor.Init.

�� . � �� : TView.Load, TEditor.InitBuffer, TEditor.SetBufLen

Done
destructor Done; virtual;

��� � ⮦ � � � ��� � ।����� � � �, �� 뢠� DoneBuffer, �� �


����
祣� ��� ������������ ��-��� �� ꥪ� ।���� ����� ������-
�� Done, 㭠�� ��������� � TView.

�� . � �� : TEditor.DoneBuffer, TView.Done

BufChar
function BufChar (P: Word): Char;

��� � � 頥� �� ������ � ����� P.

BufPtr
function BufPtr (P: Word): Word;

��� � � 頥� ���������������� ���� ����� P � �� �


��� � � � � � � � � �� ��
⪠ �� ������.

ChangeBounds
procedure ChangeBounds (var Bounds: TRect); virtual;

��� � � � � � ���
� ��������
� ���� ।���� �� ����-
��� Bounds, �� � � ⮣ � ��� � ����� Delta � 楫��㡥�������
�, � � ⥪�� �� �� ��� � � , �� � 祣� ���砥 ����室�����
��� � �뢠�� ��� � ��� �����. ��� �� , ��� � � �� ⮤ ��
TView, ��� � � �� �� ८�।����, TEditor.ChangeBounds �� 뢠����
�� 㣨����⮤��� , �� �� ��� � � � �� 뢠���� �����।�⢥���.

ConvertEvent
procedure ConvertEvent (var Event: TEvent); virtual;

� �� ����� HandleEvent ��� � � � �⪨


� ����� 祭�� ������ �
� �� ��� ����権 ।����� ����
� � �. � � �� ��� ��� � � � � � ���
��� � � � ��� � � � � 騥 ��㬮�砭�������祭��������, �� ��� � � �
�� ८�।����� ConvertEvent.

�� . � �� : TEditor.HandleEvent

CursorVisible
function CursorVisible: Boolean;

��� � � 頥� ���祭��True, �� ��� � � ��� � � � ������� -


������
� �����.

DeleteSelect
procedure DeleteSelect;

��� � � � � 뤥����� ���, � � � �� � � ��� � � � � . ��� ਬ��,


�� � ⮣ �, ��� ClipCut ��� � � � � � 뤥����� ��� � ���� , ��

㤠��� ��� �� ���� � ������� DeleteSelect.

DoneBuffer
procedure DoneBuffer; virtual;

� �� ������ ������, � 뤥������ ��� ���� ।�����


����
� � �, �
�� ⠭ �� � � � � � � Buffer �� nil.
Draw
procedure Draw; virtual;

��� � �� �� ���� ।����㥬��� ���, ��� � � � � � ��� � � 騩


��� � � � . �� ��� � , ��� ��� � �� , �� 室�騥�������� �
��� ����
� � ��
�⮡ ������
� �����, ��� 뢠� ���祭�� Delta.

GetPalette
function GetPalette: PPalette; virtual;

��� � � 頥� 㪠��⥫���CEditor- �� ⠭ �� � � � � � � �� 㬮�砭��


��� � � � � �⮡ ������
� ����� ।����.

HandleEvent
procedure HandleEvent (var Event: TEvent); virtual;

�� ��� � �� ‫��� ��� ﬨ‬ �


������ ���� ।����,
�� 뢠� ��� ��⮤ HandleEvent, 㭠���� ����� � TView, �
��⥬ �� 뢠� ConvertEvent ��� ��� � � � � ਢ�뢠��� ������ � ���
�-
� ��뢠� � � � �
��� � , �� � 祣� �� � � � � � � � � � � ।����.
��

� � 뢠 ���� ���� 騥 � � � � �
�� � � ��
ᮡ� �
��� ।����:

- ��� � :뤥�
� ���� ���;

- ��� � � � � � � : ��⠢�� / �� � � � � ;

- ��� � � � � : �� ६�饭�� �����, � �� ⥪��, ।�����


�-
��� , �� � �� � � ⥬��� ;

- ��饭��: ��� � � � � � � ⪨.
� ��� � � � �� �

InitBuffer
procedure InitBuffer; virtual;

�� 뢠�� MemAlloc ��� � 뤥����� BufSize ��� � ��� � � � � �


�� ।��塞�� ����� ��� ���� ।����, � �� ᢠ����� ���
㪠��⥫� Buffer.

InsertBuffer
function InsertBuffer (var P: PEditBuffer;
Offset, Length: Word;
AllowUndo, SelectText: Boolean): Boolean;

�� �� 楤�� �� ⠢�� ⥪�� ��� � � � � , �� 뢠����


� �� �
InsertFrom � InsertText; ��� ।�� �ਤ���� � �� 짮����� �� ����-
� ।�⢥���, �� ����� �ਤ����.

InserBuffer � �� �������⠢�� Length ��� � ⥪ �� �� P ( �� -


稭��� P[Offset]) � ��� � � � ⥪� ⮢ �� � ��� � CurPtr, 㤠��� ��
� � � � � 뤥����� ���. �� AllowUndo �� True, �
InsertBuffer ��� � � 뢠�� ���ଠ��, ��� � � ��� � � � � �
��� 짮��⥫� �⬥���� ��������� . �c �� SelectText �� True,
� ��⠢� 塞� ⥪�� �㤥� ������� � ���� �� ⠢����� � �
� 뤥������� �����.
��� � � 頥� ���祭�� True � �� 砥 �� 譮� �� ⠢��. ��
��⠢�� �� 㤠���� ( �� �⢨ �� � �ॢॢ�襭����� ���� ), �
InsertBuffer �� 뢠�� EditorDialog ��� � 뢠뢠뢮�

�।�०����� "Out
of memory", �� � 祣� �����頥� False.

�� . � �� : TEditor.InsertFrom, TEditor.InsertText

InsertFrom
function InsertFrom (Editor: PEditor):
Boolean; virtual;

��� � � ⢫ � � �� ⠢ �� ⥪�� �� Editor � ��� � ।����,


�� 뢠� InsertBuffer.

�� . � �� : TEditor.InsertBuffer

InsertText
function InsertText (Text: Pointer; Length: Word;
SelectText: Boolean): Boolean;

��� � � � � Length ��� � �� Text � ��� � ।����, � 뤥��



��⠢���� � ⥪�� � �� 砥 ��� ⢠ SelectText True.

ScrollTo
procedure ScrollTo (X, Y: Integer);

�� ६�頥� ���
��� X � �� �� Y � ��� � ��� 孨� 㣮� �⮡� -
��� � � � � ��� � � ।���� � �� ����室����� ���� ��뢠��
�⮡ ����
� �����.

Search
function Search (const FindStr: String;
Opts: Word): Boolean;

��� � � ⢫ � � ��� � ⥪�� �� FindStr � ��� � ।������-


��� , �� 稭�� � CurPtr. Opts �� ��� ��� ��� �, ��� � � � � � �
��
㬮�砭��, efCaseSensitive ��� ��� �, ��� ⢨ ⥫ 쭮�� � ॢॣ� ����
� 㪢, ��� WholeWordsOnly ��� ��� � � ���楫����.

��� � � 頥� True � �⬥砥� �������� ���; � ��⨢���


�� 砥 �����頥� False.

SetBufSize
function SetBufSize (NewSize: Word): Boolean; virtual;

��� � � 頥� ���祭��True � �� 砥, � � ��� ���� �����


��� � ��� NewSize. �� 㬮�砭�� SetBufSize
��� � � � � �� �
��� � � -
頥� True, � � NewSize ��� � � ��� �� BufSize. SetBufSize ��
��� � � � � ॠ�쭮�� ��� ���� ; ��� �쪮 㪠�뢠�� �� �,
��� � � �� ��� � ᤥ���� ⠪ � ���� � � � � � � . ��� � ⢥ � � �
��� � � � � � � -
��� ��� � ��� � � � ��� � � ⢫ � � � � � � ��� � � � � SetBufferSize.

�� . � �� : � 㭪�� SetBufferSize
SelSelect
procedure SelSelect (NewStart, NewEnd: Word;
CurStart: Boolean);

��� � � � ⥪�� ��� � � ��� � � � � � ‫ ﬨ‬NewStart � NewEnd � 뤥��


���
� �� ��� � 室����� ���� ��뢠�� ���� ��������. ��
CurStart �� True, � SelSelect ��� � 頥� ����� � ��砫� �뤥 -
��� � � � � ��� � � , � ��⨢��� �� 砥 ����� ����頥��� � ���
�� ���-
�� .

SetState
procedure SetState (AState: Word;
Enable: Boolean); virtual;

�� 뢠�� ��⮤ SetState, 㭠���� ������ TView, ��� ��� � � -


��⥫ 쭮� ��⠭���� 䫠������ ‫�ﭨ‬, �� � 祣� ������������
-
� 뢠�� ���
� ��������� ����� ���� �⪨ � ������� , � 易-
��� � ।���, � �� 祬 �����뢠 �� �� � ��砥 , �� ।����
��⨢�� , � ��� � � , � � �� ��� �⨢�� . �� � ��� � � � � � � � � 易�
���
�⮡ �����
� ����⮢ SetState �� 뢠�� UpdateCommands ��� -
� 襭�� �������饭������������� �� ���� ⮣
,� ���� ��
।���� ��⨢��. �� ��� � 室����� ���� ��� ����� � �
��� � � � � ⥫ � � ��� � � � � ��� � 室��� ��८�।�����
UpdateCommands,
� �� SetState.

�� . � �� : TView.SetState, TEditor.UpdateCommands

Store
procedure Store (var S: TStream);

��� � � 뢠�� ��ꥪ� ।���� � ��� S, �� 뢠� ��� ��⮤


Store, 㭠��
�������� TView, � ��⥬ ��� � � 뢠� ����, ��� � � � � �
TEditor.

�� . � �� : TView.Store

TrackCursor
procedure TrackCursor (Center: Boolean);

���⠢ ��� � � ��� ����� ���


����� ᯨ���
ন � � � ��
� ���
��
�,
�⮡ � ��� � � � � � ��� � � � � � � ��� � � . �� Center �� True,

室���� �����, �� ६�頥��� � �।��� � � -
�� ��, � ��� � � �
������
� �����.

Undo
procedure Undo;

�⬥��� ��� � � � � � � , � �� �������� ������ ����


�����
����
���-
�� 饭�� �����, ��� � ⠭ � � � � � � � ��� � ।��������
� � �� ‫�ﭨ‬,
��� � � ����� ��। ����
���� �६� 饭��� �����.
UpdateCommands
procedure UpdateCommands; virtual;

��� � � � � � ��� � � � � , ���������� ⥪� 饬 ���‫ �ﭨ‬।���-


� . cmUndo � 蠥��� �쪮 �� �砥 , � � � ��� � � � �� ��
����
����

�� ६�饭�� ����� ��� ��������. ��� � � � ��� � 㯭묨 ����
���
Cut, Copy � Paste � � �� 砥, � � � ��⥬ � � � ��� � ��� � � � �
⥪�� . ��� � � � � cmClear � 蠥��� � ��砥, � � ��� � � � � �⬥�-
��� ⥪�� . ��� � � � ��� � 㯭묨 �� ������� ���� � ������.

� � �� �� ���� ��ꥪ�� ��८�।����� UpdateCommands, �


��� � 室��� ��뢠�� ��� � ���� ��⮤ TEditor.UpdateCommands.

Valid
function Valid (Command: Word): Boolean; virtual;

��� � � � ,  ��� � �� � ��� ��������।���� ������-


�� ��� ��� � � � � , �� ।����� � Command. �� 㬮�砭�� Valid
��� � � -
��� �� ���� Command � ��� � � 頥� ���祭�� ���� IsValid. IsValid
��� � � ��� 祭�� False �� � � ��砥, � � ��� � � � � � � �� ���
� 뤥�����������������।����� ����
� � �.

*- ��� � � �
-----------------------------------------------------------------

�� ꥪ�� ।���� � �� ������� ⠭�������� �� 㬮�砭��


��� � � � � CEditor ��� � ⮡� ���
����⮡⮢ 6 � 7 � ⠭ ��� � � �� � -
��� ��� � .

��� � � � �ͻ
CEditor � 6 � 7 �
��� � � � �ͼ
� �
�� ଠ��� ���� ����祭�����ᢥ

*- ��� TEditorDialog Editors


-----------------------------------------------------------------

��� ᠭ��:
TEditorDialog = function (Dialog: Integer;
Info: Pointer): Word;

: TEditorDialog � ।�⠢��� ���� 楤� ��⨯,


� 㭪��
� ��㥬�� ��ꥪ ⠬� TEditor ��� �뢠뤥������ ����������
��� � . �� � �
�� � �� � � � � � � � �
��� � ��� � � � � �� � �� , �
�� ꥪ��
।���� �� ������� � � �� � � � ᯨ ⢥����
��� � � � � � � � ��� � ��� � � -
।�⢥���. ����� �⮣� ��� ��뢠�� �㭪�� EditorDialog, � 뢮-
��� � � �� � ��⢥�����饥 ���������� ���� � �⢥��⢨� �
��� 祭���, �� ।���� � ����� ���� Dialog.

���
�� � Dialog ��� � � � ��� � ��� � � �� ��� � ⠭ � edXXXX.
Info
��� � � 㪠�뢠�� �� ��� �������⥫�������
, ��� � � ��� � �
��� ॡ�������
㭪樨� ����������� ���� .
� 㭪樨 ����������� ���� ������ ��� �� ��� � � ��
쭮� ����-
��� � � ��� ��� ��� 祭�� �� � ���� Dialog. � 㭪�� StdEditorDialog
��� � 㤮������� ��짮�����
� �⪫ �� �� �� �����⨬ � ��� 祭��
Dialog. � ��� � � � 19.40 ᢥ������������� ���
祭�� Info, ��� � � -

��� ��饭��� �����頥�����祭���������������祭��Dia-


log.

��� � � � 19.40. ��� 祭�� �� ����� TEditorDialog, ��饭��


� ��� � � 頥�����祭��

-----------------------------------------------------------------
��� � ⠭ � Dialog ��� 祭�� ���ᠭ��
-----------------------------------------------------------------
edOutOfMemory Info nil
��� � 饭�� ���ନ��� ��� 짮��⥫� �
��� � � � ⪥ ��� � �
��� � � 頥��� ����������
��� 祭��

edReadError Info PString, 㪠�����


뢠 �� ���
䠩��
��� � 饭�� ���ନ��� ���짮��⥫� ��
� 訡�� �⥭��䠩��
��� � � 頥��� ����������
��� 祭��

edWriteError Info PString, 㪠�����


뢠 �� ���
䠩��
��� � 饭�� ���ନ��� ���짮��⥫� ��
� 訡�������� 䠩�
��� � � 頥��� ����������
��� 祭��

edCreateError Info PString, 㪠�����


뢠 �� ���
䠩��
��� � 饭�� ���ନ��� ���짮��⥫� ��
� 訡�� ����� 䠩��
��� � � 頥��� ����������
��� 祭��

edSaveModify Info PString, 㪠�����


뢠 �� ���
䠩��
��� � 饭�� ����訢������ 짮짮짮 ��⥫�

��� � 室����� �� � �����
��� � � � � � � �� । �����⨥�
䠩��
��� � � 頥��� cmYes ��� � � � �������������,
��� 祭�� cmNo ��� �⪠� � �� � � � �����
��� � � � � � � , cmCancel ��� �⪠� �
�� ��� � � � � 䠩��

edSaveUntitled Info PString, 㪠�����


뢠 �� ���
䠩��
��� � 饭�� ����訢������짮짮짮�
�⥫�

��� � 室����� �� ������
��� � ‫���ﭭ‬䠩��
��� � � 頥��� cmYes ��� � � ������
䠩��
,
��� 祭�� cmNo ��� �⪠� � �� � � � �����
䠩�� , cmCancel ��� �⪠ � � ��
��� � � � � 䠩��

edSaveAs Info PString, 㪠�����


뢠 �� ���
䠩��
��� � 饭�� ����� ����� 짮��⥫� ��
��� � � 䠩��
��� � � 頥��� cmCancel �� �⪠ � � ��
��� 祭�� �����
�� � 䠩��; �� 㣨�
��� 祭�� �� �� � �����䠩��
��� ��� � � � �� ��� � , ��
��� � � 㪠����뢠 Info

edFind Info ��� � 뢠�� �� � TFindDialogRec


��� � 饭�� ����� ���짮��⥫� �� ����� ���
⥪�� � ��� � � ��� �
��� � � 頥��� cmCancel �� �⪠ � � �� ��� �;
��� 祭�� � ��⨢��� ��砥 ��������
��� � � � , �� ��� � � � 㪠����

Info

edSearchFailed Info nil


��� � 饭�� ����饭�� ���짮��⥫� � �,
�� ⥪�� �� ��� � � �
��� � � 頥��� ����������
��� 祭��

edReplace Info ��� � 뢠�� �� �


��� � 饭�� TReplaceDialogRec
��� � � ��� 짮��⥫� �� ��������
⥪ �� , ⥪ �� ��� ��� � � � �
��� � � ��� �
��� � � 頥��� cmCancel �� �⪠ � � �� ��� �;
��� 祭�� � ��⨢��� ��砥 ��������
��� � � � , �� ��� � � � 㪠����

Info

edReplacePrompt Info �� ꥪ � �� TPoint �


��� � � � � 묨 ��� न��⠬�
�� �� �������������
��� � 饭�� ����� ���짮��⥫� � ������
⥪��
��� � � 頥��� cmYes ��� ��� � � � ⥪�� �
��� 祭�� �� � ������ ���; cmNo
� ���
�⪠� � �� ��� � � � , ��
� �� ���������; � cmCancel
��� �⪠ � � �� ��� � � � �
� ४�饭�� ����
-----------------------------------------------------------------

�� . ⠪ �� : ��� � ⠭ � � edXXXX, �� ६����� EditorDialog,


� 㭪�� DefEditorDialog, � 㭪�� StdEditorDialog.

*- �� ꥪ � TEditWindow Editors
-----------------------------------------------------------------
��� � ।���� �।�⠢��� �� ���
, ��⠭��� ��-
����� �����ꥪ � ।����, � ��� � � � ��� ।���-
�� 쭮 ���� �
� 䠩�� , ��� ��⥬ � � � � ��� � . ��� � ।���� ������ �� ����-
��� � � , � ⮡ � ��� � � � � � , ��� � � 䠩� ।��������, � �� ��
�� ��
��
ᮤ� ��� ������ ��� ᮤ ⪨ � ������� ���
�� ।����. �� ��� �
।���� �� ��।��� ����� 䠩�� , � 䠩� ��⠥��� ����‫�ﭭ‬.

*- ��� �
-----------------------------------------------------------------

Editor
Editor: PFileEditor;

��� � 뢠�� �� ��ꥪ� ।����, � 易��� � ����� ।����.

*- �� ⮤ �
-----------------------------------------------------------------

Init
constructor Init (var Bounds: TRect;
FileName: FNameStr; ANumber: Integer);

��� � � � � �� ꥪ� ���� ।����, �� 뢠� ��� ���������


Init, 㭠���������� TWindow, ��� �� ���
��� �� �栬���
� ,
㪠����� 묨 � Bounds, ��� ��� � � � � � � � � ��� � �, �� ।
�����
��� ANumber, � ��⥬ ��
�� � ��
��⠢��� �� ਧ��
�� ⠫�� �
��� ⨪ � � � � ��� � � � � �� �⪨ � ��ꥪ � �������� . � ��� � � 祭
��
Init ��ꥪ
��
��� ।���� 䠩��, �� ।���� ��� � ����
� ����� -
⪨, ��� � � � � � � ��� 䠩��
� ��� � � ��� � , ��� � � � � �� � , ��
।��-
��� � FileName.

�� . � �� : TWindow.Init, TFileEditor.Init

Load
constructor Load (var S: TStream);

��� � � � � � ��� � 㦠�� ���� ।���� �� ���� � S, �� 뢠�


� ������ TWindow, � ��⥬
��� ���������Load, 㭠���
��� 뢠� ���� ।����, ��� � � � � � � TEditWindow.

�� . � �� : TWindow.Load

Close
procedure Close; virtual;

�� 뢠�� ��⮤ Close, 㭠���


� ������ TWindow, � �� 砥,
� � ।���� �� ����� ��� ⥬�� ���� , � �� 砥 祣� ��
�� 뢠�� Hide, ��� � � ��� � � ।���� ��⥬���� ����.

�� . � �� : TWindow.Close

GetTitle
function GetTitle (MaxSize: Integer):
TTitleStr; virtual;
��� � � 頥� ��� 䠩�� � ।���� ��� ����
� 'Clipboard',
� � ।�������� ��⥬�� ����.

HandleEvent
procedure HandleEvent (var Event: TEvent); virtual;

��뢠��
�� � ������।����,
� �� 뢠� ��� ��⮤
HandleEvent, 㭠���������� TWindow, � ��⥬ � � � 뢠� ��-
���
饭�� cmUpdateTitle, ��� � � �뢠� �� �� �� ���� ��� ���� -
��� � � ��� � � � � � � . ��� � 饭�� cmUpdateTitle ��� � � � � � � �
�� ��� � � ,
��� � � ��� 䠩����������� ���������।���������
� � �.

�� . � �� : TWindow.HandleEvent

Store
procedure Store (var S: TStream);

��� � � 뢠�� ��ꥪ� ���� ।�������� � � � � S, �� 뢠�


��� ��⮤Store, 㭠��� � TWindow, � ��⥬ ��� � � 뢠�
� �����
।���� � ��� � ������� PutSubViewPtr.

�� . � �� : TWindow.Store, TGroup.PutSubViewPtr

*- TEmsStream Objects
-----------------------------------------------------------------

TEmsStream- �� � 樠���� �� �����������


� � , ॠ��
� -
��� 騩 ��� ���� ७��� �����(EMS), �� �� ������ TStream.
��� � � � � ⥫ � � ��� � � ।�⠢���� ��� � � 䨪���EMS, ��� 稪 ���
-
��� , ��
��
� � � � ⥪� 饥 ���������. TEmsStream �� ८�।����
6 ��� ���� ��⮤�� TStream, � � �� � ।��⠢��� � 樠���
��� � � � � � � � ��� � � � � � .

� ਬ�砭��: �� � ⫠ � � � � ��
� �
, � �� ����
饩 ���� EMS,
�� ⥣ � �� ����
�।� �� ����� ����⠭����� ������ EMS, ��।�-
��� � � � � ��� ��砥, � � ��� � ०���६���� �����
�� 襩 ��� -
訫��� , ��� �� ��� 뫨 �맢��� �������� Done ��� �� �� �
EMS.
��� � � ⮤ 㧪�) ��� � � � �� �����
� Done (��� �� १��� ���
��
��
� ��

EMS, � ਭ�������
訥 ���� .

*- ��� �
-----------------------------------------------------------------

Handle (�쪮 � ���⥭��)


Handle: Word;

��� � � 䨪���EMS ��� �� ��


�.

PageCount (�쪮 � ���⥭��)


PageCount: Word;

�� � � 뤥������ ���
�������� � � , �� 16� �� � ����
.

Position (�쪮 � ���⥭��)


Position: Longint;
���� 饥 ���������
�����
���� . ��-0 �
����� �
ࢠ.

Size (�쪮 � ���⥭��)


Size: Longint;

����������� ���� .

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(MinSize, MaxSize: Longint);

������� ��� EMS � ������������������


�� � � ���.

���� ���������Init, 㭠���� ������ TStream, � ��⥬
��⠭�������� ��� 祭�� Handle, Size � PageCount. �� 뢠��Error �
����� stInitError, �� ��� 樠��������㤠筠.

���� EMS �� ��� � 4.0 �� ����� ন���� ������७-���


��
��� ����� � ����� 塞묨 �� �� � . � ����
EMS �� ��� � 4.0
��� EMS �� ����� ��������� ����� �� ࢮ��砫쭮 �뤥�����
��
���. ��� ���
� 쭮� �����প� ��� ����� , ⠪ � ����� � � ���
-
� EMS, ��������� Init ���� EMS ��� � ���,
��� �� �
�����-
���騥 ���������� ��� �� �������� ���뤥�������
����� ����� EMS. Init �ᥣ �� � 뤥��� �� � � ������MinSize
����.

EMS ����� ��� ��4.0, �


� ���
- �� ����� ���� � �
Init �뤥��� �쪮 MinSize ���� ����� EMS, � ��⥬ ������
����, ��� �⮣� ���ॡ��� ���� ���
� �騥 �맮�� TEmsStream.Write,
�������� ��� ��� MaxSize.

� ���
- �� ����� ���� � � EMS ����� 4.0, � Init �뤥�� -
�� ⠪ ����� ���७��� �����, ��� �����, ������ ��
MaxSize
����, � �� ����⪥ ������ ���� � �������
TEmsStream.Write
�����頥� �訡�� .

Done
destructor Done; virtual;

��८�।��塞����: �� ��८�।������.

��������� ��� EMS � � � 㥬� EMS �� �


� �� ���
.�

��. ⠪��: TEmsStream.Init

GetPos
function GetPos: Longint; virtual;

��८�।��塞����: �� ��८�।������.

�����頥� ���祭�� ⥪�饩 ����樨����� . ��ࢠ� ����


-
��- 0.

��. ⠪��: TEmsStream.Seek

GetSize
function GetSize: Longint; virtual;

��८�।��塞����: �� ��८�।������.

�����頥� ���
�� �� � ���� .

Read
procedure Read(var Buf; Count: Word); virtual;

��८�।��塞����: �� ��८�।������.

��⠥� �� ���� Count ��� � ���� Buf, ��稭���⥪�饩


����樨 ����� .

��. ⠪��: TEmsStream.Write, stReadError

Seek
procedure Seek(Pos: Longint); virtual;

��८�।��塞����: �� ��८�।������.

��⠭�������� ⥪���� ������ � Pos ���� �� ���� ��


��.
���� ���� - 0.

��. ⠪��: TEmsStream.GetPos, TEmsStream.GetSize

Truncate
procedure Truncate; virtual;

��८�।��塞����: �� ��८�।������.

������ �� ����� �� ����, � 稭���⥪�饩 ����樨��


���� ����. ����� ������ ��⠭���������� �������
�� �����

����
�.

��. ⠪��: TDosStream.GetPos, TDosStream.Seek

Write
procedure Write(var Buf; Count: Word); virtual;

��८�।��塞����: ������� �� ��८�।������.

�����뢠��Count ���� �� ���� Buf � ���, ��稭���⥪�-


饩 ����樨.

��. ⠪��: TStream.Read, TEmsStream.GetPos, TEmsStream.Seek

*- ��� TEvent Drivers


-----------------------------------------------------------------

���ᠭ��: TEvent = record


What: Word;
case Word of
evNothing: ();
evMouse: (
Buttons: Byte;
Double: Boolean;
Where: TPoint);
evKeyDown: (
case Integer of
O: (KeyCode: Word);
1: (CharCode: Byte);
evMessage: (
Command: Word;
case Word of
0: (InfoPtr: Pointer);
1: (InfoLong: Longint);
2: (InfoWord: Word);
3: (InfoInt: Integer);
4: (InfoByte: Byte);
5: (InfoChar: Char);
end;

�㭪�� : ��� ��ਠ��� ���� TEvent �� �


��� 㭤����
⠫���
� � ���⥣��

� ������ � �� ‫ � ﬨ‬Turbo Vision. ���譨�
⠪�� ���
��,�� ����� ���������� � ��
"���" � �-
��-�������, ������㥬� ��������� ⢨��
� �⮡� ��������⮡ , ⮢
��� ����� � ��।����� � ���� ����ᥩ ⨯� TEvent.

��. ⠪��: evXXXX, ��⮤� HandleEvent, GetKeyEvent,


GetMouseEvent

*- ��ꥪ� TFileCollection StdDlg


-----------------------------------------------------------------

TFileCollection �।�⠢��� ������������ ����


����ᥩ ⨯� TSearchRec. ��������� ���� 䠩���� �� ���� ꥪ-
��

�� TFileCollection ��� ����祭�� � 䠩��� , ������� ����
� ��䠢��� �� 浪� .

����� ��� � ����� TFileCollection � ��� ��⮤�� �ਢ�����


� ����⨢��� ����� �� .

*- ��ꥪ� TFileDialog StdDlg


-----------------------------------------------------------------

TFileDialog �।�⠢��� �⠭���



� �� ��������� ����
����� 䠩��� .

*- ����
-----------------------------------------------------------------

Directory
Directory: PString;

Directory 㪠����
뢠 �� �� ப� , ᮤ �ঠ��
���
� ᮤ�
⥪ 饣� ���-
����.

FileList
FileList: PFileList;
FileList 㪠�뢠
ꥪ�� �� ���� �� �� ����������
����.

FileName
FileName: PFileInputLine;

FileName 㪠�뢠
ꥪ�� �� ���� �� ப� ����� ����� �� �
���������� ����.

��. ⠪��: ��ꥪ� TFileInputLine

WildCard
WildCard: TWildStr;

⥪�
���
WildCard � � 騥 ���, ���� � ��� �� .�

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init (AWildCard: TWildStr;
const ATitle, InputName: String;
AOptions: Word; HistoryId: Byte);

������� ���������� ���� �� ��


� ���������
,� ����
��� �
ATitle, ��뢠� ��������� Init, 㭠��� � ������ TDialog.
���樠�����������WildCard ���祭��� AWildCard. ������� ��ꥪ�
��ப� ����� �� �� �� ᢠ����� ��� ���� FileName, ��⠭�������
��砫쭮� ���祭�� FileName � �
WildCard. ������� ��ꥪ� ���
� ���짮��������
ப� , ��।����� � InputName, � ��뢠�� ���
� FileName.

������� ��ꥪ� �� ��� �易���� ��⪮� 'Files', �


⠪�� ���⨪����� ������ �ப� �
⪨.

� ������ �� �� ���祭��, ��।����� � �� � �


�� ������
� ��� �

AOptions, Init ���������� � ��⠢��� ������ Ok, Open,


Replace,
Clear � Help. ������� ⠪�� ������ Cancel. �� AOptions ����-
砥� fdNoLoadDir, � ���������� ���� �� ����㦠��� �� ��
ᮤ� ন���ᮤ⥪ � 饣� ��⠫���. � �� ����
fdNoLoadDir � � ��-
砥, ����� �� ��� �� � ������������������ ���� �, �⮡�
����� � ��������� ����� �� �����뢠��������
��⠫���.

��ꥪ� ������ ���ଠ 樨 � ���� ������������ � ��⠢�


�-
��� � ������ ��� ����������� ����.

��. ⠪��: TWindow.Init, ����⠭�� fdXXXX

Load
constructor Load (var S: TStream);

������� � ����㦠����ꥪ� TFileDialog �� ���� S, � 뢠�


��� ��������� Load, 㭠���
� ������ TDialog, � ��⥬
���뢠� ����, �������� TEditWindow, � ���ଠ�� � ⥪�饬
��⠫���.

��. ⠪��: TDialog.Load

Done
destructor Done; virtual;

��� ������������ �� ��ꥪ� ����������� ���� 䠩���, ��-

������ ��� ��ப� Directory, � ��⥬ ��뢠� �������� Done,


㭠��
�������
� TDialog.

GetData
function GetData (var: Rec); virtual;

���뢠�� ��ப� �� Rec, ��


८���
� � �� � ��⨯ PathStr, �
������ �� �� ������� ����� �� � , ��뢠� GetFileName.

��. ⠪��: TFileDialog.GetFileName

GetFileName
procedure GetFileName (var S: PathStr); virtual;

������� ��� ��� 騩 ������


����� ����� 䠩���������
���, ������饥 �������
����
��� , ���� � ��� �� �, � �� �
���
���

� S.

HandleEvent
procedure HandleEvent (var Event: TEvent); virtual;

�����뢠�� ������� ���� ᮤ ᮤ �,⨩ ��뢠� ��⮤


HandleE-
vent, 㭠�� �������� TDialog, � ��⥬ �� � 뢠� �������
���
cmFileOpen, cmFileReplace � cmFileClear ����� EndModal � ����-
⠭� � ������ � ����⢥ �� � ����, ������� ⥬ ᠬ� �������
�⮡�������������, �맢��襬� ���������� ���� 䠩���.

��. ⠪��: TDialog.HandleEvent, TGroupEndModal

SetData
procedure SetData (var Rec); virtual;

��뢠�� ��⮤ SetData, 㭠���


� ������ TDialog, ��� ⮣�,
�⮡� ���⮡ ���� ����⠬ ����������� �����
�� ���ᥬ �� �
����� �� Rec, � ��� �⮣� � ��砥, �� ��⠢訥���Rec
����� �।�⠢���� �� ���
�� �
, ��� ��������⨬����� ��⮣
�����, ��뢠� Valid, � ����� FileName �� � ���
�������� .

��. ⠪��: TDialog.SetData

Store
procedure Store (var S: TStream);

�����뢠�� ��ꥪ� ����������� ���� 䠩��� � ��� S,


��뢠�
��� ��⮤ Store, 㭠��� � TDialog, � ��⥬ �����뢠�
� �����
����, �������� TFileDialog.
� � . ⠪� � : TDialog.Store

Valid
function Valid (Command: Word): Boolean; virtual;

� � � � � 頥� True � � � 砥, � � Command � �
cmValid, ��
㪠����
뢠 �� � � 譮� �� ꥪ
��
��
�� . � � � � � � � � 㣨� ���祭��
Command, Valid � � 뢠�� �砫� �㭪�� Valid, 㭠�� ���������
TDialog. � � TDialog.Valid � � � � � 頥� True, � Valid � �� ���
� � � � �� � �� FileName � � � ।��� �����⨬��� ����� �� � . ��
� � � �� ����� ������� � , � Valid ����� 頥� ���祭��True;
� ��⨢��� �� 砥 ����뢠뤥�� ������饭�� "Invalid file name"
� ����� 頥� False.

�� . ⠪�� : TDialog.Valid

*- TFileEditor Editors
-----------------------------------------------------------------

�� ꥪ� ।���� �� ���।�⠢��� �

樠 �� �
� ���� -
�� �� ꥪ� , 㭠���
� ����� � TEditor, � � ।�����祭 ��� ।��-
� ���� ��ন����
�ᯨ ᮤ⥪
� ���� ⮢
ᯨ �� � .

*- ����
-----------------------------------------------------------------

FileName: FNameStr;

FileName � ।�⠢��� �� ।����㥬���䠩��


��� .

*- �� ⮤ �
-----------------------------------------------------------------

Init
constructor Init (var Bounds: TRect;
AHScrollBar, AVScrollBar: PScrollBar;
AIndicator: PIndicator;
AFileName: FNameStr);

������ � �� ꥪ� ।����, �� 뢠� ��� ��������� Init,


�������� TEditor, �� ।���� ������
㭠�� � ���� Bounds, AHScroll-

Bar, AVScrollBar � AIndicator � �


���
� �
� , �� �� �
0,
祣� ������ AFileName �� ������ � ����� 䠩� �� ����㦠�� 䠩�
� ����� � � LoadFile.

�� . ⠪�� : TEditor.Init, TFileEditor.LoadFile

Load
constructor Load (var S: TStream);

������ � � ���� 㦠�� ��ꥪ� ।���� �� ���� ���� � S,


�� 뢠� ��� ��������� Load, 㭠��� � ������ TEditor, �
�� ⥬ ��� 뢠� ��� 䠩��. �� ��� �� �����  ������� �, �
Load ���� 㦠��䠩� �������������
LoadFile.

�� . ⠪�� : TEditor.Load
DoneBuffer
destructor DoneBuffer; virtual;

�� ���� �� �
�� nil, � DoneBuffer �� 뢠��
DisposeBuffer ��� � �� �����������.

�� . ⠪�� : �� 楤� �DisposeBuffer

HandleEvent
procedure HandleEvent (var Event: TEvent); virtual;

��뢠��
�� � ������।���� �� �� , �� 뢠� ���
��⮤ HandleEvent, 㭠���� �����
� TEditor, � �� ⥬ � � � 뢠�
���
�� �� ����������������
� ����।����㥬���䠩�� .

�� . ⠪�� : TEditor.HandleEvent

InitBuffer
procedure InitBuffer; virtual;

� 뤥��� � ������� � � �
।��塞�� ����� ���� ��� �-
�� , �� 뢠� NewBuffer.

�� . ⠪�� : �� 楤� �NewBuffer

LoadFile
function LoadFile: Boolean;

����� 頥� True � �� 砥, �� �� �� ������� (�� ���� -


砥�, �� ��� 짮��⥫� ।������ ���� ��) ����� � �譮
㦥�; � ��⨢��� ��砥 �����頥�
���� False. ���뢠�� ��� ��
�� �� ������ FileName � ���� ।����� ����
� � �, ��⠭�������
����� ���� ��� ����
� � �� ⠭���� �� � .

Save
function Save: Boolean;

����� � �ন������� ।��������


� � ���, ��뢠�
SaveAs � ��砥, �� �� �� ����� �����, ��� SaveFile, ��
䠩� 㦥 ����� ���.

��. ⠪��: TFileEditor.Save, TFileEditor.SaveFile

SaveAs
function SaveAs: Boolean

��뢠�� EditorDialog ���� ���� ����������� ���� ����


祭��
����� �� ���� ।����㥬������ . �� ���짮��⥫� �� ��� -
�� ���������� ����, � SaveAs ������� ���������
�����������
����, �⮡� �� ��� � ����� ��� �� � , � ��⥬ ��뢠�� SaveFile
��� ������ � �ন�������� . SaveAs �����頥� ���祭�� ,
�����饭��� SaveFile.

��. ⠪��: ��楤� �EditorDialog,


� TFileEditor.SaveFile
SaveFile
function SaveFile: Boolean;

�� EditorFlag �ন� ��� efBackupFiles, � SaveFile


��२�����뢠�� ��ࢮ���� ��� � �� � � ⥬ �� ������ �
���७���.BAK. �����뢠�� �ন��� ���� ।��������� �
�� � ������ FileName � ��⠭�������� ���祭��䫠��Modified
� � False. �����頥� True � ��砥, �� �� �
� ������� 諮
㤠筮, � ��⨢��� ��砥 �����頥� False ��� �뢠뤥� �⢥�-
����饣� ����������� ����, �������饣� ��稭���㤠� .

SetBufSize
function SetBufSize (NewSize: Word): Boolean; virtual;

�����稢��� ��� 㬥��蠥� ������� ।��������


� �
����稭�, ����� 4K, �� ����室����� �������� GapLen.

Store
procedure Store (var S: TStream);

�����뢠�� ��ꥪ� ।���� � ��� S, ��뢠� ��� ��⮤


Store, 㭠���������� TEditor, � ��⥬ �����뢠� ��� 䠩�� �
����� � 饭�� ���.

UpdateCommands
procedure UpdateCommands; virtual;

��뢠�� ��⮤ UpdateCommands, 㭠���


� �����
� TEditor, �
��⥬ ������ ����㯭묨 ������� cmSave � cmSaveAs, ��� �騥��
��
�� � ।����� 䠫��
.

Valid
function Valid (Command: Word): Boolean; virtual;

�� cmCommand �� cmValid, � �����頥��� ���祭��


IsValid, ��� ��� False ���� � � ��砥, �� ।����
�� ���� � � ᮡ�������� ��� ����� ��. � ��⨢���
��砥 Valid ��� ��� ���祭�� ���� Modified ��� ����
⮣�, � ���� ���������
㦭� �� �� � �� ��। �����⨥�
����. �� ���祭�� Modified �� True, � Valid ��뢠��
���������� ����, ���饥 ��� 짮 � �⥫� ��� � � � � � � � � ��
��
���
���������. �� ���짮 ��⥫� ��� � 뢠 � � ��� � � � � � � � ��� � , �
Valid
�����頥� False, ��⠢��� ।���� ������; � ��⨢��� ��砥
���� ���� ��� ����, ���� ��� �ন��������� , � �����-
���� �� �롮� ���짮��⥫� , � Valid �����頥� True.

*- TFileInfoPane StdDlg
-----------------------------------------------------------------

TFileInfoPane �।�⠢��� ������ � ���ଠ 樥� �䠩�� ,


�⮡����� �����, �� � ଠ�� � �����
���騩 ��� �
�� � ���� -
騩 ������䠩��� �� ��TFileDialog.

����� ��� � ����� TFileInfoPane � ��� ��⮤�� �ਢ����� �


����⨢��� ����� ��.
*- TFileInputLine StdDlg
-----------------------------------------------------------------

TFileInputLine �।�⠢��� �� � 樠������


�� �����,
��ᮡ��㥬�� TFileDialog, ����� �������� � �� �ন���

�⢥� �� ������� cmFileFocused �� TFileList. ���� ����� ����

�� ����������� ।�������
� ���� �� ��
, ����� ����� ��
��-
��� ��� � ����� ���
.

����� ���� ����� TFileInputLine � ��� ��⮤�� �ਢ����� �


����⨢��� ����� ��.

*- TFileList StdDlg
-----------------------------------------------------------------

TFileList �।�⠢��� �� �����������


� ��� -��,
���� �।��������, �� ��� �ন� � ���� ⢥ �����
TFileCollection. �� �롮� ����� 䠩�� ��ꥪ� �� �
�뢠뤥����饭�� cmFileFocused, ���� 頥� ��ꥪ��
� ���
TFileInputLine � TFileInfoPane � �, �� �� ����室��� ��������
� � �ন���� � ⢥��⢨� � ����� �� � ��� �� ��. ��
㬮�砭�� �� ������  �����-��ᮡ � ��� ������� �
����易⥫쭮 � �� ਧ��⠫쭮� ���ᮤ � ᮤ ⪨ ��� .
� � �����

����� ��� � ����� TFileList � ��� ��⮤�� �ਢ����� �


����⨢��� ����� �� .

*- TFilterValidator Validate
-----------------------------------------------------------------

��ꥪ� 䨫�����
।���⥫� �����⨬��� �����⢫�� ���-
�� �������� ���짮��⥫�� ��� ଠ 樨. ������ ����
�� ন�
����� �����⨬�� �� ���� . �� ���짮��⥫� ��� ⠥� ���� ��
, � 䨫������� �����⨬��� 㪠����
�����⨬�� �� ���� 뢠 ��
�, �� �� �� ���� �����⨬.� �� ���짮��⥫� ��� � � �
�� ��㣮� �� ��, � 䨫���㪠�뢠뢠뢠 �
���������⨬����
�����
.

*- ����
-----------------------------------------------------------------

ValidChars
ValidChars: TCharSet;

����ন� ����� ��� ������, ����� ���짮��⥫� ��� � �


������. ���ਬ��, ��� �襭�� ����� �쪮 ��� ����室���
��⠭����� ValidChars �� ['0'..'9']. ValidChars ��⠭�������-
��� �� � �������
���� AValidChars, ��।
�������� ����������
Init.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init (AValidChars: TCharSet);

������� ��ꥪ� 䨫��� �� ।���⥫� �����⨬��� �����,


��뢠� ��� ��������� Init, 㭠��� � ����� � TValidator, �
��⥬ ��⠭������� ValidChars �� AValidChars.

Load
constructor Load (var S: TStream);

������� � ����㦠����ꥪ�䨫����� ।���⥫� �����⨬���


����� �� ���� S, � 뢠� ��� ��������� Load, 㭠���
�����
-
�� �� TValidator, � ��⥬ ���뢠� ����� �������� �� ������
ValidChars.

��. ⠪��: TValidator.Load

Error
procedure Error; virtual;

�뢠뤥������ ��饭��, �������饥 � �, �� ⥪ � ��⮢


��
���ᯨ ��ন�ᯨ������ �� ᮤ⨬ .
���

IsValid
function IsValid (const S: string): Boolean; virtual;

�����頥� True � ��砥, �� �� �� ���� S �ঠ��� �


ᯨ � ���� ���
�ᮤ⨬���� ValidChar; � ��⨢��� ��砥 �����-
頥� False.

IsValidInput
function IsValidInput (var S: string;
SuppressFill: Boolean): Boolean; virtual;

��� �������� ���� � ���� � S �� �।��� ��� ��宦�����


� ᯨ � ���� ���
�ᮤ⨬���� ValidChar. �����頥� True � ��砥,
�� �� �� ��� �� S  ����� ����� 묨; �� ��⨢��� ��砥
�����頥� False.

Store
procedure Store (var S: TStream);

������ ��ꥪ� 䨫����� ।���⥫� �����⨬��� ����� �


���� S, ���� 뢠� ValidChars.

*- ��� TFindDialogRec Editors


-----------------------------------------------------------------

���ᠭ��
TFindDialogRec = record
Find: String [80];
Options: Word;
end;

�㭪�� : ��������� ���� ���� ⥪� ,� ��뢠���


EditorDialog �� ��।�� edFind, ������� � ����⢥ ����
������ 㪠��⥫� �� TFindDialogRec. Find �ন�����

����, �������� �� 㬮�砭�� . Options �ন� �������
�������樨 ����⠭� 䫠��� ।���� efXXXX, ����뢠��� �,
��� ������ �ਢ������� ����.

��. ⠪��: ⨯ TEditorDialog

*- TFrame Views
-----------------------------------------------------------------

TFrame �।��⠢��� � ����


���� ������ � �������
-
��� ����. �����, �� ���짮��⥫� ��� � � � � �� ��� � � �
��짮-

���� ��ꥪ�� ������� ।�⢥���, �.�. ��� ����������� �


�����
�� 㬮�砭��
.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect);

��뢠�� ��������� Init, 㭠��� � �����


� TView, � ��⥬
��⠭�������� GrowMode �� gfGrowHiX + gfGrowHiY, � EventMask
�� EventMask or evBroadcast, ⠪, �⮡� ��ꥪ�� TFrame ���-

���뢠�� ��饭��-㢥�������� ��㬮�砭��.

��. ⠪��: TView.Init

Draw
procedure Draw; virtual;

��८�।��塞����: � �� ������।��.

�� � 梥⮢묨 �� ਡ�⠬� � ���


����� � ⮣� ���
�� , �⢥-
�����騬� ⥪�騬 ���祭��䫠���State (��⨢��, ����⨢�� �
��६�頥�� ). �������� ���� � � ��娢����
⮣� , ������� �
��������� ���� � ��������
� � ���祭�� Flags ����-
��������.
�������� ��������� �� ���� Title ����-��������, ��
⠪����
�������. ��⨢�� ���� ������� � ���������� ⮣ � ���� -

����, � ����⨢�� ���� � �����୮� ���


� � �� �⮣
����� .

‫ �ﭨ‬sfXXXX, ����⠭�� 䫠-
��. ⠪��: ����⠭�� 䫠��� ���
��� ���� wfX�XX

GetPalette
function GetPalette: Palette; virtual;

��८�।��塞����: � �� ������।��.

�����頥� 㪠��⥫� �� ������� ��, ��⠭�������� ��

㬮�砭��
, CFrame.

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;
��८�।��塞����: ��८�।������ ।��.

���� �뢠�� ������� ���� ᮤ ᮤ⨩� , ��뢠� ��⮤


HandleEvent, 㭠���
� ����� � TView, � ��⥬ � 樠�� 쭮 �� � -
�뢠�� ��� "���". �� ����뢠��� ���⮣ � � � � �� � �
����� "���", � TFrame �������� �⨥ cmClose. ���饫����-
��� �� ���⮣� � � � �娢������������������ ���饫�������

�� ���孥� ����� �� �������� �


� �⨥ cmZoom. �� ��६�饭
��
���� �� ������ ��� ���
� ��� �� ६�頥��� , � �� ��६�饭��
�� ���⮣�� ��������� ����
� � ६�頥���� � � � � � � � 㣮�
� � , � �⢥��⢥���, �� �������������� .

��. ⠪��: TView.HandleEvent

SetState
procedure SetState (AState: Word;
Enable: Boolean); virtual;

��८�।��塞����: ��८�।������ ।��.

��뢠�� TView.SetState, ��⥬, �� ����� ���‫�ﭨ‬ -


sfActive ��� sfDragging, � ��뢠�� DrawView ��� ���� � �
�⮡������� �����.

��. ⠪��: TView.SetState

*- ������
-----------------------------------------------------------------

��ꥪ�� �� � �� ����� ������� , ��।������� �� 㬮�砭�� ,


� � � � � � � � � � � � � � � � � � � � ⮡ �⠭�����
CFrame, ��� ��� �
������� ����.

1 2 3 4 5
�������������������ͻ
CFrame � 1� 1� 1 � 2 � 3 �
�������������������ͼ
� � � � �

������� ��� � � � ������� ���� ��
�� � � �
���� � �������� � ����������� ��⨢ �� ���������
��������� �
��⨢��� �����������
��

*- TGroup Views
-----------------------------------------------------------------

��ꥪ�� TGroup � ���� ������� (����� �� ��� ��⪮��


���뢠�� ��㯯���) ����� ��� ������ ���� 饩 �� �Turbo
Vision. ��㯯� �।�⠢��� �� � 樠���� � ⮡
� ������
�����. � ���������� �� �ᥬ ���� � ���,�
������ ������

TView, ��㯯� ����� �������� ���� � ��⮤� (������ ���
���
��८�।������), ��������騥 ������� �������� � 易��묨
� �� � �� �� � � � � ��� �ᯨ ⮡
(������ ��㣨�⮢ ��㯯� ) ��� ��
������ 뫨 � �������� . ��������� ਬ � ��������� ���-
��, ������ ������������� ����� ��
㯯���.

㯯� ����� ��‫אַ‬㣮���� ��� � � � � �� � � � ।��


���� ��
�� ������ �쪮 ���।�⢮� ��
TView, �� ⮡� � � � �� � �-� � �
���⮢ . �� 㯯� �⮡�
� � ��ᥡ� �१ ��� �
� Draw �� � � � � � � � � -
⮢. �� 㯯� ������� �� � � � � � � � � � ⠬�, � ����� ��� ����
��
��� � 稢��� ���� � � (����������) �ᥣ � �� ‫���� �����אַ‬,
�� ।�������� � Bounds. �� �६� ��� � ����� ��������
������� , ��⠢������ � �� 㯯� � �⮡ � � � � � � � १���� ���-
⥫쭮 � ����짮 ��⥫ � � ᮤ ᮤ⨩ � , ������ 㥬����� � ��. ����-
������� ����� ���� ����� �����, � ⠪�� 㤠���� �� �
�㯯� �����-
��‫� � ��( ����� � � � ﬨ‬,� � � � � � �� �� � � �� � � � �室 �� �����-

������ ����).

�� ���� ����� �� TGroup ⨯� �� ꥪ⮢, � ������ TWindow,


TDeskTop � TApplication (���।�⢮� TProgram) ����������� ���-
楯����㯯�������㯯� . TApplication ��� 筮 ������� ��ꥪ⠬�
����⨢ ��� ������ TDeskTop, �� �� ���‫�ﭨ‬ TStatusLine �
�⮡��� � � � � ��� � � ��� � TMenuView. TDeskTop ���� �� ��
TGroup � ⠪�� ���� � , ����� ������� ��ꥪ⠬� TWindow,
� �� � � ।� ������� ��ꥪ⠬� TFrame, TScrollBar � �.�.

�� ꥪ�� TGroup �� ।��� � � �� �


� � �ᮤ �������
ᮤ⨩ � ��
�������⠬ , ��� �� ��������� � ����� 8 " �� ⮡� � � � � � � � -
� �
��" � 9 " ��� ������
� � �, ����� � � � � � � ��‫"ﬨ‬.
�������

������ �� ��� � � � � � � �TView


� �� ८�।������� � TGroup
����⢥��� ���� � . ���ਬ��, �������� � �⥭�� �� 㯯� ��
���� ���� ���� ���⨣��� ����� �뫠맮쭮��� TGroup.Store

TGroup.Load, ����� � �� � � ।� ���⨢�� �����
��
� � �
����㦠����������� ��㯯� .

��ꥪ �� TGroup ���筮 ������������� �; �� �㤥� ��-


���� �������� ⨯�� ��ꥪ⮢, ���� ����� �� TGroup:
TApplication, TDeskTop � TWindow.

*- ����
-----------------------------------------------------------------

Buffer (�쪮 ��� �⥭��)


Buffer: PVideoBuf;

����뢠뢠뢠���� ����, �� � � 㥬� ��� ��� �� � � � � � ��


��� � � 㯯�, ��� �� nil, �� ��㯯� �� ����� ���-����.
���-���� ������ � 㭨��������� ����� �, �� 䫠�
ofBuffered � ���� Options �� ��襭.

��. ⠪��: TGroup.Draw, TGroup.Lock, TGroup.Unlock

Current (�쪮 ��� �⥭��)


Current: PView;

����뢠뢠뢠���� ���� � � ��� � � 騩 ������


��������
���
⮡� � � �
� � nil, �� ��� ��� ��
���� � � � ��� � � � � � .

��. ⠪��: sfSelected, TView.Select

Last (�쪮 ��� �⥭��)


Last : PView;

����뢠 �� �� ������� �������� ��㯯� (�� ����� ��


���設� � 横������� 浪�
). ���� Next ����
����� �������

㪠����
뢠 �� ���� �������� , ���� Next ����� 㪠����
뢠 ��
�� �� ��.�., �ନ��� 横���� �� .
騩 ��������

Phase (�쪮 ��� �⥭��)


Phase: (phFocused, phPreProcess, phPostProcess);

������ 䠧� ���⪨
� ��� ��⨢���� ᮤ
� ���
��
�� . ���������,

������ ��⠭������ 䫠�� ofPreProcess �/��� ofPostProcess
�����
��� � � � � � � � 祭�� Owner^.Phase, �⮡� ��।�����, � �����
䠧: phPreProcess, phFocused ��� phPostProcess �� �뫠짮뢮 ��
��
HandleEvent.

��. ⠪��: ofPreProcess, ofPostProcess, TGroup.HandleEvent

*- ��⮤�
-----------------------------------------------------------------

��⮤ Init
constructor Init(var Bounds: TRect);

������� ��ꥪ� ��㯯� � ������묨 ��� 栬�, ��뢠� �砫�


��⮤ Init, 㭠��� � ������ TView, � ��⥬ ��⠭������� �
Options 䫠�� ofSelectable � ofBuffered, � ��⠭��������
EventMask �� $FFFF.

��. ⠪��: TView.Init, TGroup.Load

*- Load
constructor Load(var S: TStream);

����㦠�� �����㯯������� , ��뢠� �砫� ��⮤ Load,


㭠��
�������� TView, � ��⥬ �� � � � � S.Get ��� �⥭�� ���-
���� ��������. ��� ����㧪� ��� �������⮢ �믮 ����
��室 �� �������⠬ ��� ��⠭���� ��� ��⠭��� 㪠����� �
��� ������� GetPeerViewPtr.

�� ⨯ ��ꥪ� , ���� ������ �� TGroup, �ন����� ,


����� 㪠����
뢠 �� ��������� , � ��� �⥭�� ��� ����
� ��
������ ��� ����� GetSubViewPtr ����� Load.

�� 㪠���� �� �������� �� nil, � ��� ����㧪�


��� �������⮢ ����㦠����Awaken.

��. ⠪��: TView.Load, TGroup.Store, TGroup.GetSubViewPtr,


TStream.Get
*- Done
destructor Done; virtual;

��८�।��塞����: ��� ��८�।������.

���뢠�� ��㯯�, � � � � � � � � �Hide, ��� � � � � � � � � � � �


����� ��㯯�, � ������� ��뢠�� �������� Done, 㭠��� �����
-
�� �� TView.

��. ⠪��: TView.Done

*- Awaken
procedure Awaken; virtual;

��뢠�� ��⮤� Awaken ��� ������� �� �������⮢ ��㯯�



横������� 浪�
.

��. ⠪��: TView.Awaken

*- ChangeBounds
procedure ChangeBounds(var Bounds: Trect); virtual;

��८�।��塞����: �� ��८�।������.

������� ��� � � � � 㯯� � �⢥��⢨� � ���祭��� Bounds,


� ��⥬ ��뢠�� CalcBounds � ChangeBounds ��� ������� �����
��㯯�.

��. ⠪��: TView.CalcBounds, TView.ChangeBounds

*- DataSize
function DataSize: Word; virtual;

��८�।��塞����: ��८�।������ ।��.

�����頥� ��騩 ��� �� 㯯�, ��뢠� � ����������


DataSize ��� ������� ��������.

��. ⠪��: TView.DataSize

*- Delete
procedure Delete(P: PView);

������ �������� P �� ��㯯� � �����뢠�� ��㣨� ���


�-
�������, �� �� ����室���. ���� Owner � Next � �
��⠭�������-
��� � 묨 nil. Delete, ������, �� ��� � � � � � � � � � � � � , �뢠뤥뤥��
��� ��� P.

��. ⠪��: TGroup.Insert

*- Draw
procedure Draw; virtual;

��८�।��塞����: �� ��८�।������.
�� ���-���� �������, � �� �뢠뢠뢮 ��
���
���� � �� -
�������� WriteBuf. � ��⨢��� ��砥 ��뢠�� Redraw ��� ��-
����� ������� �������� ��㯯�.

��. ⠪��: TGroup.Buffer, TGroup.Redraw

*- EndModal
procedure EndModal(Command: Word); virtual;

��८�।��塞����: ������� �� ��८�।������.

�� ��㯯� - �� ⥪�騩 ⮡ ०���� �� ����� �����, �


��� ०����� ���‫ � � � � � �ﭨ‬蠥���. Command ��।����� � ExecView
(����� ⮡ ᯨ��� ����� �� ����

� ���� ०����), ����� �
�� � � ।� �����頥� Command � ����⢥ १����. �� ��
�� 㯯� �� ���� ⥪�騬 ⮡ ०���� �� ����
� �����, � ���
��뢠�� ��⮤ EndModal, 㭠���
� ����� � TView.

��. ⠪��: TGroup.ExecView, TGroup.Execute

*- EventError
procedure EventError(var Event: TEvent); virtual;

��८�।��塞����: ������ ��८�।������.

EventError ��뢠���� ����� , ����� � 横�� ���� � 稪�


� �ᮤ ⨩� � � � 砥��� �⨥ , ���� � � �� ����� ������.
��
����
����⢨� �� 㬮�砭�� : �� Owner ��㯯� �� �� nil, �
EventError ��뢠�� EventError ���� ��������. ���筮 ��
楯�窠 �����頥��������� EventError �� TApplication. ��
����� ��८�।����� EventErr�r, ��� �������� �ॡ 㥬������� -

⢨�.

��. ⠪��: TGroup.Execute, TGroup.ExecView, sfModal

*- ExecView
function ExecView(P: PView): Word;

ExecView �।�⠢��� �� ०���� ��ਠ�� ��०����� ��-


⮤�� Insert � Delete. � �⫨ 稥 ��Insert, ��� ��⠢�� �⮡�-
������� ����� � ��㯯� ExecView �������, ����
⮡� � � �
��
������㤥� �믮 ���� , � ��⥬ 㤠������������頥�१��-
�� ��������. ExecView �� � � � � � � � � 拉 ���� � Turbo Vision,
���ਬ�� ��� ॠ���� 樨 TApplication.Run �
TProgram.ExecuteDialog.

ExecView ���� � ⥪ � 騩 ���⥪�� ⮡� � ��


(��� ���� �
�����,⮡०���� �� ����
� ����� � ����� ������), ������ �
०����, ��뢠� �^.SetState(sfModal, True), ��⠢��� � � ���-
�� (�� �� �� �� ��⠢���) � ��뢠�� P^.Execute. �����
P^.Execute �����頥� ��� � � � � , ��㯯� ����⠭���������� � �
�-
���饥 ���‫ � �ﭨ‬१���� P^.Execute �����頥������१��-
ExecView. �� P �� nil, � ExecView �����頥���
�� �뫠맮쭮��
���祭�� cmCancel.
��. ⠪��: TGroup.Execute, sfModal

*- Execute
function Execute: Word; virtual;

��८�।��塞����: �� � � � � � � ।��.

Execute �।�⠢��� ⪨� ᮤ
�� � �� ���� 横� � �� �� ⨩
��㯯�. ��� ����‫ � � � � �ﭭ‬砥� ���, �� � � � � GetEvent, �
���� � 뢠�� ��, �� � � � � HandleEvent. ���� �ᮤ⨩
����� 蠥���
��㯯�� ��� �������� � ������� �맮�� EndModal. ��।
��� � � -
襭��� ���, ������, Exec ��뢠�� Valid ��� ���� ⮣�, ��
०����� ���‫����� ���� ����� ���� ��� � �ﭨ‬襭�.

��������� TGroup.Execute �������� ����. ����⨬,


��
EndState- �� ���� ⨯� private � TGroup, ����
��⠭���������� �맮��� EndModal.

function TGroup.Execute: Word;


var
E: TEvent;
begin
repeat
EndState := 0;
repeat
GetEvent(E);
HandleEvent(E);
if E.What <> evNothing then EventError(E);
until EndState <> 0;
until Valid(EndState);
Execute := EndState;
end;

��. ⠪��: TGroup.GetEvent, TGroup.HandleEvent,


TGroup.EndModal, TGroup.Valid

*- First
function First: PView;

�����頥� 㪠��⥫���������������
��㯯� (������訩
), ��� nil, �� � ��㯯� ���
� ���設� � 横����� �� 浪�
�������⮢.

��. ⠪��: TGroup.Last

*- FirstThat
function FirstThat(P: Pointer): PView;

FirstThat �ਬ���� �㫥���㭪�� , �������� 㪠��⥫ �� ��


�㭪�� P, � ������� ��������� � 横������� 浪�����

���, ���� P �� ���� True. ������� - 㪠��⥫ � �� �������


�,
��� ��� �� P ����� 頥� True, ��� nil, �� �㭪��P ������-
�� False ��� ��� �������⮢ . P ������ 㪠�뢠�� �� ����
����
�㭪�� ⨯� far, ��� �� � � � � � ��
��⨯
��� �
Pointer, � ������-
���� ���祭��⨯�Boolean. ���ਬ��:

function MyTestFunc(P: PView): Boolean; far;

��⮤ SubViewAt, ��������� ����, �����頥� 㪠��⥫���


���� ��������, �ঠ 騩 ������
���
.

function TMyGroup.SubViewAt(Where: TPoint): PView;

function ContainsPoint(P: PView): Boolean; far;


var
Bounds: TRect;
begin
P^.GetBounds(Bounds);
ContainsPoint := (P^.State and sfVisible <> 0) and
Bounds.Contains(Where);
end;

begin
SubViewAt := FirstThat(@ContainsPoint);
end;

��. ⠪��: TGroup.ForEach

*- FocusNext
function FocusNext (Forwards: Boolean): Boolean;

�� Forwards �� True, � FocusNext ��।��� 䮪�������


� � � �饬� ���������, ����� ����� ����� (� �����
� � ⠭�-
���� ��� ofSelectable), � 横����� �� 浪� . �� Forwards
�� False, � ��⮤ ��।��� 䮪���।��饬� ���������,
����� ����� ���� ��� . � ��砥 ��� �����頥� True; �
��⨢��� ��砥 �����頥� False.

�� � �⮡� � � � � � � � � � � � � � ⠭����� ��� ofValidate, �


��� ��뢠�� Valid (cmReleaseFocus) ��� ��।������ ⮣�, �����
�� 䮪�� �����⮡. � � �� Valid �����頥� ���祭��False, �
�⮡��� � � � � � � � � � ⠢��� 䮪���ᥡ�, � FocusNext �����-
頥� False.

��. ⠪��: TView.Focus

*- ForEach
procedure ForEach (P: Pointer);

ForEach �ਬ���� ����⢨�, �������� 㪠��⥫������楤���


P, � ������� ��������� ��㯯� � 横������� 浪� . ���� � � P

������ 㪠�뢠�� ���������� ��楤���⨯�far, ������� ���-


���� ⨯� Pointer, ���ਬ��:

procedure MyActionProc(P: PView); far;

��⮤ MoveSubViews ��६�頥� �� �����������㯯���


����稭�, �������� � Delta. ����� �������� �� �� � 짮
�����
Lock � UnLock ��� ���� 祭�� �� �믮��塞�� ����権 �� ���-
���� ��� � ।���饭������������ 栭��
.

procedure TMyGroup.MoveSubViews(Delta: TPoint);

procedure DoMoveView(P: PView); far;


begin
P^.MoveTo(P^.Origin.X + Delta.X, P^.Origin.Y + Delta.Y);
end;

begin
Lock;
ForEach(@DoMoveView);
UnLock;
end;

��. ⠪��: TGroup.FirstThat

*- GetData
procedure GetData(var Rec); virtual;

��८�।��塞����: �� � � � � � � ।��.

��뢠�� GetData ��� ������� �������� � �����


� 横��
�-
��, 㢥��稢����������,� �������� � Rec, �� DataSize ��� ���-

���� ��������.

��. ⠪��: TView.GetData, TGroup.SetData

*- GetHelpCtx
function GetHelpCtx: Word; virtual;

��८�।��塞����: ��८�।������ ।��.

�����頥� ���⥪�� ��� ���� � ����� 騩


���� ��� ���
������ �⮡�� � � � � � � � � � � , ��뢠� ��⮤ GetHelpCtx �뢠뤥뤥���
-
���� ��������. �� �� ���� �� �� � � � � � � � � � ⮡ � � ⮢
��� � �
���⥪�� �������, � GetHelpCtx �����頥� ���祭���⢥�-
���� ���� HelpCtx.

*- GetSubViewPtr
procedure GetSubViewPtr(var S: TStream; var P);

����㦠��㪠��⥫� �� �������� � �� ���� S.


GetSubViewPtr ������ �� � 짮������ �쪮 ����� ���������
Load, ��� �⥭�� ���祭�� 㪠��⥫��, ����� �뫠뢠뫨 ����ᠭ � �맮-
��� PutSubViewPtr �� ��⮤� Store.

��. ⠪��: TView.PutSubViewPtr, TGroup.Load, TGroup.Store

*- HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।��塞����: ��� �� � � � � � � .
��㯯� ���� � 뢠�� ���, ��।���� �� �� ��
���
HandleEvent ������ ��� ����� �������⮢. ������
����⢨⥫��
������� ������ �� ����� �� � � :

- ��� ��⨢��� ᮤ �⨩
ᮤ (�� 㬮�砭��evKeyDown � evCommand,
�. ��६����� FocusedEvents) �� ⨩� �ᮤ
��⪠ �� � 믮������ � ��
䠧�:

- �।���⥫짮쭠쭠 �� ��⪠ . ���� Phase ��㯯� ��⠭����-



������ � � phPreProcess, � �⨥ �� ।����� ���-
��� HandleEvent ��� �������⮢, � ������
��⠭�����
䫠� ofPreProcess;

- ���� � �
���⪠
��
��
�� . Phase ��⠭���������� ��
phFocused, � �⨥ �� ।����� HandleEvent ��
⮡� �-
���� �����, ���� � � � � � � � � � 騩 �����;

- 䠧� ��� ����⪨ . Phase ��⠭���������� ��


phPostProcess, � �⨥ �� ।����� �� ��
��� HandleEvent
��� �������⮢, ��� ������ ��⠭����� 䫠

ofPostProcess;

�����
- ��� ����樮�� �ᮤ
�ᮤ⨩
� (�� 㬮�砭�� evMouse, �.

��६����� PositionalEvents), �⨥ �� ।����� � HandleEvent


��ࢮ� � � � � � � � � � (� 横��������浪�), ���� 稢��騩 ���
-
�� 㣮�쭨���� � ��ন�
� �� � Event.Where.

��� ᮤ ᮤ-⨩
㢥��������
(�.�. �� ��⨢��� � �� ����樮���
-

������), �⨥ �� ।����� �� ��
� HandleEvent ������� �������-
� ��㯯� � 横��������浪�
.

�ਬ�砭�� : �� ���� EventMask �������� ������ �����


�� � � , � TGroup.HandleEvent ������� �� �㤥� ���뫠�����
� ⮣� ����� ���������. ��� ਬ��, �� 㬮�砭��EventMask ��
TView ����頥� evMouseUp, evMouseMove � evMouseAuto, ������
TGroup.HandleEvent ������� �� �㤥� ���뫠��⠪�� ��� � ⠭-
����� ��
� TView.

��. ⠪��: FocusedEvents, PositionalEvents, ����⠭�� �-


⨩ evXXXX, �� ⮤� TView.EventMask, HandleEvent

*- Insert
procedure Insert(P: PView);

��⠢��� �� ⮡� � � � � � � � � , ������� 㪠��⥫��� , �


�� � � � � � � � ᯨᯨ 㯯 �� ⮢
�. ���� �������� ����頥����� ।
�ᥬ� �� 㣨�� �⮡ � � � � 뫠묨묨������⠬�� . �� � ��������
��⠭������ 䫠�� ofCenterX ��� ofCenterY, � �� 業������� �
��㯯� �� �⢥����� 饩 �� . �� �� ⮡� � � � � � � � � � � � � �
��⠭������� 䫠� sfVisible, � �� �㤥� �������� ��㯯� ; �
��⨢��� ��砥 ���� ⠥��� �������� �� �� ���, ���� �� 㤥� �
������� � 樠� 쭮. �� ��⮡�� �������� ����� ��⠭�������
�� ofSelectable, � �� �⠭������ ⥪�� ������������� -
�.

��. ⠪��: TGroup.Delete, TGroup.ExecView

*- InsertBefore
procedure InsertBefore(P, Target: PView);

��⠢��� �� � �������� � ��⮡


⮡� । �� ����
� ����-
�, � ������Target. �� Target ����� ���祭�� nil, � �⮡�-
����� ����� ���頥� ����� ��� ���� � ⮡�
� � ��������-
㯯�.
⮢ ��

��. ⠪��: TGroup.Insert, TGroup.Delete

*- Lock
procedure Lock;

�������� ��㯯�, ����ন��� �� �����, ��� ����������-

�����⠬� �� � ������ ��� , ���� ��㯯� �� �㤥�


�-
��. Lock �� ����� ����⢨�, �� ��㯯� �� ����� ���-���� (�.
ofBuffered � TGroup.Buffer). Lock � ⠥�, �� � �� ��
���
������� � , ����� �⢥��⢥��� �� � �� ���
� ������ UnLock.
����� �맮� UnLock �� � �� ��� � �� 0, ��� ��㯯� ������ ��
�� � ����
, � � � �, ᮡ����� � ��� -����.
��

���������� ���� ����樨 ���� � � ������� � 맮� ���Lock �


UnLock, ����� ᮡ��� � � � � � � � � � � � � � � � � � � � � � � � � �
����� �� �
��. ���ਬ��, TDeskTop.Tile � TDeskTop.Cascade � � �-
����� Lock � UnLock ��� �� � �� ������ ��� .

�ਬ�砭��: ������⢠ �맮� �� Lock � UnLock ������ ����


� � , ���� ��㯯� ����� ������� � ����‫��������� �ﭭ‬
� �����
����
���‫�ﭨ‬, �� �ਢ���� � ��, �� ��� �� �� ������ �뢥� ���
�� �� , ����� �� �����������.

��. ⠪��: TGroup.Unlock

*- PutSubViewPtr
procedure PutSubViewPtr(var S: TStream; P: PView);

���� �� �� �
�� � ������� � � ����� S. ��⮤
PutSubViewPtr ������ � �� � 짮������ �쪮 ����� ���
⮤� Store
��� ����� ���祭�� ����� ��� , ����� ����� ���� ������ ��-

������ GetSubViewPtr � ��������� Load.

��. ⠪��: TGroup.GetSubViewPtr, TGroup.Store, TGroup.Load

*- Redraw
procedure Redraw;

�����뢠�� ��������� ��㯯� � 横����� �� 浪�.


TGroup.Redraw �⫨砥��� �� TGroup.Draw ⥬, �� ���� �� ��
������� �� ��� ��������뢮� ���� ���-����.
��. ⠪��: TGroup.Draw

*- SelectNext
procedure SelectNext(Forwards: Boolean);

�� Forwards � � True, � SelectNext �㤥� �롨��� (��-


���� ⥪�騬) �� �� 騩 �롨� �� �������� (��������, �
����� ��⠭����� ��� ofSelectable) ��㯯� � 横����� ���� -
��. �� Forwards � � False, � ��⮤ �롨� � �।��騩 �롨-
�� ��������.

��������! SelectNext �������� �����⨬���� � �ᥣ �� � 롨-

� ����騩 �������� . �� ����室����� �������������� -



�⨬���� �롮 � �� ��������� 䮪��, ����� SelectNext ����室�-
�� ���짮���� FocusNext.

��. ⠪��: ����⠭�� �� �� �� �


���
� ofXXXX,
TView.FocusNext

*- SetData
procedure SetData(var Rec); virtual;

��८�।��塞����: � �� ������।��.

��뢠�� SetData ��� ������� �������� � ����� � 横���-


�� ���浪�, �� � �� ��
�������� , �������� � Rec �� DataSize,
��� ������� ��������.

��. ⠪��: TGroup.GetData, TView.SetData

*- SetState
procedure SetState(AState: Word;
Enable: Boolean); virtual;

��८�।��塞����: ��८�।������ ।��.

���砫� ��뢠�� ��⮤ TView, ��� ������


�� State, �
��⥬ �������� ��������� ����� �� �
���:

- �� AState ����� ���祭�� sfActive, sfExposed ���


sfDragging, � ��� ������� �������� ��� ��� ���������� ��
뢠-
���� SetState;

- �� AState ����� ���祭�� sfFocused, � ��� ��⠭����


�� �sfFocused ��뢠���� SetState ��� �� ������� ����� 騩
������ ��������.

��. ⠪��: TView.SetState

*- Store
procedure Store(var S: TStream);

������ ��� ��㯯� � ���� , �砫� ��뢠� ��⮤ Store,


��� �� TView, � ��⥬ � �� ����TStream.Put ��� �뢮� �
������
������� ��������.
�� ⨯ ����, ���� ���� �� TGroup, �ন� ���� ,
����� 㪠�뢠 �� �� ���������, � ��� ����� ��� ����� ��
������ ���짮����PutSubViewPtr ����� ��� ��⮤� Store.

��. ⠪��: TView.Store, TGroup.PutSubViewPtr, TGroup.Load

*- Unlock
procedure Unlock;

����������� ��㯯�, �� ������祭�� ����� ���� �� �


.
�� ��⠭������ �� 0, � ��� ��㯯��뢮-
�� ���� � ����
, � �� ����
����� �� �� ����, ������ ��� -����.

��. ⠪��: TGroup.Lock

*- Valid
function Valid(Command: Word): Boolean; virtual;

��뢠�� ��⮤ Valid ��� ������� �������� � 横����� �


���浪� ������頥� True � ��砥, �� �맮� �Valid ��� ����-
�����⮢ �������� True; � �� � ���⨢ � 砥 �����頥� False.
TGroup.Valid � �� ������� ���� 横�� � �⪨ � � ᮤ
�⨩�
TGroup.Execute ��� ���⢥ত���� ⮣�, �� ������� �
���. �������� ���‫��� �� �� ������� ���� ����� �� �ﭨ‬,

���� �� �맮� �Valid �� ����� True. �������� ����� ������

�������� ⠫��� � ����.


False, �� �� ���, �⮡� � �

��. ⠪��: TView.Valid, TGroup.Execute

*- THistory Dialogs
-----------------------------------------------------------------

���� THistory ॠ����� ��


� � 믮� ������������,

����⢨� ��� �롮� � ���� �����. ���� �THistory ��뢠����


� ��ꥪ� � ��� ����� TInputLine � � � ���� ���
�� . ����-
���� �� ᮡ ��
�� ���
�� ���� � ����� �������� �� ।���-
��� ������ �����. ����� ���� ����������, ��������
���� �-
����� �������
�� �� �����, � ���� �����������.

���� THistory �����뢠���� � ���� ���⮣� �� � (|�|) �


���� ���� �����. ����� ���짮��⥫ � �롨 ⮣ � ����� ������

����,��Turbo Vision ��뢠�� ���� ������ ��� (�� �
THistoryWindow) � ����� ������
��� (�� � THistoryViewer),
�� ঠ饬 ������
�����
����� .

������� �� ����� ����� � �� �


�� 짮���� ���� ।�-

��������� ����� ����� �� ��ID.
ਨ, � �� ����
��

*- ����
-----------------------------------------------------------------

HistoryID (�쪮 ��� �⥭��)


HistoryID: Word;
������� � �� ����
� �� �� ��������� ID, �����
砥-
� ��
����� . �������
� ꥪ�������
�� ��
� ����� �����
���������� � �� �짮���� �� ��
���� ,�� �� ����������� -

�������ID (������ ��
).

Link (�쪮 ��� �⥭��)


Link: PInputLine;

�����⥫� �� �易��� ��ꥪ� TInputLine.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect;
ALink: PInputLine; AHistoryId: Word);

������� ��ꥪ� THist�ry ��������� ���, ��뢠� �����


��-
�� Init, ��� ������
�� TView, � ��⥬ ��⠭�������� ����
Link � HistoryId �묨 ALink � AHistoryId. ���� Options ��⠭�-
��������� � �� ofPostProcess, � EventMask - �� evBroadcast.

��. ⠪��: TView.Init

Load
constructor Load(var S: TStream);

������� � ���樠������� ��ꥪ� �।���ਨ �� ���� � S,


��뢠� ��������� Load, ��� ������
�� TView, � ��� Link �
HistoryId �� S.

��. ⠪��: TView.Load

Draw
procedure Draw; virtual;

��८�।��塞����: ��८�।������ ।��.

����� ���⮣��� �।���ਨ, � �� ����


������� , �����祭-
��� �� ��砭��.

GetPalette
function GetPalette: PPalette; virtual;

��८�।��塞����: ������ ��८�।������.

�� ��� ��砭�� �������


�����頥� 㪠��⥫� �� � �� ��
CHistory.

HandleEvent
procedure HandleEvent

��� 뢠�� ������� ���� ᮤ ᮤ


HandleEvent �� � �,⨩ ��뢠�
��⮤ HandleEvent, ��� ������
�� TView, � ��⥬ �⢥砥� ��
��� � 樠���� ���:
- �� ���짮��⥫� ���饫������ �� ���⮣� � � � ��
ᯨ -
����ਨ ����� ��� �������� ������� "��५�� ����", ��室
��� �
�易���� ���� �����, � �� � ��������
⮡� ।���ਨ
� -
���� ���� �।���ਨ. �� ��砭�� �� ���� �� ���� �� ����
� �� 6 ��� � ���易���� ���� �����, �� ����頥��� �����
����������� ���� ��������. HandleEvent ��।��� ���
�����-
��
�騩 �� ‫אַ‬㣮�쭨 � InitHistoryWindow, �⮡� ��� ���� ���� �� -
����ਨ;

- �� �易���� ���� ����� ���� � �� ����� ��� ���⮣ -


��
� �।���ਨ ����砥� �� �� ������� cmRecordHistory, �
HandleEvent � � 뢠�� RecordHistory ��� ����� ⥪ �饣� �ন�� -
�� ���� ����� � ���� �।���ਨ.

��. ⠪��: TView.HandleEvent, THistory.InitHistoryWindow,


THistory.RecordHistory

InitHistoryWindow
function InitHistoryList

function InitHistory (var Bounds: TRect):


PHistoryWindow; virtual;

������� ��ꥪ� ���� � ।���ਨ � ��� � ��‫אַ‬㣮�� -


� �� �

�����, ��।���� � Bounds, � ID �।���ਨ �� HistoryID, ����-
��� 㪠��⥫� �� ����� ������ ���� . ����� ��⠭�����
���
���⥪ �� ����� � � � � � � � � � � ।���ਨ �� ��� ⥪�� �����
���
��
�易���� ���� �����. �� ����稪 �ᮤ⨩THistory ��뢠��
InitHistoryWindow � �⢥� �� ������ ������ ��� ���
⮣�
���� � ��
�।���ਨ ��� ������ �������� �������� � ������ �易����
���� �����.

��. ⠪��: THistoryWindow.Init, THistory.HandleEvent

RecordHistory
procedure RecordHistory (const S: String); virtual;

�������� ���� S � �� � ।���ਨ, �易����� � �⮡ -


���� �����
� , ���ᠭ � �HistoryID.

��. ⠪��: ���� ��HistoryAdd

Store
procedure Store(var S:TStream);

���� �� ��ꥪ� � ।���ਨ � ����� S, ��뢠� ��⮤


Store, ��� �� TView, � ��⥬ �����뢠�� Link �
������
HistoryId � S.

��. ⠪��: TView.Load

*- ������
-----------------------------------------------------------------
���⮣� �� ������
� �� ����� ������� , ��।������� ��
㬮�砭��, CHistory, ��� ��
⮡�� ���22 � 23-�� ����⮢ �⠭��-
��� ������ ����������� ����.

1 2
���������ͻ
CHistory � 22 � 23 �
���������ͼ
��५�� ��������� �������� ����

*- THistoryViewer Dialogs
-----------------------------------------------------------------

THistoryViewer  ���� ���� ���� ���


� � TListViewer, � �� ��
-
��� ���� ��
� �।���ਨ. �� ᮤ� �ᮤ �������
⥬ ��
�� � �� � ���� � ���� � ᯨ����
 ���� ������
� � � 롮�
����� ���⮣� �� ���� ���
� �. ��� ��⠫쭮�� ��� ᠭ�� �����������-
��� THistory, THistoryWindow � THistoryViewer � � ����ᠭ ��
THistory � �� �����.

����� ���� ���� THistoryViewer � ��� ��⮤�� �ਢ������ �


���⥪��� �� �� �� .

*- THistoryWindow Dialogs
-----------------------------------------------------------------

THistoryWindow �।�⠢��� �� � 樠���� �� �������� ��


(��������
� � � ) TWindow, ������� ꥪ� �� �� �
�� ��� � �
� �� ��
�� � ��� ����
�, ����� ���짮��⥫� �롨⮣ �� ����� ���� �
���
����
���
� � , ������������ � ���� �����
� ���� . �� 㬮�砭�� ��
���� �� ����� ��������� � �����. ����� ����
����
��� ����
����뢠���� ��� ⮣� � � ,� ����� ��� ����� ���� ������,
�� ��
����� �������� � ��� ��� "�� �� ���� ".

����� ��� �� ���ᮡ�짮����� ��������


� � � 易����
� ���� ��ꥪ⮢ �. THistory � �� �����.

*- TIndicator Editors
-----------------------------------------------------------------

��ꥪ� �������� ��� � �� ������ ।���� ����� �


���� � ����� � ��� ����� ������ ��. ��ꥪ�
�, � �� �������
���� ।���� ���� ��������� �� 㬮�砭�� � ��뢠 �� �� �
��ꥪ⠬� ।����. ��������� ����� ⠪�� ���� � ।����-
�� �� �।����� ���⥪�� ���� ।����.

*- ����
-----------------------------------------------------------------

Location
Location: TPoint;

���⥪� � � ������������ � ���


Location � � ���, �����
���� �����뢠�� . ��ꥪ�� ।���� ����� � � �������� �
��
�-
����� Location.
Modified
Modified: Boolean;

Modified �� True � ��砥, �� ⥪�� � �易���� ।��-


�� ��������. Draw ��� ��� ���祭�� Modified � �����뢠��
� 樠��� �� ��, �⮡� �।�।��� ���짮��⥫� � ���‫�ﭨ‬
���� ।����� ����
� � �.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init (var Bounds: TRect);

������� �������� � �� ���, 㪠�����묨 � Bounds, ��뢠�


��������� Init, ��� �� TView, � ��⥬ �ਢ�뢠��
������
���� ����� � ������ ������� �� ���� ��������, ���-
�⮡�
�������� GrowMode �� gfGrowLoY + gfGrowHiY.

��. ⠪��: TView.Init

Draw
procedure Draw; virtual;

����� �������� � �ଥ: ����: ��� ���


, � ����묨 �-
��� �� ��# � ��砥, �� Modified �� True.

GetPalette
function GetPalette: PPalette; virtual;

�� ��� ��砭�� �������


�����頥� 㪠��⥫� �� � �� ��
CIndicator.

SetState
procedure SetState (AState: Word;
Enable: Boolean); virtual;

��뢠�� ��⮤ SetState, ��� ������


�� TView, ��� ���-
��⪨ ��ଠ�쭮� ��⠭���� ���‫�ﭨ‬, � ��⥬ ���� �뢠
� ��
�������� � ��砥, �� �� sfDragging ��⠭�����, �� �����-
��, �� �������� �ॡ�� ���� � ���
� � � �� 짮������ ��
��६�頥�����, � �� ��ଠ�쭮��.

��. ⠪��: TView.SetState

SetValue
procedure SetValue (ALocation: TPoint;
AModified: Boolean);

��⠭�������� ���祭�� Location �� ALocation, � Modified


��뢠�� ��������. ��ꥪ�� ।����
-�� AModified, � ����
��뢠�� �� ��⮤� ��� ⮣ ��, �⮡� ���祭�� �������� ��-
����⢮���� ⥪�騬.

*- ������
-----------------------------------------------------------------
���⮣��� ������
� �� ����� ������� , ��।������� ��
㬮�砭��, CIndicator, ��� �� � ���
⮡� 2 � 3-�� ����⮢ �⠭��-
��� ������ ���� �
. �� � �� ᠬ� ��, ����� � �� ���
-
���� ����� ����.

1 2
���������ͻ
CIndicator � 2 � 3 �
���������ͼ
��ଠ�쭠� ��������� �������� ��६�頥���

*- TInputLine Dialogs
-----------------------------------------------------------------

��ꥪ� TInputLine ���� �� �������� ।���� ��� �����.


��� ������ � ����������, � ⠪�� ����⨥� ������ �
�� ��
���-
��饭�‫ � � ������ ⪥⬥� �� "���" ﬨ‬楫�� �拉 �㭪権 ।��-
��� ������� � (�. TInputLine.HandleEvent). �������騩 ��
⥪�� �� ����� ��������� ���� ������, ���� ����
⮢� .
�� MaxLen ����� ��� �� � (Size.X), � �����ন������ ���-
���⠫쭠� ��� � ⪠, ����� 㪠������뢠 ���� ����� �� ५��-
��
��.

��⮤� GetData � SetData ������ ��� ����� � ����


� � �
������ (���।�⢮� ���� 㪠��⥫� Data) � ������ ������.

���� ����� ��� ����� �易��� � ���� ��ꥪ�� ���,


��� �।���ਨ �, ��������, ��ꥪ⮢ ��।���⥫� �����⨬�-
�� �����.

��
TInputLine ����� �������� ��� �� � ⪨ ⨯�� ������ ,
�⫨�-
��� �� ���. �⮡� ᤥ ������ , ����室��� �������� ���� ��
��८�।���� ��⮤� Init, Load, Store, Valid, DataSize,
GetData � SetData.

*- ����
-----------------------------------------------------------------

CurPos (�⥭��/������)
CurPos: Integer;

������ �窨 ��⠢�� ⥪�� (�.�. ⥪�饣� ��������� ����-


�).

��. ⠪��: TInputLine.SelectAll

Data (�⥭��/������)
Data: PString;

�����⥫� �� ����, �ঠ��� ।������ ����ଠ��.

FirstPos (�⥭��/������)
FirstPos: Integer;

�� �� ������
������ ��ࢮ⮡ � �����.

��. ⠪��: TInputLine.SelectAll


MaxLen (�쪮 ��� �⥭ ��)
MaxLen: Integer;

쭠� �����,
����� � �����⨬�� ��� ����, ������
����
�����.

��. ⠪��: TInputLine.DataSize

SelEnd (�쪮 ��� �⥭��)


SelEnd: Integer;

������ ���� �뤥������ ������ (�.�. 㪠��⥫� �� �������


����
�� ���⬥祭���� �����).

��. ⠪��: TInputLine.SelectAll

SelStart (�쪮 ��� �⥭��)


SelStat: Integer;

������ ��砫� �뤥������ ������ (�.�. ���� �� ��


�⬥�-
����� �����).

��. ⠪��: TInputLine.SelectAll

Validator
Validator: PValidator;

����뢠�� �� ��ꥪ� ��।���⥫� �����⨬��� �����, �易�-


�� � ���� ������, ��� nil, �� ���� ����� �� ����� ��ꥪ�
��।���⥫� �����⨬���. ��� ��ᢠ������ ��� 祭�� Validator
����室��� �맢��� ��⮤ SetValidator, � �� ������ �� �������.

��. ⠪��: TInputLine.SetValidator

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect; AMaxLen: Integer);

������� ��‫אַ‬㣮�쭨� ����� � ������묨 ���祭� ‫���� ﬨ‬-


⮢, ��뢠� ��������� Init, ��� ������
�� TInputLine.
State ��⠭���������� �� sfCursorVis, Options
��⠭����������
�� (ofSelectable + ofFirstClick), � MaxLen ��⠭����������

�� AMaxLen. �뤥��� AMaxLen + 1 ���� �����, � ���� Data ��-

⠭���������� �� 㪠��⥫� �� ��� ������.

��. ⠪��: TView.Init, TView.sfCursorVis,


TView.ofSelectable, TView.ofFirstClick

Load
constructor Load(var S: TStream);

������� � ���樠������� ��ꥪ� ���� ����� �� ����



��뢠� �砫� ��������� Load, ��� ������
�� TView, �
��⥬ �⠥� 楫������ ���� �� ����, � �� ����S.Read.
�뤥��� MaxLen+1 ���� ����� ��� Data, � ��⥬ ���뢠�� �� S

���� ����� ���� � ����� � ������� S.Read. ��⮤ Load


� �� ���
-
���� �� �� � � TInputLine.Store ��� �� �
������ ���� ⠭�������
��ꥪ⮢ TInputLine �� TStream.

��८�।���� ��� ��⮤, �� �� ��।���� ����


���
� �,
ᮤ� ঠ��������� ��
� ᮤ⥫
��� .

��. ⠪��: TView.Load, TInputLine.Store, TStream.Read

Done
destructor Done; virtual;

��८�।��塞����: � �� ������।��.

��� ������ ������, �뤥������ ��� Data, ��⥬ ��뢠��


Done, ��� ������
�� TView, ��� ��⮦���� ���� � ��
�����.

��. ⠪��: TView.Done

DataSize
function DataSize: Word; virtual;

��८�।��塞����: ������ ��८�।������.

�����頥� ��� ����� ��� � 맮� ��GetData � SetData. ��


㬮�砭�� �����頥���MaxLen+1. ��८�।���� ��� ��⮤, ��
�� ��।����� ������� �� ����⪨ � �� ⨯�� ������.

��. ⠪��: TInputLine.GetData, TInputLine.SetData

Draw
procedure Draw; virtual;

��८�।��塞����: ��८�।������ ।��.

�⮡���� ��‫אַ‬㣮�쭨� ����� � ��� ����� . ��‫אַ‬㣮�쭨�


������ �⢥�����騬 梥� � ������ ���� ⮣�, ����
⮡�
�� �� sfFocused ��� ��� (�.�. ��室���� �� � �� � �������
�-
� ����� ��� ���), � ⠪�� ������� ��५�� � ��砥, �� ��
�-
�� ����� �ॢॢ��� ⮡
��� ��������
� ���� (� �� ���-
��
�����). ��� �뤥����� (�⬥祭�� ����) �� ���������� �
���짮������ �⢥�����饩 �������.

GetData
procedure GetData(var Rec); virtual;

��८�।��塞����: ������ ��८�।������.

�����頥� ���祭������ �����. �� 㬮�砭�� GetData ����-


�뢠�� DataSize ���� �� ���� Data^ � Rec. GetData ����� ��८�-
।����� �� ��।������ ���������
� � ꥪ⮢, �� � ���뢠���
������ ��⨯� ������. ���ਬ��, ��ப� ����� �ᥫ ����� �८-
������� ��������� ���� � ����
⮡ �� � � ������
� ����� �
�� �
�� �� �� �� � Rec. �� ��८�।������ GetData ���
⠪�� ��८�।����� SetData, �⮡� ��� ���뢠�� � �� ᠬ�
�����, ����� ���㫠 GetData, � ⠪�� DataSize, �⮡� ���
������� ��� �� ।����� ������.

��. ⠪��: TInputLine.DataSize, TInputLine.SetData

GetPalette
function GetPalette: PPalette; virtual;

��८�।��塞����: ������ ��८�।������.

�� ��� ��砭��)
(� �� ��
�����頥� 㪠��⥫����������
CInputLine.

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।��塞����: ������ � �� ������


.

��뢠�� ��⮤ HandleEvent, ��� ������


�� TView, � ��⥬
�����뢠�� �� ��� �� "���" � ���������� � ��砥, ��
���� ���� ���� . ��� ��⮤ ॠ����� �⠭����� �㭪樨
।�����
����
� � �.

�㭪樨 ।��������
� ������ � ᥡ�: �⬥���������" -
���" � ������� ६�饭��; �� ���������;
������������� ����

��
� ���� ०����� ��⠢�� � ������ ��� ���������
���
�� �����
��� �����; ��������� � "���� "��� ���(��������
����⥫� ��
�� � � � � ����
�� � Data � Size.X); "�����"�� ਧ���-
���� ��� ��� � ������� "���" � � �� 짮 ������� ���⮣�
��
��५��; "�� 筮�" �� ६�饭�� ����� � ������� ��५��, ������

Home � End (� ���⠭�������������⮢� � �� �


짮������ �����-
� Ctrl); �� ������ ���� ������ �������Del � Ctrl+G. �⮡-

� ��� ����� ������뢠���� , ��� ������ 室���, � ����
TInputLine ����������
�⢥������ �� �
���.

��. ⠪��: sfCursorIns, TView.HandleEvent,


TIputLine.SelectAll

SelectAll
procedure SelectAll(Enable: Boolean);

��⠭����������� 祭�� CurPos, FirstPos � SelStart �묨


0. �� Enable �� True, � SelEnd ��⠭������������
Length(Data^), �뤥��� ⠪�� ����� ��� ���� ����
� . ��
Enable �� False, � SelEnd ��⠭���������� �� 0,
�⬥��� ⠪�� �� � ��� � 뤥����� �ᥩ ��ப�. �������,
�⮡�������������� ��뢠���� �맮��� DrawView.

��. ⠪��: TView.DrawView

SetData
procedure SetData(var Rec); virtual;
८�।��塞����: ��������
�� ८�।������.

��㬮�砭�� ���뢠�� DataSize ������Rec � �� �� Data^ �


��뢠�� SelectAll(True) ���⮣�, �⮡�ᤥ ����������������
� � �뤥 ������. �� ८�।���� ��� ��⮤, �� ���� । ����
����� �� �� �⪨
� �����⨯���� �� ������ , � �� ���� 饣�
��� ��⮤ ��� �� ८�������
� �
�� � �� ⨯� ������ � ���� ���
������
�� 饣� । �����
� ���� � ������ TInputLine.

��. ⠪��: TInputLine.DataSize, TInputLine.GetData,


TView.DrawView

SetState
procedure AetState(AState: Word;
Enable: Boolean); virtual;

८�।��塞����: � �� ������। ��.


��

뢠����
�� �� ����� ������ ���� �⮡�-
� ��砥, �������

뢠�� ��⮤ SetState,


���� ����������⢨��������� State. ��

��� ������
�� TView, �����⠭�������������(�), �� । �-
����� � AState � ���� State �� �� �����. ��⥬, �� AState
��
� sfSelected ��� �� AState �� sfActive � �� �� �����
�� ��� sfSelected, �뢠������ SelectAll(Enable).

��. ⠪��: TView.SetState, TView.DrawView

SetValidator
procedure SetValidator (AValid: PValidator);

�� ������ � �易� ���� � । ���⥫� �����-


�� � ��
㭨�⮦��� �� ⠪�� �������-
� � �������, � SetValidator
騩 ��ꥪ� , �� 뢠� ��� ��⮤ Free. ��⠭�������� ���
祭��
Validator �� AValid. ��� 㭨�⮦���� ��� ���������
��ꥪ⮢ ��। ���⥫� �����⨬��� ��� ॢ ������ ����� ����室���
��। ��� ���祭�� nil.

Store
procedure Store(var S: TStream);

����� �� ����
� ����� � ,����
�뢠⮡� �砫�


��⮤ Store, ��� ������
�� TView, � ��⥬ �����뢠�� 5 楫�-
�� Data � �������
������ ���� � �� �맮��� S.Write. � �
� ��-

����� �ᮡ���
� � ������ �⥭��
TInputLine.Load ����� �
�ᥣ�
��ꥪ� TInputLine. ��८�।���� ��� ��⮤, �� ����
। ��� -
� ���� � �
� ����, �ন������⥫�� ����.

��. ⠪��: TView.Store, TInputLine.Load, TStream.Write

Valid
function Valid (Command: Word): Boolean; virtual;

�� ��� �易� ��ꥪ� ��। ���⥫� �����⨬���


�� � ��
���������� Command �� cmCancel, � Valid ������
頥 ���� -
� �뫮 � �����
���, ��� 饭 �� ��
��⮤ Valid, ��� ������
��
TView.

�� �� �� ����� ����� ��ꥪ� ��। ���⥫� �����⨬���


�����, � ��� ��� ��������饭��� �� ���祭��. �� Command
��
� cmValid, � Valid ������
頥 True � ��砥, �� � ��।� -
��⥫� �����⨬ ��� Status �� vsOK; � ��⨢�����砥 ���
������
頥 False. �� Command �⫨筠 �� cmValid ���cmCancel,
� Valid ��। ��� Data^ ��⮤�Valid ��ꥪ� ��। ���⥫� �����-
⨬���. �� ��� ��⮤ �����頥� ���祭��False, � �� ��
����� ��뢠�� Select ����������� �����, � ������ 頥 ���
-
祭�� False.

��. ⠪��: TView.Valid, TValidator.Valid

*- ������
-----------------------------------------------------------------

���� ����� � �� �����


� । ������� �� 㬮�砭��,
������� , ��
� ���� ����⮡ � 19 ��21-⮢
CInputLine, ����� � � �⠭����
��
������� �����������
����.

1 2 3 4
�������������������ͻ
CInputLine � 19 � 19 � 20 � 21 �
�������������������ͼ
� � � �
����� ������� � � ���� ��५��
��⨢�� ����������� ��������� �뤥�����

*- ���TItemList Objects
-----------------------------------------------------------------

���
ᠭ��: TItemList = array[0..MaxCollectionSize - 1] of
Pointer;

�㭪��: ��� � � ��� 㪠��⥫��, �� �����७��


� �� ��
ꥪ⠬� TCollection.
��

*- TLabel Dialogs
-----------------------------------------------------------------

��ꥪ� TLabel �। � ⠢��� ᯨ⮡�� ⥪�� � � � ��


��� � � ��
-
��, ����� ����� ���� �� � (���
ᢥ 祭) � ���������
" �",

������ ����� ��� ������� �⨢� 樨 Alt-���. ��⪠ ��� 筮


�� �� ������ � ������� 㪠��⥫� PView � ��
㣮�� � ����� 饬�
�⮡� ������ ������, ⠪���, ��� ���� �����, ���������
�� ꥪ� ���� �� ᮡ ���������
짮��⥫� ����� �� . �롮�
(��� ����⨥) ��⪨ �㤥� �����⢫��� 롮� � ���������
� �� �
���饣� �����. ��⪠ ⠪���㤥� ���ᢥ 稢����� �� �롮-
��
� �⢥�����饣� � � ����饣� �����.

*- ����
-----------------------------------------------------------------

Light (�쪮 ��� �⥭��)


Light: Boolean;

����騩 �����
�� True, � ��⪠ � �易��� � ��� � �
����������� � ���ᢥ 稢�����.

Link (�쪮 ��� �⥭��)


Link: PView;


������ ������ , �易��� � �� ��⪮�.
�� ����� � �

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect;
AText: String; ALink: PView);

�������
��ꥪ� ��⪨ � ������ 묨 ��� � ⥪��, �� 뢠�
�砫� ��������� Init, ��� ������
�� TStaticText, � ��⥬
��⠭�������� ���� Link ��� �易����� ����� ���� � ��� �

ALink. ���� Option ��⠭���������� �� ofPreProcess and
ofPostProcess. EventMask ��⠭���������� �� evBroadcast.
���祭�� ���� AText �����砥��� ���� Text �१ ���
TStaticText.Init. � AText ����� ������ ������� ��⨢�樨
���
��⪨, ����� �⢥�������� ��� �� �����⨫� "~".

��������! ������� �� ���� ��� � � � �� ꥪ� ��⪨ � �


�-
���,��� nil. ��� �� ꥪ-
���� � �� � ��� � 痢� � � � ��� �
�� � ������ ⥪�.�

��. ⠪��: TStaticText.Init

Load
constructor Load(var S: TStream);

������� � ������ ����� � TLabel �� ���� S, � 뢠� �-


砫� ��������� Load, ��� ������
�� TStaticText, � ��⥬
��뢠� GetPeerViewPtr(S, Link) ��� �����⠭���� �� � �易-
��� ����� �� � �� � � .

��. ⠪��: TLabel.Store

Draw
procedure Draw; virtual;

��८�।��塞����: ������� �� � �� �� � � � �
.

����� �⮡� ���� ����� �⢥�����騬� 梥⠬� ��


�������, ����� �� ��� ��砭��.

GetPalette
function GetPalette: PPalette; virtual;

��८�।��塞����: ������ ��८�।������.


�� ���� ��� ��砭�� �������
�����頥� 㪠��⥫� �� �
CLabel.

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।��塞����: �� ��८�।������.

��� � �뢠�� ����設�⢮ � ⨩ , ��뢠� ��⮤ HandleEvent,


��� ������
�� TStaticText. �� ��⪠ ����砥� �� 饭��
evMouseDown ��� �⨥ �� ��� � � � ��⨢� 樨, � ��� ��� ��-
����� ����� �� � � � � � . ��� ��⮤ ⠪�� �⢥砥� �� �� 饭��
cmReceivedFocus � cmReleasedFocus �� �易����� ����� � ����-
��� ��� ����ன�� ��� 祭�� ���� Light � ���� � �ᮤ� .⪨
��

��. ⠪��: TView.HandleEvent, ����⠭�� ������ cmXXXX

Store
procedure Store(var S: TStream);

������ � �� � � � � � � � � � S,� ��
� ��

⮡뢠� �砫�
��⮤ Store, ��� �� TStaticText, � ��⥬ �����뢠��
������
��� � �易��� ����� �������� , �� 뢠� PutPeerViewPtr.

��. ⠪��: TLabel.Load

*- ������
-----------------------------------------------------------------

��⪨ �� � ���� ������� , �����祭��� �� 㬮�砭��,


��� �⮡����� ����⮢ 7, 8 � 9 ������� �⠭�����
���
���� ����.

1 2 3 4
�������������������ͻ
CLabel � 7 � 8 � 9 � 9 �
�������������������ͼ
� � � �
��ଠ��� ⥪�� � � � ���� � 뤥������ ��������
�뤥����� ⥪ �� ������ � ������
��������� ���筠� ��������
������

*- TListBox Dialogs
-----------------------------------------------------------------

TListBox, ���� ������ TListViewer, �������� ������ �� -


������ ��� �� � ��� ���� �
, ���⮡� ��� ������
���. ��ꥪ�� ����-ᯨ � � ��� ��⮡
ᯨ�ᯨ ��ᯨ

ᯨ ᯨ
ᯨ ⠪�� ����⮢
���� ��� ����� ������� � ��������� ���⨪��쭮� ��
�� ��ப��� -
��. ��ਧ�� ⠫�� ������ �ப� � ⪨, ������ �� TListViewer, ��
�����ন������ . ���� �� ��⮤� TListViewer ��������� �����

(� ���ᢥ 稢���) � � � � � � � ��� � � � � "� � � " � � � � १
������ � � � � .
TListBox �� ��८�।���� HandleEvent ��� Draw.

TListBox ����� �������⥫쭮� ���� List, ���ண� ��� �


TListViewer. List 㪠�뢠ꥪ�� �� ���� ����� , � ঠ 騩 �뢮��-
�� � ��� �� ������. �⢥��⢥������ �� ��⠢�� ������ �
TCollection ����� �� ��� ⠪��, ��� � ����⢨�, �믮� 塞 �� ��
�롮� �����.

TListViewer ������� �⮤ Done �� TView, ����� � ⠪��


�⢥砥� �� ��������� �� �ন����
�� � � � List �� ����
砭�� ���.
�맮� NewList �㤥� �������� ���� �� , ����� � 맮�
NewList(nil) � ���� � �饥 ��� �����������-�� � ��
��� �
�����
� -
����� ��.

*- ����
-----------------------------------------------------------------

List (�쪮 ��� �⥭��)


List: PCollection;

List 㪠����

⮢ �� ����� ����� ��� �� �� �
. �� �����
���� ����� PString, �।� ⠢���騩 ������ ⥪��.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect; ANumCols: Word;
AScrollBar: PScrollBar);

������� ���� � ��������


���� , ��� ��� � �
���⨪��쭮� ���ᮤ � ᮤ ⪨
� �ப�� , �� ������ 㪠
�뢠�� 㪠��⥫�
AScrollBar. ��� ��⮤ ��뢠�� ��⮤ Init, ��� ������
��
TListViewer, � ����� ��ਧ��⠫쭮� ������ �ப� �
⪨, ��
nil.

���� List ��⠭���������� �� nil (����), �


Range ��⠭���������� �� 0. ��� �ண� � ������ ������
���室�騩 �����, � ঠ 騩 ��ப� (��� ��㣨� ��ꥪ�� ��� �뢮-
��). ���� List 㪠����
뢠 �� ��� ����� ���� ⢨� �맮��

��. ⠪��: TListViewer.Init, TListBox.NewList

Load
constructor Load(var S: TStream);

������� ��ꥪ� ����-�� � ������ ���� ���祭�‫�� ﬨ‬


���� S, � 뢠� �砫� ��������� Load, ��� ������
��
TListViewer, � ��⥬ ���뢠�� List �� S � ������� S.Get.

��. ⠪��: TListViewer.Load, TListBox.Store, TStream.Get

DataSize
function DataSize: Word; virtual;

��८�।��塞����: ������ ��८�।������.

�����頥� ��� ��� 뢠���� � �����뢠���� ������ �


��
����ᥩ, ��।����� � � � GetData � SetData. �� 㬮�砭��
TListBox.DataSize �����頥� ��� 㪠��⥫�, ���� ���
�� �(��� List � �� ����������� ).

��. ⠪��: TListBox.GetData, TListBox.SetData

GetData
procedure GetData(var Rec); virtual;

��८�।��塞����: ������ ��८�।������.

�����뢠�� ����� ��ꥪ� TListBox � ������. �� 㬮�砭��


��� ��⮤ ���� � Rec ⥪�� � ���List � Focused.

��. ⠪��: TListBox.DataSize, TListBox.SetData

GetText
function GetText(Item: Integer;
MaxLen: Integer): String; virtual;

��८�।��塞����: ������ ��८�।������.

�����頥� �� ப� � ����� Item �� ��ꥪ� TListBox. ��


㬮�砭�� �����頥����� ப� ����砥��� �� ����� � �����
Item � ����� ��ப�� � �� 짮 ������� PString(List^.At(Item))^.
� ন�
�� List � � �� � � � ப� ꥪ�� , � ��� ����室��� ��८-
�।����� ��� ��⮤ . �� List �� nil, � GetText �����頥�
������ ��ப� .

��. ⠪��: TCollection.At

NewList
procedure NewList(AList: PCollection); virtual;

��८�।��塞����: ��८�।������ ।��.

�� AList �� �� nil, � ���� , ������� � �������


AList, ����頥� ⥪�騩 List. ���� Range ��⠭����������
�� ���� Count ������ TCollection, � ���� ����� ����砥�

䮪�� ����� �맮��� FocusItem(0). �������, ����

�� �
�-
���� �맮��� DrawView. ���� ⨬, �� �� �।�� 饥 ���� List ��
�� nil, � ��। �� ᢠ ����� � � ����� � ��� 祭�� ��� ��� �����
� -
���.

��. ⠪��: TListBox.SetData, TListViewer.SetRange,


TListViewer.FocusItem, TView.DrawView

SetData
procedure SetData(var Rec); virtual;

��८�।��塞����: ������ � �� ����� �


.

������� ⥪�騩 ��� 祭�‫ ﬨ‬List � Focused, ��⠭��-


�� �� Rec. SetData ��뢠�� NewList ⠪, �⮡� ���� ᯨᯨ � -
ᯨᯨ⮡
���� �
� �� ��⨢�� ���� � . ��� � � ��砥 � GetData
����
� DataSize, ��� ����� ������������ ��८�।����� ���
�� ⮤ ���
� � �� ��
ண �.

��. ⠪��: TListBox.DataSize, TListBox.GetData,


TListBox.NewList

Store
procedure Store(var S:TStream);

�����뢠�� ���� � �� � S, ��뢠� �砫� ��⮤


Store, ��� �� TListView, � ��⥬ �뢮��� ����� � ��-
������
�, � �뢠� S.Put(List).

��. ⠪��: TListBox.Load, TListViewer.Store, TStream.Put

*- ������
-----------------------------------------------------------------

���� � �� � � � ��� ����


� ���� (�����祭��� �� 㬮�砭�
CListView�r, ��� �� � � ��� ���� ⮡ � 26 �� ⮢
29 �⠭�����

������� �ண� .�

1 2 3 4 5
�������������������ͻ
CListViewer � 25� 26� 27� 28� 29�
�������������������ͼ
� � � � �
��⨢�� ����� � � � ��� �������⥫�
����⨢�� ��������� � ������� �뤥�����
����騩 �������������

*- TListViewer Views
-----------------------------------------------------------------

TListViewer �।� ⠢��� �� ��� � � � ⨯ , �ந� ���� � ��


���ண������ ���� � � ꥪ�� ���� ᮡ �
��� , ⠪��, ���
TListBox. ������ ���� � ��⮤� TListViewer ���� 稢��� ����-
� ���� ����� ��������� :

⮡� ��� ����� ��� � 뢮�� �易����


- ��
� � ��� � -
⮢ (�� �� �);

- �
�� ���� ����� ��� ���� ���� � � ப�� ⪨ ;

- ���������� �ப� � � �⪨�ᮤ��� ���� ७��� ;

- ������ � ��⮡�
������ ������� ����� � ��� �����
�ப � �⪨ �/�� ����
�;

- ����������� �롮� (���ᢥ⪨) � � � � � � ��� � � � �


"���" ��� ����������;

騩 �������� � ���������� ���


- ��⮤ Draw, �믮����� �
� �
�ப� � ��⪮
.

TListViwer ᯨ� � ন� �
� � ��� ��

� � ᯨ ⮤ GetText, ����� ��
����室��� ����� �� �� �� ����� ᮤ �
���� � � � �� ⥪
� ⪨ ��� �
�뢮����� ������.

TListViewer �� � ������ ��
� �� ⢥��� ���� ������ �
� ���
��. TListViwer ����� � �� �
�� ���
��� ����
� � �
��
�ப��-
�� � � � � ���� ��
��� , �易���� � ��� ��� � � � � � ���
��� ������. ����� ⠪�� � �� �짮���� ����
���
�� TListViwer
(⠪��,
��� TListBox), ����� ����� ����� � ���� ���� �(��-
��� ���
�) .

*- ����
-----------------------------------------------------------------

Focused (�쪮 ��� �⥭��)


Focused: Integer;

����� ⥪�饣� � � � � � . �������� ��� ������� 0 �� Range -


1. Init ��⠭�������� Focused �� 0 (���� �����), � ��⥬
��� ����� �������� � ������� ������ "���" ���
������ ��� ��.

HScrollBar (�쪮 ��� �⥭��)


HScrollBar: PScrollBar;

�����⥫� �� �易���� � ����� ��


⮡�� ���
����� ���
-
���⠫��� ������ �ப� �⪨. � ��砥 ���祭�� nil (����) �����
⪨ ���������.
�ப � �

NumCols (�쪮 ��� �⥭��)


NumCols: Integer;

��� ���
�� � ���� �� .

Range (�쪮 ��� �⥭��)


Range: Integer;

����饥 � � 饥 � � � � � � ⮢ �
. �������� ��� �����
�� 0 �� Range - 1.

��. ⠪��: TListViewer.SetRange

TopItem (�⥭��/������)
TopItem: Integer;

����� ��ࢮ�� ��� ���������� . �������� ��� ������


�殢, �������-
�� Range - 1. ��� ����� ������ �� �� �� �
�� �� �� �� ���祭�� Range.

��. ⠪��: Range

VScrollBar (�쪮 ��� �⥭��)


VScrollBar: PScrollBar;

�����⥫� �� �易���� � ����� �� ⮡�


� �������� ���-
⨪� ���� ������ � ⪨. � ��砥 ���祭�� nil (����) �����
ப� �
⪨ ���������.
�ப � �

*- ��⮤�
-----------------------------------------------------------------
Init
constructor Init(var Bounds: TRect; ANumCols: Integer;
AHscrollBar, AVScrollBar: PScrollBar);

������� � ���� � � � � � � � � � � � � TListViewer � �������


���, ��뢠� �� � � � � � � � � � � Init, 㭠�� ������
�� TView.
���� NumCols ��⠭���������� �� ANumCols. Options ��⠭����-
������ � �� (ofFirstClick + ofSelectable), ��������� �� ����-
�� ������ "���", ����� ������������ � 롮 � � ⮡� � � �����
�����, ���� ��।������� HandleEvent. EventMask ��⠭�������-
��� � �� evBroadcast. ��� � �� � � 祭 � � Range � Focused ��
0. ���祭�� VScrollBar � HScrollBar ��⠭���������� �묨 � � �-
⨪���� �/��� ��ਧ��⠫�� ����� � ப�� ⪨ , ��।���� �
���� ��AVScrollBar � AHScrollBar.

�� �� ��⠭�������� �����⨬� ������ �ப� � ⪨, � Init


����ந� �� ���� ArStep � PgStep � �⢥��⢨� � ���
TListViewer � ��� ��� 殢. ���ਬ��, ��� TListViewer,
����饣 � � � ��� � � � �� �
��� , �� 㬮 �砭 � � 쭮 �
� � �� � �
���祭�� PgStep �� Size.Y - 1, � ���⨪��쭮 � � � � 祭 � � ArStep

� � 1.

��. ⠪��: TView.Init, TScrollBar.SetStep.

Load
constructor Load(var S: TStream);

������� � ������ ����� � �� ᮡ �� �� ����


� S,
��뢠� �� � � � � � � � � � � Load, 㭠�� ������
�� TView, �
��⥬ ���뢠�� ������ �ப� � ⪨ � ������� �맮 � �GetPeerViewPtr,
��� 祣� ���뢠�� 楫������ ���� � ������� S.Read.

��. ⠪��: TView.Load, TListViewer.Store

ChangeBounds
procedure ChangeBounds(var Bounds: TRest); virtual;

��८�।��塞����: �� � �� ������
.

������� � ��� ���� ���� �� ᮡ � , ��뢠 � ��⮤


ChangeBounds, 㭠�� ������
�� TView. � ��砥 ������ ��ਧ��-
⠫쭮 � � � � � � � � ப� �
⪨ ����� ��⮤ ��������� ���祭�� PgStep
��� �� ����室���.

��. ⠪��: TView.ChangeBounds. TScrollBar.ChangeStep.

Draw
procedure Draw; virtual;

��८�।��塞����: �� � �� ������
.

�⮡���� ���� ���� ��� ᮡ � , � �� ����


����� 祭���
�� � � 砭 � � � � � � � � � , ��뢠� GetText ��� �������
�����. ���뢠 � � � � � � 騩 � � � � �������� , � ⠪�� ���-
‫ �ﭨ‬sfActive.

��. ⠪��: TListViewer.GetText


FocusItem
procedure FocuseItem(Item: Integer); virtual;

��८�।��塞����: �� � �� ������
.

��⠭������� ���祭�� ���� Focused �� Item, ������


����-
��� ����� ⥪�騬. ��� ��⮤ ⠪�� ��⠭�������� ���� Value
���⨪��쭮 � � � � � � � � ப� �
⪨ (�� ��� �������) �� Item �
��������� ���� TopItem.

��. ⠪��: TListViewer.IsSelected, TScrollBar.SetValue.

GetPalette
function GetPalette: PPalette; virtual;

��८�।��塞����: ������ � �� ������


.

������� ����� � �� ��� ��砭�� �������


� �� ��
CTListViewer.

GetText
function GetText(Item: Integer;
MaxLen: Integer): String; virtual;

��८�।��塞����: �ᥣ�� �� ८�।������.

�� ����� �� ��⮤. �ந� ����� ⨯� ������ ������ � �


���� ����� ������ ��ப� ��� ����� (Item), ����� ����
�� �ॢॢ��� MaxLen.

��. ⠪��: TListViewer.Draw.

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।��塞����: � �� ������।�� .

HandleEvent ����� 뢠�� ������� ���� �⨩ , ��뢠�


��⮤ HandleEvent, 㭠�� ������
�� TView. ������ ������ "���"
� "���� � ���" ��६�饭�� �� � � ���� �������� ⥪� 騩
���
�����. ������� ����� ����� � ������� �������� ������ ������
"���". �� � � 뢠���� ⠪�� ��� �� ���������� : ������ ��-
���� �����⢫�� ��� ⥪�饣� �����, � ������ � � ������
�����, PgUp, PgDn, Ctrl+PgDn, Ctrl+PgUp, Home, End � �� �����-
�� ��� ��⠭���� ⥪�饣� �����. ������� ���, �맢� ���
������ �ப��⪨, �����뢠���� ��⥬ ��������� ⥪ �饣� �-
���� � ���� �⮡� ����� ������ ���� �, ��� �� ���ॡ ��-
��
��.

��. ⠪��: TView.HandleEvent, TLiatViewer.FocusItem

IsSelected
function IsSelected(Item: Integer): Boolean; virtual;

��८�।��塞����: ������ ��८�।������.

������� ���祭�� True, �� ������� ����� Item ��-


�� ⥪�騬, � ���� Item = Focused. ����� ���� ��८�।���� ���
�ᮡ� � ���� � �� ���� � � � � � � � � ⢥��� ���.

��. ⠪��: TListViewer.FocusItem

SelectItem
procedure SelectItem(Item: Integer); virtual;

��८�।��塞����: ������ � �� ������


.

�����⢫�� ��� ����� �����


ᮡ � �� ᮡ Item � �� ��
-
��� �� �� � � � � � � � � � � � � � ���. ��⮤ SelectItem, ��।� -
����� �� � � 砭 � � , ���뫠 � ��� � �� � �������cmListItemSelected
�� � �� ��
����:

Message (Owner, evBroadcast, cmListItemSelected, $Self);

��. ⠪��: TListViever.FocusItem

SetRange
procedure SetRange(ARange: Integer);

��⠭�������� ���� Range � � ARange. �� ���� ���� -


� �ᮤ� ��� ��� �����
� ᮤ⨪����� ⪨ᮤ
���
��ᮤ�
� ,
�⢥������ �� ���� ���� �������. �� ⥪�� � � � � � � �
�������� � ���� �������� Range, � ���� Focused
��⠭����������
� � ��� .

��. ⠪��: TListViewer.Range, TScrollBar.SetParams

SetState
procedure SetState(AState: Word;
Enable: Boolean); virtual;

� ������।��.
��८�।��塞����: � �

�� Enable ����� ���祭�� True, � ��뢠�� ��⮤ SetState,


㭠�� ������
�� TView, ��� ��������� ���‫�ﭨ‬ ����
TListViewer. � ������ ���� ���祭�� ������
� AState, �� ��-
��� �ਢ��� � ��, �� ������� ��� � � � 㤥� �뢥 ���� �� �-
� ��� "����". �� � ⮣ �, �� AState ����� ���祭��
sfSelected and sfActive, � ������ ��⮡� �⪨ �� �����

� ����� .
�� AState ����� ���祭�� sfSelected, �� �� sfActive, �
������
��� � ⪨ ���� "�����".

��. ⠪��: TView.SetState, TScrollBar.Show, TScrollBar.Hide

Store
procedure Store(var S: TStream);

�����뢠�� ��ꥪ� �� � � � � S, ��뢠� ��⮤


Store, 㭠�� �� TView, � ��⥬ �����뢠�� ��ꥪ�� ������
������
��� � ⪨ (�� ⠪��� �������) � ������� PutPeerViewPtr, �,
�������, ������� S.Write, �� � ��� 楫������ ����.

��. ⠪��: TView.Store, TListViewer.Load


*- ������
-----------------------------------------------------------------

����� �� � � ��
ᮡ � �� ᮡ � � � � � � � � � � 祭 � � � � � � � � -
��� ������� CListViewer ��� �� � � �������⮡ 26-29 �⠭���� ⮢ -
��� ������� ��� � �.

1 2 3 4 5
�������������������ͻ
CListViewer � 25� 26� 27� 28� 29�
�������������������ͼ
� � � � �
�� ⨢ �� ������ � � � ���������
�������⥫�
���� ⨢ �� ���������� � �������������
��
���
����� � ���� � � � � � � � � �

*- TLookupValidator Validate
-----------------------------------------------------------------

��।��� ⥫� ����� ⨬��� � ⢥��⢨� � � ����������� �,


������� ���짮��⥫ ��, � ����� �������� � �� 祭��.
TLookupValidator �।�⠢��� �� � � � � � �⨯� � � ��
������ �����⨬��� , �� ���� ���� ����� �� ������
�����
�������
��।���⥫� �����⨬���. ����� TLookupValidator �������
�� ����� . �� �� � � � ⨯� � � ।���⥫� �����⨬���
����室 � � � �� � � � ᯨ
ᮤᮤᯨ � � � � � � � ⨬� � �� �
��८�।����� ��⮤ Lookup ⠪, �⮡� �� �����頫 True
�쪮 � ��砥 � ������ ����� , ���������� ���짮��⥫��,
� ����� ��. ����� �� �ਬ� ���� 饣� ��।���⥫�
�����⨬���, ���� ������ �� TLookupValidator,  ����
TStringLookupValidator.

*- ��⮤�
-----------------------------------------------------------------

IsValid
function IsValid (const S: string): Boolean; virtual;

��뢠�� Lookup ��� ���� � �


��� S �
����⮢ �����. ������� True � ��砥, �� Lookup ����
True, �� ����砥�, �� Lookup ��諠 S � ; � �� ⨢ ���
��砥 �������
� False.

��. ⠪��: TLookupValidator.Lookup

Lookup
function Lookup (const S: string): Boolean; virtual;

��� ����� ���� ���� � S � ᮤ ᯨ � � � � �� � �� �⨬�


����� � ������� True � ��砥, �� ��室�� S; � �� ⨢ ���
��砥 ������� � False. ��⮤ Lookup ���� LookupValidator
���� ����� �� ��⮤��, ����� �ᥣ �� ������� False.
���� � ��� ⨯� � � ।���⥫� �����⨬��� �⢥��⢨� ������
��८�।����� Lookup ��� ���� 祭�� ����, � � � �������
��
��⨭��� � � �ਥ������ ����� .
*- ���� TMemo Editors
-----------------------------------------------------------------

���� ��������� �।�⠢��� � � � �� � � ��� ���


����, ���� �����⠭����� ���� ।����, � �।�����-
����� � ���
祭�� ���� � � � ����� ����������� ���� ���
������. �� �����ন���� ������� ⠡��樨 � ����
��


GetData/SetData, � ⠪�� ����� �������, �室��� � ����
��
���� ।����.

*- ��⮤�
-----------------------------------------------------------------

Load
constructor Load(var S: TStream);

���뢠 � � � �ꥪ � ��� � � � � � � �� ���� � S, ��뢠� ���


��������� Load, 㭠�� �� TEditor, � ��⥬ ���뢠��
������
����� ���� ⥪�� � ⥪��, �易��� � ।���. �

��. ⠪��: TEditor.Load

DataSize
function DataSize: Word; virtual;

������� � � � � � � � � � , ��।����� GetData � SetData. ��


��砭 � � ��� � � � � � ⠢��� ����� ���� ���� � � � � � �
�����.

��. ⠪��: TMemo.GetData, TMemo.SetData

GetData
procedure GetData (var Rec); virtual;

������� DataSize ���� �� ���� ।���� ⥪�� � Rec.


GetData ���� ਢ���Rec ��� ������ TMemoData, ��⠭�������
����
Length � � BufLen, � ��⥬ ������� ⥪�� �� ⥪� � ���⮢���
� ���� Buffer. �� ⥪�� �� �������� �ᥣ� ����, � Rec ����-
������ �㫥�� 묨 �� ����� � �����
. GetData �������� ���
⥪�� �� ���� ��������� � ���������� ���� ���
������ � �����.

��. ⠪��: TMemo.DataSize, TMemo.SetData

GetPalette
function GetPalette: PPalette; virtual;

������� ����� � �� ��� ��砭�� �������


� �� ��
CMemo.

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।��塞����: � �� ������।��.
��뢠�� ��⮤ HandleEvent, 㭠�� ������
�� TEditor �
��砥, ��ᮡ �� � ᮡ⨥
� � � � � ���� -���� ������ ���
�� ���� ⠡��樨. �� ���� �� ���� ��, ���������� ���
���筮� ����, ������饥 �� � �������� ���������, ����-
⮡�
�� �� ��⠡��樨 ��� �� � ⪨ .
��

��. ⠪��: TEditor.HandleEvent

SetData
procedure SetData (var Rec); virtual;

������� DataSize ���� ���ଠ 樨 �� Rec ��� ����� � � �


���� ������. SetData ���� ਢ���Rec ��� ������ TMemoData,
��� ��� ���� Length ��� ��⠭���� � � � � � � � � � � � � � � � � �
������� �� ���� ���� Buffer �� ���� ���� ।����� ����
� � �.

Store
procedure Store(var S: TStream);

�����뢠�� ��ꥪ� ��������� � ��� S, ��뢠� ���


��⮤ Store, 㭠�� �� TEditor, � ��⥬ �����뢠�� �����
������
���� ।��������
� � ⥪� �� ����.

��. ⠪��: TEditor.Store

*- ������
-----------------------------------------------------------------

����� ��������� � �� ���������� 祭 � � � �� ��砭 � �


� �������⮡ 26-27 �⠭���
������� CMemo ��� �� � ⮢ �� ������
����������� ����.

1 2
�������ͻ
CMemo � 26� 27�
�������ͼ
� �
��ଠ��������� �������� ���ᢥ 祭��

*- ��� TMemoData Editors


-----------------------------------------------------------------

���ᠭ��:
TMemoData = record
Length: Word;
Buffer: TEditBuffer;
end;

��� � ��� TMemo � �� ����


: �� � �� TMemoData � �� �
���
��⮤�� GetData � SetData ��� � ��� ⥭� ���� ����� ��
⥪�⮢��
���� � ॠ��� �⥪�� ����.

*- ��� TMenu Menus


-----------------------------------------------------------------

���ᠭ��
: TMenu = record
Items: PMenuItem;
Default: PMenuItem);
end;

��� � : ��� TMenu �।�⠢��� ���� ��� � ���ॢॢ� ����.


���� Items 㪠���� 뢠 �� ����ᥩ TMenuItems, � ���� Default
㪠�롨뢠�� �� �� � �� �� � �砭 �� ����� ����� �⮣ �
(����� �롨���� �� ��砭�� �� ����⨨ �⮣� ���� ). �� ��
TMenuView ( ��� ����
� �� �� ����� TMenuBar � TMenuBox) �����
���� Menu, ��� � 㪠���� 뢠 �� TMenu. ����� TMenu ᮡ��� � � � �
�� ������ ������� ������� NewMenu � DisposeMenu.

��. ⠪��: TMebuView, TMenuItem, NewMenu, DisposeMenu,


���� TMenuView.Menu

*- TMenuBar Menu
-----------------------------------------------------------------

���� TMenuBar �।�⠢��� �� ��ਧ�� ⠫��� ����


����, �� ���� � ��������� ����� �롨 � � � � � � � 騬 � �
-
��:

- � ������� ������ ������ "���";

- � ������� ������ F10 � ������ ��⨢�樨;

- � ������� ��� (���ᢥ⪨) ����� � ������ ������


Enter;

- � ������� ����⨢��� ������.

� ���孥� ��� ���� ���� ��� ���� � ������ 祭��


� �
��� ����. �� ॠ������� � ������� ���� TMenuBar,
�������-
� � ���� ���筮  ���� ���� � TAplication. ������� ��� �� -
�� � ���� � ⨯ � TMenuBox. TMenuBar � TMenuBox ����� ���-
���� ����� �� � ⨯� TMenuView (�� �����।�⢥��� ���� ��

TView).

��� � Turbo Vision ��� �� �ਤ���� �


������⢠ ��� � -

��� �����।�⢥��� � ���⠬� ����. ��८�।���� ����


� �InitMenuBar ��� �������� �������� ���� �
��⮤ ���
� ��-
��
�������� ��������� �맮 � � � New, NewSubMenu, NewItem �
NewLine,
���뢠�� ᮡ��� � �
��।������� �� � �砭 �� ����� � � � � ���� � � �
����� �� ���

�� � ����⠬� ����.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect; AMenu: PMenu);

������� ���� ���� � ������� � � � ��� Bounds, ��뢠�


��������� Init, 㭠�� ������
�� TMenuView. ��⠭��������
GrowMode �� gfGrowHiX. �⮡� �⠫� ����⨢�� ������,
���� Options ��⠭���������� �� ofPreProcess. ���� Menu
���-
�� AMenu, ���� � �
����������� � �� � � � ��� .

��. ⠪��: TMenuView.Init, �� ����祭�� ��� gfXXXX,


�� ��� �
���
� ofXXXX, TMenuView.Menu

Done
destructor Done; virtual;

��� ������������, ���������� ���� ����, ��뢠� ��-


�� �������� Done, 㭠�� �� TMenuView, � ��⥬ ��뢠��
������
DisposeMenu ��� ��� ������������ ��-��� ᮡ� � 㭪� � � �.�

��. ⠪��: TMenuView.Done, ���� ��DisposeMenu

Draw
procedure Draw; virtual;

��८�।��塞����: � �� ������ ।��.

���
�⮡� ���� ��� , � �� ����
����� 祭��� �� ��砭 ��
�������. �⮡� ��⠭����� ��� ���� � � �������� 祭�� 梥 ,⮢

���뢠���� ���� Name � Disabled ������ ����� TMenuItem � �


易-
���� ��. ����騩 (���ᢥ 祭��) ����� Current ���ᢥ �� � �-
��.

GetItemRect
procedure GetItemRect(Item: PMenuItem;
var R: TRect); virtual;

��८�।��塞����: �� ��८�।������.

���८�।���� ���� � �⮤ �
��
�� TMenuView. ������� �
������ R ��‫אַ‬㣮��� 쭨 , ������ ⥪�� � � � � � ��� � .
HandleEvent � �� ���� GetItemRect ��� ��।������ ⮣�, �����
�� ������ "���" �� ������ �� � � � � � .

��. ⠪��: TMenuView.GetItemRect

*- ������
-----------------------------------------------------------------

���� ����, ��� � �� ��


⮡�� ��������� ����, ��� �⮡-
����
� 2-7 ����⮢ �⠭����� ������ �� �� �� �� �����
�����祭 ��� �� ��砭 �� ����� � � CMenuView.

1 2 3 4 5 6
�����������������������������ͻ
CMenuView � 2 � 3 � 4 � 5 � 6 � 7 �
�����������������������������ͼ
� � � � � �
����� ⥪�� ����������� � � � � ���
���
���
����� ����饭 ���������������� � � � ������
����� ������ ��������������������� � �
��⨢�樨
��⨢�樨 � ������ -
��� �� �
� �饭�� ���
������ ��� �� �����
⥪��

*- TMenuBox Menu
-----------------------------------------------------------------

���� TMenuBox �।�⠢��� ��


���⨪���� ����. ���
����� �ঠ�� ��� ������ �� � 롨�
��� ����⢨�, ������
������-�������. ��� � � ���� ����, ��� 㪠����� ������㯭
��
����⮢ �ᯮ� ����� �ᯮ⬥⪠ 梥�. ���⨪���� ���� �����
ॠ�����뢠���� ��� ������� ���� ���� ��� ��� � � � � � �
���
���
����, ���� ����짮������ � ����⢥ � � 뢠
� ��� ����.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect; AMenu: PMenu;
AParentMenu: PMenuView);

Init ��������� ������


��� Bounds ���, �⮡� ��
⠪�� �� �

�⢥��⢮��� ����� � ���� ����⮢ � AMenu, � ��⥬ ᮡ��� �


���⨪���� ����, ��뢠� ��������� Init, 㭠�� ������
��
TMenuView.

��� ofPreProcess ���� Options ��⠭���������� ⠪��


���,
�� �
�� ���� � ���� ����⨢�� ������. State ��⠭����������,
�⮡� ������� ofShadow. ���� Menu ��⠭���������� ��
AMenu,
�� ���� 稢��� �롮� ����⮢ ���� . ���� ParentMenu ��⠭����-
������ ��� AParentMenu.

��. ⠪��: TMenuView.Init, �� ����‫ �ﭨ‬sfXXXX, �� ���-


��
� � ofXXXX, TMenuView.Menu, TMenuView.ParentMenu.

Draw
procedure Draw; virtual;

��८�।������: ��८�।������ ।��.

�⮡��� ���� ���� � ����


� � � �� �� � � � , � �� ����
��祭�� �� ��砭 �� �
梥� .

GetItemRect
procedure GetItemRect(Item: PMenuItem;
var R: TRect); virtual;

��८�।������: � �� ������ ।��.

८�।���� ����
��� �
��
�� �⮤ � TMenuView. �������
��‫אַ‬㣮���
쭨 , ��������� ����� ����� ����. HandleEvent
��뢠�� GetItemRect ��� ��।������ ⮣�, ��� �
� � ������
������ "���" ��� ����� ��� � � �.�

��. ⠪��: TMenuView.GetItemRect

*- ������
-----------------------------------------------------------------

���⨪���� ����, ��� � �� �� ⮡� ��������� ����, ���


���� 2-7 ����⮢ �⠭����� ������
�⮡� �� �� �� �� ���
-
�� �����祭 ��� �� ��砭 �� ����� � � CMenuView.

1 2 3 4 5 6
�����������������������������ͻ
CMenuView � 2 � 3 � 4 � 5 � 6 � 7 �
�����������������������������ͼ
� � � � � �
����� ⥪�� ����������� � � � � ���
���
���
����� ����饭 ���������������� � � � ������
����� ������ ��������������������� � �
��⨢�樨
��⨢�樨 � ������ -
��� �� �
� �饭�� ���
������ ��� �� �����
⥪��

*- ��� TMenuItem Menus


-----------------------------------------------------------------

���ᠭ��: TMenuItem = record


Next: PMenuItem;
Name: PString;
Command: Word;
Disabled: Boolean;
KeyCode: Word;
HelpCtx: Word;
case Integer of
0: (Param: PString);
1: (SubMenu: PMenu);
end;
end;

��� �
: ��� TMenuItem �।�⠢��� �� ����� ���� ,
����� ����� ���� ����� �����, ������� ��� ���� �
-�
��-
��⥫��. Next 㪠 � 뢠 � � � � � � � � 騩 TMenuItem � ᯨ ����
ᯨ⮢
����, ����� nil, �� �� ���� ���� ���� . ���� Name 㪠��-
���� �� ����, �ঠ��� ��� ����� ���� ��� �� ��
nil, ��
����� ���� ���� ���� � ����⥫��. Command �ন�
-�
��⨥-������� (�. ����⠭�� cmXXXX), ������㥬�� �� �롮 �
����⮢ ���� ��� 0, �� ����� ���� �।�⠢��� �� ����� -
��. Disabled �� True, �� ��� ���� �������� �, � False �
��⨢��� ��砥. KeyCode �ন� �� -��� ����⨢��� ������,
�易 � � � � � � �� � � � � � � � 0, �� � ��� � � � � � �易 � �
����⨢��� ������. HelpCtx ᮤ �ন� ����� ��� ��ᮤ⥪
� ᮤ

�����
���
��
�� � � � � � (���祭�� hcNoContext 㪠���� 뢠 �� � , �� �����
���� �� ����� ���⥪�� ����� ��). �� �� � � � � � - �� ���
��� , � ���� Param �ন� 㪠��⥫� �� ���� �����
����

(���� ���
⮡ �� ��� ����� � TMenuBox) ��� nil, �� �-
���� �� ����� ���� ����. � � � � �� ����� ���� - ��
�������
(Command = 0), � Submenu 㪠����
뢠 �� �������� ������� .

����� TMenuItem ᮡ��� � � � � ���ᮡ� 짮������ �㭪権 NewItem,


NewLine � NewSubmenu.

��. ⠪��: TMenu, TMenuView, NewItem, NewLine, NewSubMenu

*- ��� TMenuStr Menus


-----------------------------------------------------------------

���ᠭ��: TMenuStr = string[31];

��� � : ��� ����, � �� �� 㥬� NewItem � NewSubMenu.


������� ���

� �������� ����� ���� �� ⠢��� 31 �� ��
.

��. ⠪��: NewItem, NewSubMenu

*- TMenuView Menu
-----------------------------------------------------------------

TMenuView ���� 稢��� ��������⨯���� , ��� ����� ��


����� ����� ������ ���� � ��� ���� � ⨪��� ��뢠�騥
(�
��� ����� ���� ). ��������, ��� ������� �� ���ॡ����
ᠬ���� -
⥫� ᮡ��� � � � � � � � � � � TMenuView.

*- ����
-----------------------------------------------------------------

Current (�쪮 ��� �⥭��)


Current: PMenuItem;

�� � ⥪�� �
�����⥫� �� ��� � � � � � �� � ��� .

Menu (�쪮 ��� �⥭��)


Menu: PMenu;

�����⥫� �� ������ TMenu ��� ������� ����,


����� �ন�
�易��� ᯨᯨ ����. �����⥫� Menu �������� ����-
����
ᯨᯨ⮢
��� ����� �� �ᥬ ���� ����⮢⮡���� ������� �� ������

����� ����.

��. ⠪��: TMenuView.FindItem, TMenuView.GetItemRect, ⨯


TMenu

ParentMenu (�쪮 ��� �⥭��)


ParentMenu: PMenuView;

�����⥫� �� �⮡� ���� ����� ����, ����� ����


�������� � ����������. ����⨬, �� TMenuView �� ���� ���-
���. �ਭ���������� ����� �।�⠢��� �� ���� ��
� ���� ��� -
��� ����� ,� � �ਭ���������� � TGroup, � �������� � �� �
짮-
���� �������� ����: �롨��� ������� � ���������� ���� �
���� ��
� � ���
. ���ਬ��, ��� � ���� ���� ���筮 �ਢ���� �
��� �"�����饣���" ����. ���� ���� �।�⠢��� �� �
�� ��砥 ���� ��饥 ���� ��� ���⨪ �� 쭮�� ����.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect);

������� �⮡���� ����� ���� � �� � ���


��� ��������� Init, 㭠�� ������
�� TView. ��⠭��������
EventMask �� evBroadcast. ����� ��⮤ �� �।�����祭 ���
� ᮡ� � � � � � � � � � � � � � �⮢ TMenuView. �� �⠭ �॥ ���
�맮 � �� � �� ��� � ⨯ ��� , ⠪���, ��� TMenuBar � TMenuBox.

��. ⠪��: TView.Init, evBroadcast, TMenuBar.Init,


TMenuBox.Init.

Load
constructor TMenuView.Load(var S: TStream);

������� ���� �� ⮡�� ���������� ���� � ������ ����


�� ���� S, � 뢠� �� � � � � � � � � � � Load, 㭠�� ������
��
TView, � ��⥬ ���뢠� ������ ����.

��. ⠪��: TView.Load, TMenuView.Store

Execute
function Execute: Word; virtual;

��८�।������: �� ��८�।������.

⮡� ��� �
����� ���� ����� ���� �� �� ���, ���� ���짮-
��⥫� �� �롥 �� �㭪� ���� ��� �� ������� ����� . ����
���
�������, ���� ���� ������
� �
�� ��� ����, ��� 0, �� ����
�뫮 � �����. ����� ��⮤ �� ������ ��뢠���� ����, ��� ���
ExecView.

��. ⠪��: TGroup.ExecView

FindItem
function FindItem(Ch: Char): PMenuItem;

�����頥� ����� � ����� ����, ����� � � � � � � � � � � -


��樨 Ch (���ᢥ 祭�� �� �� ). �� ⠪�� ��� ���� �� ������
��� ����� ��� ���� �������� �, ������� ���祭�� nil. ����-
⨬, �� ॢॣ���� ����� Ch (���筠� ���� ������ ��) ����-
��� �� �����.

GetItemRect
procedure GetIterRect(Item: PMenuItem;
var R: TRect); virtual;

��८�।������: ��८�।������ �ᥣ��.


� � � � � � � ⮤ � � � � � 頥�� R � � ‫אַ‬㣮�쭨�, ��������� ⥪ �-
騬 �㭪� ����. �� � �� ������ ��� �� ।������ ⮣�, �뫠뢠 ��
������ "���" ����� �� ������ �㭪� ���� . �⮡� �⢥���
��
�� �� "���", ����
�� TMenuView ����� ��८�।����� �����
��⮤.

��. ⠪��: TMenuBar.GetItemRect, TMenuBox.GetItemRect

GetHelpCtx
function GetHelpCtx: Word; virtual;

��८�।������: ������ ��८�।������.

�� 㬮�砭���������⮤ �����頥����⥪����� �� �����


������� �㭪� ���� . �� �� hcNoContext, � ��� ����� ⥪騩�
���⥪ �� � ���� �� . �� ���� ��
饬 ���� 饥 ������������,�
� GetHelpCtx �����頥�hcNoContext.

��. ⠪��: ����⠭�� ���⥪ �� ����� ��hcXXXX

GetPalette
function GetPalette: PPalette; virtual;

��८�।������: ������ ��८�।������.

�����頥� 㪠��⥫� �� �������� �� 㬮�砭�� �������


CMenuBar.

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।������: �� ��८�।������.

���� ����� , ����� ����室���� ������� �


��뢠뢠뢠

����. ��।����, ����� �㭪� �������� ���������� "���"

��� ���������� (������ ����⨢�� ������), � �


�������
PutEvent �������� �⢥�������� �������-��⨥. �����
�⢥砥� �� cmCommandSetChanged, �� ����室����� ��������
��⨢�� �㭪�� .

��. ⠪��: TView.HandleEvent, TViewPutEvent

HotKey
function HotKey(KeyCode: Word): PMenuItem;

�����頥� 㪠��⥫����㭪�����, �易��� � ����⨢ ���


�����襩, ��।��塞�� �� � ���� KeyCode. �� ⠪��� �㭪� ��
������� ��� �㭪� ������㯥� , � �����頥����祭�� nil.
����⨢�� ������ �।�⠢���� �� ��� 筮 �㭪樮 �����
������ ��� �������樨 � �����襩 Alt, ��।��塞 � �맮 ����
NewItem � NewSubMenu � InitMenuBar. ����� ��⮤ � �� ������
HandleEvent ��� ��।������ ⮣�, �롨� ��� �� �� ����⨨ ��� -
��� �㭪� ����.
NewSubView
function NewSubView (var Bounds: TRect;
AMenu: PMenu; AParentMenu: PMenuView):
PMenuView; virtual;

������� ����� ���⨪��쭮� ���� � ������묨 ���祭�‫ﬨ‬


���-
���� Bounds, AMenu � AParentMenu, � �����頥� 㪠��⥫���
����.

Store
procedure Store(var S: TStream);

���� �� ��ꥪ� �⮡�


� � ����� ����� (����
� �� ���
�������) � ���� S, � 뢠 �� 砫� ��⮤Store, 㭠���
�������
�� TView, � ��⥬ �����뢠 �� � ��� ����� �㭪� ���� .

��. ⠪��: TMenuView.Load

*- ������
-----------------------------------------------------------------

�� �⮡�����
ᯨ ⮡ ������ ���� � � � � �� � �������
2 ����
- 7 ����� � ⠭����� ������ �ਪ������ ���
� ���� 祭���
��
�� 㬮�砭���������CMenuView.

1 2 3 4 5 6
�����������������������������ͻ
CMenuView � 2 � 3 � 4 � 5 � 6 � 7 �
�����������������������������ͼ
� � � � � �
����� ⥪�� ����������� � � � � ��
��� ���
����� �������� �������������� � � � ����⨢��
����� ����⨢���������������������� � �
������
������ � ��� ��� ��
� �������� ⥪ ��
����� ��� �� �����
⥪��

*- ��ꥪ� TMonoSelector ColorSel


-----------------------------------------------------------------

���� ����� ����������


�⮡� � ᥫ��� �������� ����-
����⥫� �롨��� ������� ������-��ਡ��� ��� �뢠뢠뢮������
㭪-
⮢ ��� ,� �室�� � ⥬, ����� �롨����� �⢥�����騥
� � � �� ��
梥� ���梥��� �
. �������� ��ਡ���: �����, �뢠뤥뤥�
-�
��, ������ �� � �������. ���� ���� �, �� ������� �
ᥫ���� ��宦 �� ������ � ������ �䨪�樥� , �� ᠬ�� ���� ��
���室�� �����।�⢥��� �� TCluster.

����� ��� � TMonoSelector ����祭� � ����⨢��� �����-


��.

*- TMultiCheckBoxes Dialogs
-----------------------------------------------------------------

����
-----------------------------------------------------------------

Flags
Flags: Word;

Flags �।�⠢��� ᯨ ���� ��


� ᯨ⮢
���, �ঠ饥 ���� ��
����⠭� cfXXXX.

��. ⠪��: ����⠭�� cfXXXX

SelRange
SelRange: Byte;

SelRange �।�⠢��� ������ ⢨⥫쭮� �� ��� ‫�ﭨ‬,


���� � ������������������������
樮���� ������ � �������� �
䨪�樥� .

States
States: PString

States 㪠����
뢠 �� �� ��, �ঠ��� ����� , �।�⠢���-
騥 ����������������� ‫��������� �ﭨ‬樮���� ������ � ����-
���
���� �䨪�樥� .

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect; AStrings: PSItem;
ASelRange: Byte; AFlags: Word;
const AStates: String);

������� ������ ���������樮���� ������ � ����


樥�, ��뢠� �砫� ���������Init, 㭠���
� ����� �
TCluster, � ��⥬ ��⠭�������� ���祭�� ����� SelRange �
Flags

�� � ����,
祭 ��।���� � ������
����� ASelRange � AFlags
�⢥��⢥���, � �뢠뤥뤥������������
��������������AStates
� ��ᢠ����� �� 祭��
��� States.

ASelRange �����뢠�� �� ���


‫�ﭨ‬, ���� � ����
�����
������ ������ � �������� �䨪�樥� . AFlags ���� �����
��
����⠭� cfXXXX, 㪠�����
뢠 , � � 짮쪮쪮
�����Value �।�⠢����
������ ���������樮���� ������ � �������� �䨪�樥� .
�� ন�����, �����뢠��� ��� ������� ���������� ���‫�ﭨ‬.

��. ⠪��: TCluster.Init

Load
constructor Load(var S: TStream);

������� � ����㦠�������� ���������樮����������


�����
-
���� � 䨪�樥������� S, ��뢠� �砫� ���������
Load,
�������� TCluster, � ��⥬ ���뢠� ���祭�� �����,
㭠��
��������� TMultiCheckBoxes.

��. ⠪��: TCluster.Load


Done
destructor Done; virtual;

��� ������ ������ ��-��� ��ꥪ� ������


���������樮����
������ � �������� �䨪�樥� , �������� �砫� ������� ��
���� States, � ��⥬ ��뢠� �������� Done, 㭠�� ��������
TCluster.

DataSize
function DataSize: Word; virtual;

�����頥� ��� ������ , ��।����� GetData � SetData,


����� �
�� SizeOf (Longint).

��. ⠪��: TMultiChechBoxes.GetData, TMultiCheckBoxes.SetData

Draw
procedure Draw; virtual;

��८�।��塞����: ������� �� � �� ������


.

����� ������ ���������樮���� ������ � �����


樥�, ��������� ������ �� ��� 浪�,
���� � ������� �� �

�,
�� � ��� ���筮� ������ � �������� �䨪�樥� , �� � � �� �
짮-
������ �� ���� �� States ��� �।�⠢����� ���‫������ �ﭨ‬
������ ������ ������ 'X', ��� ���⮣� ����.

GetData
procedure GetData (var Rec); virtual;

�८���
��� Rec � ⨯ Longint � ������� � ���� Value.

MultiMark
function MultiMark (Item: Integer): Byte; virtual;

�����頥� ���‫�������� � ������ �ﭨ‬


��� 䨪�樥������
-
� Item � ������.

Press
procedure Press (Item: Integer); virtual;

������� ���‫��������� �ﭨ‬樮���� ������ � �����


䨪�樥� ������ Item � ������. � �⫨稥 ��������������
� �������� �䨪�樥� , ����� ���� �������� ���‫���� �ﭨ‬-
祭�/�뫠몫몫 , ���������樮��� ������ 横���� � ���������-
��

�‫� ����� �ﭨ‬ᥬ� �������� � ��‫ﭨﬨ‬.

SetData
procedure SetData (var Rec); virtual;

�८���
��� Rec � ⨯ Longint � ������� ��� ���祭�� �
� �������� , �⮡�
Value, ��� 祣� ��뢠�� DrawView ��� ���� �
������ �� ����� ���‫�ﭨ‬.

Store
procedure Store(var S: TStream);
�����뢠�� ������ ���������樮���� ������ � ���
S, ���-
��� �砫� ��⮤ Store, 㭠��
�������� TCluster, � ��⥬
�����뢠�� ����, �������� TMultiCheckBoxes.

��. ⠪��: TCluster.Store

*- ��� TNode Outline


-----------------------------------------------------------------

���ᠭ��:
TNode = record
Next: PNode;
Text: PString;
ChildList:PNode;
Expanded: Boolean;
end;

�㭪��: ��ꥪ�� ��������������� � �� ����� �����


⨯� TNode � � � ����� � � ��易���� ���, ��⠢�����
��������� ��������. ������ 㧫���������� ᮤ �ন���
ᮤ⥪ ���
�⮣� ����� �������� ������� � �� ���� Text.
ChildList
㪠�뢠�� �� ���������� ���稭�����㧫�����nil,
�� ��� ����⮢, ���稭�������� 㧫� . Next 㪠����
뢠 ��
�� �� 騩 㧥� ⮣� ��� �� �, �� � ⥪�騩. Expanded �� True
� ��砥, �� �� � �������� �������� ������� ����-
⮡�
�뢠�� ���稭���� �⮡� � � ��� ������, ������ ����
ChildList, ��� False, �� ���稭����㧫� �������.�

�� �ᮡ������� 襣� �⢥����� ��������� ��� -


���� ����室����������� ����㧫� ��������
�㭪樨 NewNode, �

����������� �� ��� � ������� DisposeNode.

��. ⠪��: ��楤���DisposeNode, �㭪�� NewNode

*- TObject Objects
-----------------------------------------------------------------

TObject �।�⠢��� ���� 砫��� ��� ����娨 ��ꥪ⮢


Turbo Vision. ��� ������ ��ꥪ �, �� �� ����� ���� ������ꥪ-
⮢, �� ����� ����� ���� ����� . ������, �� ���祭���
TPoint � TRect, �� �⠭����� ��ꥪ�� Turbo Vision
����� � �⮣� ��� ���� � � �TObject. �� ��ꥪ� , �����
��� ����।�⢠ ���� ��Turbo Vision, ����� �⫥������ ��
"��������
� � �" �� TObject.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init;

�뤥 ��� ��� ��ꥪ � ������ � ������� � � �


।��塞��
������ � �������� �� ��‫ﬨ‬. ��뢠���� �ᥬ�
���������
��
��� ��������ꥪ⮢.

����⨬, �� TObject.Init �㤥� �������


������������ ,
����� � ������ ��� � ��뢠�� TObject.Init ��। ���樠����
-
��� ��������ꥪ⮢.
樥� ��������������������

Done
destructor Done; virtual;

�뫠믮짮
��������室���������� ��� ������� ����� ���
��������� � � ꥪ⮢.

Free
procedure Free;

����⮦��� ��ꥪ� � ��뢠�� �������� Done.

*- TOutLine OutLine
-----------------------------------------------------------------

TOutLine ॠ����� ���, � �� ������� ⨯ ���㠫�����


�������� � � � � � � � . �� �।��������, �� �������� � � � � -
��� �।�⠢��� ��� 易��� ᯨ ����ᥩ � ⨯ TNode, ⠪,
�� ����� 㧥� ����� �� �� ⥪��, 㪠��⥫ � �� ���� �� -
�� 㧫� �㪠��⥫�������騩㧥� � ⮣� ��� � � �.

*- ����
-----------------------------------------------------------------
Root
Root: PNode;

���� 뢠�� �� ���� ��㧥� ��ॢॢ� ����娨.

*- ��⮤ �
-----------------------------------------------------------------

Init
constructor Init (var Bounds: TRect;
AHScrollBar, AVScrollBar: PScrollBar;
ARoot: PNode);

������� �⮡ ����� ����� ������� � ������� , ���-


����� Bounds, AHScrollBar � AVScrollBar ���������� Init, 㭠�-
����������� �� TOutlineViewer. ��⠭�������� Root �� ARoot,

��⥬ ��뢠�� Update, ��� ��⠭���� �।���� ����
�⪨ �� �
⮡ -
����� �����, � � ��뢠��� �� ������, �ঠ����� ������� -
��� �������.

��. ⠪��: TScroller.Init

Done
destructor Done; virtual;

����⮦��� �⮡� ���� ����� �������� ������� ,


�� ��㧥�, ����� ����
㭨�⮦�� �砫� �� ⥫� � � �쭮 㭨��
���� -
���� �� ���� ���� 㧫�, � ��⥬ ��뢠�� �������� Done,
㭠��
�������
� TScroller.
��. ⠪��: TScroller.Done

Adjust
procedure Adjust (Node: Pointer;
Expand: Boolean); virtual;

��⠭�������� ���祭�� ���� Expanded �� Node ������ -


���, ��।������ � Expand. �� Expand �� True, � ���� ����
㧫�, �易��� � Node, �������� ������. �� Expand ��
False, � ���� ����Node 㧫� �������� �������묨 .

GetRoot
function GetRoot: Pointer; virtual;

�����頥� Root, 㪠�뢠�騩 �����設� 㧫�� ����-


娨.

GetNumChildren
function GetNumChildren (Node: Pointer): Integer;
virtual;

�����頥� ������⢮ 㧫�� � ChildList 㧫� Node ���


���� � ��砥, �� ChildList �� nil.

GetChild
function GetChild (Node: Pointer;
I: Integer): Pointer; virtual;

GetText
function GetText (Node: Pointer): String; virtual;

��, �� ������ 㪠����


�����頥� �� 뢠 ���� Text 㧫� Node.

HasChildren
function HasChildren (Node: Pointer): Boolean; virtual;

�����頥� True � ��砥, �� ChildList 㧫� Node �� ��


nil; � ��⨢��� ��砥 �����頥� False.

IsExpanded
function IsExpanded (Node: Pointer): Boolean; virtual;

�����頥� ���祭������Expanded 㧫� Node.

*- TOutlineViewer Outline
-----------------------------------------------------------------

��� ��ꥪ� ���㠫����� ������ � � � � � � � � � � � � � 稢�-


������ � � � ⮤⮡� � � � � �� � ��
�� , ������� �� 宦�������
����⠬ �������� ������� . TOutlineViewer, ������, ��
������ �।��������� �� ������ ��������.
����
���
TOutlineViewer, ⠪��, ⮡�
��� TOutline, �� � �� ��������

�������� � �� �� ����⨯�� ����⮢ .

*- ����
-----------------------------------------------------------------
Foc
Foc: Integer;

����뢠�� ����� ��⨢���� 㧫� �������� ������� .

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init (var Bounds: TRect;
AHScrollBar, AVScrollBar: PScrollBar);

������� ��ꥪ� ���㠫����� ���������������, ���-


��� �砫� ��������� Init, 㭠��
�������� TScroller, ���-
����� Bounds, AHScrollBar � AVScrollBar. ��⠭�������� GrowMode
�� gfGrowHiX + gfGrowHiY � ��⠭�������� Foc ����� .

��. ⠪��: TScroller.Init

Adjust
procedure Adjust (Node: Pointer;
Expand: Boolean); virtual;

Adjust �।�⠢��� ᯨ� �� ���� � � ᯨ ⮤ , ����� ���-


��
��
����� ⨯� ���㠫����������� �� ������� ������ ��८��-
������ ��� �⮡����� ���������
������ 㧫�� � ��砥 ���⢠
Expand True, � ����� �� � ��砥 ���⢠ Expand False.
��뢠���� � ��砥, ����� ���짮��⥫� ���뢠�� ��� ��뢠��
���ন 㧫� Node.
� ��� �� HasChildren �����頥� ��� Node
���祭�� False, � Adjust ������� �� �㤥� ��뢠 ���� ��� �⮣�

㧫�.

��. ⠪��: TOutlineViewer.HasChildren

CreateGraph
function CreateGraph (Level: Integer; Lines: Longint;
Flags: Word; LevWidth, EndWidth: Integer;
const Chars: String): String;

�뢠뢠뢮 ��
���������� ��, �ਣ����� ��� ������ ��
GetGraph. Level 㪠����
뢠 �� � � � � � � � � � � � ����� � � .
Lines �।�⠢��� ������� ��� , ����뢠��� �� � � �, ����騩
���� "��� ������" (���筮 �� ���⨪ �� �� ���� ).
���ਬ�� , �� ��⠭����� ��� 3, � �� � � � 3 ��� �������
�� �।��� �⮣� ��� ��
�.

Flags ���� �������⥫��� ���ଠ�� � ,� ��� ����� ����


����砭�� ��䨪� (�. ����⠭�� ovXXXX). LevWidth �।�⠢���
�� � �� ������, ���� � �������㯨������������
�� � �.
EndWidth �।�⠢��� ������� ������� � � ���� .

��䨪 �������
�������� : ��⪨ �� � � � � � � � 砭�� ���-
�� 㧫��. ��⪨ �� � � � � � � � ⪨ � � � � , �����-
� � � � � � � � ��
���� �������⥫�� �� � �. ��, ����� ��⪨ ����������,
��।���-
���� Lines.
����砭�� ��䨪� ������ ����饭��� ������ �� �� ����
����� ��ࢮ��, �� ����� ����� EndWidth - 4 �� �����������-
⥫� ����, �� ����� �� �� �� ������� ����������
�������, �
��⥬ - �� ��������/�������. �� EndWidth �� 2, � � � ��-
������ �� ��� ����� ��ࢮ�� � ������/�������. �� EndWidth
�� 1, � � � ������� 쪮 �� ��������/�������. Flags ��-

।���� �����, ����� ���� �롨����� .

� ���� Chars �ঠ������� 騥 �� ���


:

1 2 3 4 5 6 7 8

����������������������������������������ͻ
� � � � � � � � - � - � + � - �

����������������������������������������ͼ
�������⥫� � � � � � � � � �������
�� � � � � � � � � � � � � � �
� � � � � �
��⪠ � � � � � ���� ������
�� � � � � � � � � � � � � � � � � � �
� � � �
����� � � � � �����
��ࢮ�� � � � �����������į��� ������
(�� ���� ����
) �������� � �
� � �������⥫�
����� � ������������������
����
��ࢮ�� �
(��������
) ������������������

-----------------------------------------------------------------
������ ����� ��� ���ᠭ��
-----------------------------------------------------------------
�������⥫� ' ' ��� ����������� ����
� ���
���
��� �

��⪠ '�' �� ��������� �ᯮ ᮤ� ,


⬥ ⪨ �����
���
��� � ��⨢��� � �����騩 �����. �

����� '�' �������� ���� ⢥ ��ࢮ��


��
��ࢮ�� ����� ����筮� ��� ����� �����
(�� ���������
� � � � 㧫� � ��砥, �� �� �� ����
���� ������
) �������� � �� ����㧫��.

����� '�' �������� ���� ⢥ ��ࢮ��


��
��ࢮ�� ����� ����筮� ��� ����� �����
(����
�����
� � � � 㧫� � ��砥, �� �� ����
���� ������) �������� � �� ����㧫��.

�������⥫� '-' �������� ���� ⢥ �������⥫�


��
���� ���楢�������� ����� 㧫�
��

����� '-' � ��砥 EndWidth>LevWidth ���


���� ������ ���� �㤥� ����饭 � ������
���� ���� � �����饣�

��� �
. �� �� ��� ������
, �
�� ���筮 T.
������ '+' ����頥�������� ⢥ ���������
� � � �
�� �����������
����� 㧫� � ��砥,
�� ��� ������� ������
���, � ���
�� ������.

������� '-' ����頥�������� ⢥ ���� �����


� � � �
�� �����������
����� 㧫� � ��砥,
�� ��� ������� ������
���, � ���
������.
-----------------------------------------------------------------

���ਬ��, GetGraph ��뢠�� CreateGraph � ����騬� ���


-
�:
����

CreateGraph (Level, Lines, Flags, 3, 3,


' '#179#195#192#196#196'+'#196);

짮����� ������� ����� ����� ����� ��:


��� ��ᮡ�

CreateGraph (Level, Lines, Flags, 3, 3,


' '#186#204#200#205#205'+'#205);

��� ⮣�, �⮡� ���� ��������� ��室��� ��� ⥪�� ����-


� ⮣�, �⮡� ��室��� ��� ���, � �� �������� 騩 �맮�:

CreateGraph (Level, Lines, Flags, 2, 4,


' '#179#195#192#196#194'+'#196);

Draw
procedure Draw; virtual;

��뢠���� ��� ���⮡ �������������� ����� ������ -


��
�� � � � � � � � � . Draw � � 뢠�� GetGraph ��� ����祭 �� ���� ��

��� ��������, � ��⥬ �������� ����, �����饭���
GetText.

����, �ঠ�� �� �� �� ⨢ �� ��������, �����


������
����� ���⫨�� 梥�. ����, ����� ����� �� � � � ��,��
⮡�
�����뢠 ���� � 뤥 ���� 묨 .

��. ⠪��: TOutlineViewer.GetGraph, TOutlineViewer.GetText

ExpandAll
procedure ExpandAll (Node: Pointer);

�� �� Node ����� ���� ����㧫�, � ExpandAll ����


��� -
��⥫쭮 ���뢠�� Node, ��뢠� Adjust � �� ����
� True, �
��⥬ ���뢠�� �� ���� ���� 㧫�, ��뢠� ExpandAll ���
������� �� ���.

��. ⠪��: TOutlineViewer.Adjust

FirstThat
function FirstThat (Test: Pointer): Pointer;

⥫� � � � 쭮 ��室�� �� 㧫
FirstThat ����
���� ��� �������� , ���-
��� �㭪�� , �� ������ 㪠���� 뢠 Test, �� �� ���, ���� Test
��
���� True. Test ������ 㪠� 뢠� � � � � � � ������ 㭪� � ⨯ � far,
������� ����騩 �⠪��:

function MyIter (Cur: Pointer; Level, Position: Integer;


Lines: LongInt; Flags: Word):
Boolean; far;

���������������
��� 饥:

Cur 塞� ��.
�����⥫� �� ��� �

Level ��� ��㧫� (��쪮 㧫�� ��室���� ��� ���),


�����뢠��� �� ���. ����� ���� � �� �짮���

�맮�� GetGraph ��� CreateGraph.

Position ���冷� 㧫�, � ����⮡ � ��� �


����.
� �����
��� 짮������ � �맮�� Focused ��� Selected.
�� ��室���� � ���������, � Position - Delta.Y
�।�⠢��� �� ���������, � ���� ��
���������� � ������� �����.

Lines ����, 㪠�뢠�騥 ��⨢�� ��� �


. �����
��� 짮������ � �맮��� GetGraph ���
CreateGraph.
����뢠�� , ����� ��ਧ��⠫��� ����� ����室�
��
��� ��.

Flags � ����(�. ����⠭�� ovXXXX).


������� 䫠��� �
����� ��� 짮������ � �맮��� GetGraph
���
CreateGraph.

Focused
procedure Focused (I: Integer); virtual;

��뢠���� � ������ ��砥, ����� �� �⠭������ ��⨢��.

��� I 㪠�뢠
��� 㧫�� ��������� �� �������� , ����� �⠫ ���-

���. �� 㬮�砭��Focused ���� ��⠭�������� Foc �� I.

ForEach
function ForEach (Action: Pointer): Pointer;

��室�� ���� 쭮
����⥫ � �ᥬ 㧫��. Action 㪠����
뢠 ��
�������� ���� ��⨯� far, ������ ForEach ��뢠�� ��� ���
��-
�� 㧫� ������ � � ������� . ���⠪�� �� ���⨢��� ��-
�� ������騩:

procedure MyIter (Cur: Pointer; Level, Position: Integer;


Lines: LongInt; Flags: Word); far;

���������������
��� 饥:

Cur 塞� ��.
�����⥫� �� ��� �
Level ��� ��㧫� (��쪮 㧫�� ��室���� ��� ���),
�����뢠��� �� ���. ����� � �� 짮 ������� � �
�-
���� GetGraph ��� CreateGraph.

Position ���冷� 㧫�, � ����⮡ � ��� �


�����. �����
���짮������ � �맮�� Focused ��� Selected.
�� ��室���� � ���������, � Position - Delta.Y
�।�⠢��� �� ���������, � ���� ��
���������� � ������� �����.

Lines ����, 㪠�뢠�騥 ��⨢�� ��� �


. �����
���짮������ � �맮��� GetGraph ���
CreateGraph.
����뢠�� , ����� ��ਧ��⠫��� ����� ����室�
��
��� ��
.

Flags ������� 䫠��� �� ����(�. ����⠭�� ovXXXX).


����� ���짮������ � �맮��� GetGraph
���
CreateGraph.

GetChild
function GetChild (Node: Pointer; I: Integer):
Pointer; virtual;

GetChild �।�⠢��� ᯨ� ������ ��� ᯨ ⮤ , ����� ���-


��

������ ⨯� ���㠫���� � � �����
��������� ������ ��८�-
।����� ��� ������ 㪠��⥫� �� I-�� ���� �� ������ 㧫�
Node.

�� HasChildren �����頥� False, �� ����砥� ��䠪�,


�� Node �� ����� ���� �����㧫��, � GetChild ��� �⮣� 㧫�
��뢠���� �� �㤥�. ����� �� ���������� �� �, �� �� ����-
������ �������� ������� ��뢠�� GetChild, � ��� ��
����� �� �� ��� ��� I ���� �����㧫��.

��. ⠪��: TOutlineViewer.HasChildren

GetGraph
function GetGraph (Level: Integer;
Lines: Longint; Flags: Word): String;

�����頥� �� �� ������ ����� , ����� ���� � ������


⥪��, ����� 饭���� GetText. �� 㬮�砭��GetGraph
�� � �� �
��뢠�� CreateGraph � ���祭�‫���� �� ﬨ‬ , ��⠭������� � �
㬮�砭��. ��८�।����� GetGraph �㦭� ����� � ��砥, ��
�� ��� �������� ���譨� ����⮡� � � ���������� �������-
��� ��������.

� � �������娨 CreateGraph
���ਬ��, ����� �맮�� ��� �⮡�
��� ����� ������������ ������ ���� ������ ���
���⮣� ���-
�������� ⥪�� �� ������� ��� ������� ��� �����稭�.

GetNumChildren
function GetNumChildren (Node: Pointer):
Integer; virtual;

GetNumChildren �।�⠢��� ᯨ� ��������� ᯨ ⮤ , �����


��

���� � ��� ⨯� � � � � � �����
㠫���� ��� ������ ������
��८�।����� ��� ������ ������⢠ ���� �����㧫�� � Node.
�� HasChildren �����頥� ��� Node False, � GetNumChildren
������� �� �㤥� ��뢠���� .

��. ⠪��: TOutlineViewer.HasChildren

GetNode
function GetNode (I: Integer): Pointer;

�����頥� 㪠��⥫� �� I-� �� � �������; �.�. ��,


���� � I ������ �� ���孥� ��� �ᥩ ��������.
�����

GetPalette
function GetPalette: PPalette; virtual;

�����頥� 㪠��⥫� ���� ⠭�������� �� 㬮�砭���������


�������� �������, COutlineViewer.

GetRoot
function GetRoot: Pointer; virtual;

GetRoot �।�⠢��� ᯨ� ������


����� ᯨ ⮤ , ����� ���-

����� ⨯� ���㠫���� � � �����
��������� ������ ��८�-
।����� ��� ������ 㪠��⥫� �� ���� ������� ��������.

GetText
function GetText (Node: Pointer): String; virtual;

GetText �।�⠢��� ᯨ� ������


����� ᯨ ⮤ , ����� ���-

����� ⨯� ���㠫���� � � �����
��������� ������ ��८�-
।����� ��� ������ ⥪�� Node.

HandleEvent
procedure HandleEvent (var Event: TEvent); virtual;

�����뢠�� ������� ���� ᮤ ᮤ �,⨩ ��뢠� ��⮤


HandleEvent, 㭠���
� ����� � TScroller, � ��뢠��
� �� �
������� �� ���� ��� � ����������.

HasChildren
function HasChildren (Node: Pointer): Boolean; virtual;

HasChildren �।�⠢��� ᯨ� �������� ��� � ᯨ ⮤ , �����


� � �����
���� ���� ⨯� ���㠫���� ��� ������ ������
��८�।����� ��� ������ True � ��砥, �� Node ����� ���-
����� 㧫�, � False, �� �� �����.

�� HasChildren �����頥� False ��� ������� 㧫�, � ���


�⮣� 㧫� ����� � � �� �� 뢠 ���� ���� 騥 � 㭪樨 : Adjust,
ExpandAll, GetChild, GetNumChildren � IsExpanded.

�� ��⮤� ����� �।��������, �� ���� �� ��� �뫠짮뢮


��
,�
�������� ���� ����㧫�, � ����� � ������ ����.
IsExpanded
function IsExpanded (Node: Pointer): Boolean; virtual;

IsExpanded �।�⠢��� ᯨ� �������� ��� � ᯨ ⮤ , �����


���� ���� ⨯� ���㠫���� � � �����
��� ������ ������
��८�।����� ��� ������ True � ��砥, �� ���� ����㧫�
Node �� �� ���� � ����. �� HasChildren �����頥� ���Node
False, � IsExpanded ������� �� �㤥� ��뢠���� ��� �⮣� 㧫�.

IsSelected
function IsSelected (I: Integer): Boolean; virtual;

�����頥� True � ��砥, �� �� �� ��


. �� 㬮�砭��
TOutlineViewer �।��������, �� �������� ������� �����-
�� �롮 � �����������
, ����� �� �����頥� True � ��砥,
�� Node ���� Focused. ��� ॠ����樨 ������⢥����� �롮 �
����室��� ��८�।����� IsSelected.

Selected
procedure Selected (I: Integer); virtual;

��뢠���� �� ������ �롮� 㧫� ���짮��⥫�� �� �����


����
���������� ��� ���. �� I 㪠����
뢠 ��������� � �
������
���� �����.
����� ���

�� 㬮�砭�� Selected �� ������ ��祣�; ���� ����⨯�


����� ��८�।����� Selected ��� �뫠믮짮
������
��।������� �����-
��� � �⢥� �� �롮� .

SetState
procedure SetState (AState: Word;
Enable: Boolean); virtual;

��⠭�������� ��� ���뢠�� 䫠�� ��� ‫ �ﭨ‬AState ���


�⮡������� �����, ��뢠� ��⮤ SetState, 㭠�� �������

TScroller. �� ����� ���‫���� �ﭨ‬砥� ��������� 䮪��, �
SetState ��뢠�� DrawView ��� ���� �� ��
�������� .

��. ⠪��: TScroller.SetState

Update
procedure Update;

�������� �।��� ���㠫����� ������


�� �������.
�।�� � ���⨪��쭮� ���������� ।�⠢��� ���� 㧫��
� �������. �।�� � ��ਧ��⠫쭮� ��������� - �� ����� �-
��� ������� �� � � ��.
�����

� ������� ��뢠�� Update �� ������ ���������


���
������
� �������� ������ . TOutlineViewer �।��������, �� ����-
���� ����, ����� �� � ���樠����樨����⠭������ �����-
�, � ����室��� �  �� ���� ����� ��� Update. �� �� ��
���㠫����� �뢮 ���� ����� ���������� , � ����室��� �
����
��⮤ Update, 㭠���
� �����
� DrawView.
*- ������
-----------------------------------------------------------------

��ꥪ�� ���㠫����������� �� ������� � �� �����


���
���� 6 - 8 ����ᥩ �⠭����� ������
�⮡� ���� �����祭���
㬮�砭���������COutlineViewer.

1 2 3 4
�������������������ͻ
COutlineViewer � 6 � 7 � 8 � 8 �
�������������������ͼ
� � � �
����� 梥� ����������� � � ���� ���� �� ���
�⮣�
���� ��⨢���� �������������� ���������Ė���
�����
�� �

*- ��� TPalette Views


-----------------------------------------------------------------

��� ᠭ��: TPalette = String;

�㭪��: ��, � �� ��
����� 㥬� ��� ���ᠭ�� ������ Turbo
Vision.

��. ⠪��: ��⮤� GetPalette

*- TParamText Dialogs
-----------------------------------------------------------------

��ꥪ� TParamText ���� � �� ����� �� ��ꥪ�


TStaticText, ����� ��� �ଠ��� ������
� � �� � �� ����
�����ਧ������ ⥪� �⮢� � �� , �ਬ���� ��� �⮣� ��楤� ��
FormatStr.

*- ����
-----------------------------------------------------------------

ParamCont
ParamCont: Integer;

ParamCount 㪠�뢠�� �� ���


�� � �, �ঠ���� �
ParamList.

��. ⠪��: TParamText.ParamList

ParamList
ParamList: Pointer;

ParamList- �� ��⨯����� ��� 㪠��⥫� �� ���� � ��


������ 㪠��⥫�� ��� ���祭�� ⨯� LongInt, � �� ��
㥬�� � ���-
���
�⢥ �� � � � ���
������ଠ ⥪� ��
� ⮢�ப � .

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init(var Bounds: TRect; AText: String;
AParamCount: Integer);

������� ��ꥪ� ���� � � �� ⥪ � , ��뢠� ���������


Init, 㭠��������
� � ���
TStaticText, � ������� �� � � Bounds
� ⥪� �� � ⮢ � �� � AText, ����� ����� ᮤ �ঠ�� ���� ��ᮤ

�ଠ� � �ଥ %[-][nnn]X, � �㤥� ��������� �� �


���
�� �
, ���-
����� � ६� �믮
�� ���
������. ��� �� � �, ��।�����
ParamCount, ��ᢠ������� ����
ParamCount.

����⥫� �ଠ� �����


� �� ��ᠭ ����
���� , ����饭���

��楤� �
FormatStr.

��. ⠪��: TStaticText.Init, ��楤� ��


FormatStr

Load
constructor Load(var S: TStream);

������� ��ꥪ� TParamText � ����㦠�� ��� ���祭�� �� �


S, ��뢠� �砫� ��������� Load, 㭠��������
� �
TStaticText, � ��⥬ �⠥� �� ���� ��� ParamCount.

��. ⠪��: TStaticText.Load

DataSize
function DataSize: Word; virtual;

�����頥� ��� ������ , ���


�ॡ 㥬� �� � ���� ꥪ� ,
�.�. ParamCount*SizeOf(LongInt).

GetText
procedure GetText(var S: String); virtual;

������� �ଠ�������
� �ப� ⥪�� � S, �믮 ���� ��ꥤ � -
����� ��� � �������� � ParamList, � ⥪� ��
��, � ⮢� �� Text �
������� �맮 � � FormatStr(S, Text^, ParamList^).

��. ⠪��: ��楤� ��


FormatStr

SetData
procedure SetData(var Rec); virtual;

��� ����
�⮡� ����� �⠥� DataSize ���� � ParamList
�� Rec.

��. ⠪��: TView.SetData

Store
procedure Store(var S: TStream);

���� �� ��ꥪ� � ���� S, ��뢠� �砫� ��⮤ Store,


㭠��������
� � TStaticText, � ��⥬ �����뢠� � ��� ����
ParamCount.

��. ⠪��: TStaticText.Store

*- ������
-----------------------------------------------------------------

��ꥪ� � TParamText �
�� ������������ (�����祭� � � � � �
砭� � ) CStaticText, ��� �� � � � � 6-�� ����� �⠭�����
⮡� �
������� ����������� ����.

1
���ͻ
CStaticText � 6 �
���ͼ
����� ������

*- TPoint Objects
-----------------------------------------------------------------

TPoint- �� ���� ��ꥪ� , �।�⠢���� � � �� � �


���.

*- ����
-----------------------------------------------------------------

X
X: Integer;

� - �� ����� ���
��� 窨 � � ��
��.

Y
Y: Integer;

Y - �� ����� ���� �窨 � � � �
��.

*- ��� TPicResult Validate


-----------------------------------------------------------------

���ᠭ� �:
TPicResult = (prComplete, prIncomplete, prEmpty,
prError, prSyntax, prAmbiguous,
prIncompNoFill);

��� �: TPicResult ���� ⨯�� १����, ������� ���


��⮤�� Picture, 㭠�� � � � � ���� TPXPictureValidator.

��. ⠪��: TPXPictureValidator.Picture

*- TProgram App
-----------------------------------------------------------------

TProgram ���� �� � � � � � � � � 蠡� � � � � � � � � � ⠭������


� �� Turbo Vision. �� ⠪�� ���
��� � ������� ���� ������
�����
�� TProgram ��� ���� ����� �� ��� TApplication. TApplication
�⫨砥� � � � � TProgram �쪮 � ⠭������
� 묨 � � 㬮�砭 � � � � � � � -
���� � � � � � � � � �. ��� �� ⨯� ��ꥪ⮢ ᮡ��� � � � � � � � � -
� � � � � � � � � � ᮡ��� � � � � � ⠭������ ��� �. � ������ ⢥
��砥 � � � � � ��� ��� � � � �� ������� TApplication.

��ꥪ� TProgram ���� ��� ������� TGroup, ���� ��� �


������ �� ঠ����ꥪ� � TDeskTop, TStatusLine � TMenuBar.

��������! ������ ��ꥪ� � ��


� �TProgram ����� �
����
2.0 �� ����� ��⮤�. CanMoveFocus � �� ������
���� ७�� ���
�-
���� ��� ��।������ ⮣�, ����� �� ������ ���� �
�� ������,
����� ���짮��⥫� ��室���� � ���� ��।���⥫� �����⨬��
�.
��� � � � � � � ⮤ � � ।�⠢���� ���������� � ।�⢮ ��������
���� � ����� � � ������������� � ����⨢��� ������ � � ��.

*- ��⮤�
-----------------------------------------------------------------

Init
constructor Init;

��८�।��塞����: ������ ��८�।������.

��⠭�������� ��������� ��६����� Application


���

@Self; ��뢠 � �InitScreen ��� ���� � � �樨 � � � ६�����,
�� �� ०��� � �� � ; ��뢠 � �� � � � � � � � � Init, 㭠�� ��� � � �
�� TGroup, ��।���� ��‫אַ‬㣮�쭨 � Bounds, � ���������� �;
� �
��⠭�������� ���� State �� sfVisible + sfSelected +
sfFocused + sfModal + sfExposed; ��⠭�������� ���� Options
�� 0.
� ��⠭�������� ���� Buffer �������� �� ����
����, ��������� � ScreenBuffer. �������, ��뢠 � �
InitDeskTop,
InitStatusLine � InitMenuBar � ��⠢��� �� �� ⮡�� ���
������ � ��� � TProgram.

��. ⠪��: TGroup.Init, TProgram.InitDeskTop,


TProgram.InitStatusLine, TProgram.InitMenuBar

Done
destructor Done; virtual;

��८�।��塞����: ������ ��८�।������.

��� ��������ꥪ�� DeskTop, MenuBar � StatusLine � ��⠭��-


������ ��������� ��६����� Application ��� nil, ��� ��
��뢠 � �� � � � � � � � Done, 㭠� � � � � � � � � TGroup.

��. ⠪��: TGroup.Done

CanMoveFocus
function CanMoveFocus: Boolean;

CanMoveFocus ������ � � � � 祭 � � True � ��砥, �� ����-


⨢��� ������� � � � ����� ���९���⢥��� ��������
����. ��� ��⮤ ��।����, �������� �� ���� �� ��⥬ �
맮 � �����⨢��� �������� �� � ��⮤� Valid �� ��⨢���� ����

�������� cmReleasedFocus.

�� ���� � � ন��������� � ���� , �����,


��������,
�� ���� �ਧ���� ������ 묨 � ��砥, �� ���짮��⥫� ��६�-
��� � � �� � � ⮣ � � � � � , � ��� ��⮤ Valid ������ ������
९������ ���� ����� �� �
祭�� False, ⥬ ᠬ� � .
ExecuteDialog
function ExecuteDialog (P: PDialog;
Data: Pointer): Word;

��뢠 �� ValidView � 楫 � � � � � � ��
���� �, �� P �-
���� ����� ⨬� ��������� �����, ��� � � � � � � �� �P �
� � � � � � �. �� �����⨨ ����������� ���� ���짮�
�⥫��
ExecuteDialog � � ⮦ � � � ��� � � � � � � � ��� � � ��� � �頥 � ��� �
������ � � � ०����� ���‫�ﭨ‬, �����饭��� ExexView. ��
ValidView ������ � nil, �� ����砥�, �� ���������� ���
� ��
, ExecuteDialog ������ � cmCancel.
�� � ����⨬�

�� ���祭�� Data �⫨筮 �� nil, � ExecuteDialog ���� �-


��� � �������뢠 �� �� ⠭���� � ���뢠 ��� � �� ����������⮢
����������� ����, �������� ���� ⢥ ����� ������
Data^. ���-
�� � � � � � ⠭���� �
������������⮢ ExecuteDialog ��뢠 ��
P^.SetData. �� ���짮��⥫� �� �४��� ���� ���������
�����, � ��। � �⮦ � � � � � ��� � ���� � � � � � � ��
ExecuteDialog ��뢠 �� P^.GetData ��� ���뢠 ��� ����� ���祭 ��
������� ����⮢ ����������� ����.

��������! ����室��� ��뢠 �� ��⮤ ��ꥪ � �ਪ������ ��-


��
� ExecuteDialog, � �� �����।�⢥��� Desktop^.ExecView.
ExecuteDialog �।�⠢��� ��� ����

�� ���� �� � �
����⪨ ��⠭���� � ���뢠��� ���祭�� ����� �������, �
⠪�� ����� ����� ������ ��� ����⨬��� .

��. ⠪��: TProgram.ValidView, TGroup.ExecView

GetEvent
procedure GetEvent(var Event: TEvent); virtual;

��८�।��塞����: � �� ������।��.

�� 㬮�砭�� ��⮤ TView.GetEvent ���� ��뢠�� GetEvent


�� ���������� �, ���� ���TProgram ( �� TApplication) � ����-
筮� �⮣� ������ �������楬 � �� � ⮡� � � ����������, �
�� �맮 � GetEvent �� � � ਢ����� � TProgram.GetEvent (��
�쪮 � � �-� �
���� ⮡�
�� � �������� ����� �� ��८�।����
GetEvent).

T�rogram.GetEvent ���� � � �� ���, �� ᣥ����� � ��


PutEvent �⫮������ �⨥ . �� ��, � GetEvent ������ � � �
�⫮������ ��⨥. �� ��� �⫮������� ���, � GetEvent
��뢠�� GetMouseEvent. �� ������ � � �evNothing, � ��뢠�� -
�� GetKeyEvent; �� ��� ��� �������� evNothing, 㪠��� 뢠 ��
�, �� ��� ����� �� ���짮��⥫�, � GetEvent ��뢠��
TProgram.Idle, �⮡� �������� "�� � �" �����, �믮 � 塞 ��
�� �६� �������� �ਪ������ ��� �
��� ���� �� ���짮��⥫�. ��
������ GetEvent ��।��� �� ��� ��� evKeyDown �
evMouseDown �
StatusLine, ��� �� ᮤ
८������� ᮤ� �� ���� ���
� ᮤ⨩ ⨢
����� �
�⢥�����騥 evCommand.

��. ⠪��: TProgram.PutEvent, GetMouseEvent, GetKeyEvent


GetPalette
function GetPalette: PPalette; virtual;

��८�।��塞����: ������ ��८�।������.

������ � � � � � � � � � � � � � � , �������� �����


� � ����
������쭮 � � � ६����� AppPalette. TProgram �����ন���� ��
���: apColor, apBlackWhite � apMonochrome. ��६����� AppPalette
���� � � � � � � � � � TProgram.InitScreen.

��. ⠪��: TProgram.InitScreen, AppPalette, ����⠭�� apXXXX

HandleEvent
procedure HandleEvent(var Event: TEvent); virtual;

��८�।��塞����: ��� ��� ८�।������.

���� �뢠�� ������� ���� � ,⨩ ��뢠� ��⮤


HandleEvent, 㭠� � � � � � � �� � TGroup. �� ����뢠�� ��� ��
���������� �� Alt+1 �� Alt+9, �������� evBroadcast �
���祭���
Command, �� cmSelectWindowNum � ���祭��� InfoInt �
��������� 1..9. TWindow.HandleEvent ॠ����� �� ⠪��
�� 饭��, �롨 � � � � � � � � � � � � � � � � �.

���� �뢠�� � ⨥ evCommand � ���祭��� Command, ��


cmQuit, ��뢠� EndModal(cmQuit), �� �ਢ���� � ������ � �� ਪ-
������ ��� � �
.

TProgram.Handle ���� �ᥣ�� ��८�।������ ��� ��������


� ⪨ ������, �� � ���� � � � �� � ਪ������ ���
��� ��
� �.

��. ⠪��: TGroup.HandleEvent

Idle
procedure Idle; virtual;

��८�।��塞����: ������ ��८�।������.

Idle ��뢠���� �� TProgram.GetEvent ����� , ����� ��-


।� �⨩ ���� , �������� ��� � ��믮 ����� 䮭��� �����
�� �������� ����� �� ���짮��⥫�.

�� 㬮�砭�� TProgram.Idle ��뢠�� StatusLine^.Update,


�⮡� ����
� ���� �� ‫ ��������� �ﭨ‬ᥡ� � �⢥��⢨� �
� �� � �� � �� � �� �� �.� ��� , �� ����� ������ ���������
��� ���� ������ 맮 � � TProgram.Idle, ����������
� ���祭��� Command, �� cmCommandSetChanged, �⮡� ����
�⮡��� ���� � � ����, ����� ������ �� �⮣� ����� ������,

���� ��� ������� ᥡ�.


��������! �� �� ��८�।���� Idle, ������ � �, ��


�� �� 뢠 � � � � � � 㥬 � � ⮤ Idle. �������� ⠪��, �� �����,
�믮��塞� ��訬 ��⮤�� Idle, �� �������� �� � � � � � � � ६���
� �
� ��� , ���� ��� � �� � � � � � � �� ������ ���짮��⥫� �
�쭮 � � � � � � �� �६� ॠ�樨 ��� � � .
InitDeskTop
procedure InitDeskTop; virtual;

��८�।��塞����: ��८�।������ ।��.

������� ��ꥪ� TDeskTop ��� �ਪ������ � �� �


�� � � ��
�� �
㪠��⥫� �� ���� � ������쭮� ��६����� DeskTop. ��⮤
InitDeskTop ��뢠���� � TProgram.Init � ������� ��
������
��뢠���� �������. InitDeskTop ����� ���� ��८�।����
���
�ᮡ����������
�� TDeskTop, ��।�������� ���짮��⥫��, �����
��।�������� �� 㬮�砭��.

��. ⠪��: TProgram.Init, TDeskTop, TWindow.Init

InitMenuBar
procedure InitMenuBar; virtual;

��८�।��塞����: �ᥣ�� ��८�।������.

������� ��ꥪ� TMenuBar ��� ��� � �� �����


�� 㪠��⥫�
�� ���� � ������쭮 � �� ६����� MenuBar. ��⮤ InitMenuBar
������ � TProgram.Init � ������� �� ������ ��뢠���� ��
���।��-
�����. �ண� ����� � �� � ணᥣ� ८�।���� InitMenuBar ���
�ᮡ����� ��� 짮��⥫��� ����� ���� ����� ��।������� ��
㬮 �砭 �� ���� .

��. ⠪��: TProgram.Init, TMenuBar, TWindow.Init

InitScreen
procedure InitScreen; virtual;

��८�।��塞����: ������ ��८�।������.

��뢠���� �� TProgram.Init � TProgram.SetScreenMode �����


� ��� � � � � � � � � � � � � � � � � � � � � � � . ��
� ����� ०�� � ��
,
��⮤, ����� � ����⢨⥫쭮�� �믮���� ���������� � �����-
�� ��६�����, ��।��塞�� ०���� � �� � , ������ " ⥭� ",
���� � ������� �ਪ������ ��� ��
� �.

��. ⠪��: TProgram.Init, TProgram.SetScreenMode

InitStatusLine
procedure InitStatusLine; virtual;

��८�।��塞����: �ᥣ�� ��८�।������.

������� ��ꥪ� TStatusLine ��� ��� � �� �����


�� 㪠��-
⥫� �� ���� � ������쭮� ��६����� StatusLine. InitStatusLine
��뢠���� � TProgram.Init � ������� �� ������ ��뢠����
�����-
���. InitStatusLine ���� �ᥣ�� ��८�।������ ���
�ᮡ� � � � �
������ ���‫�ﭨ‬, ��।������� ���짮��⥫��, ����� ��।�����
��
�� 㬮�砭��.

��. ⠪��: TProgram.Init, TStatusLine

InsertWindow
function InsertWindow (P: PWindow): PWindow;

��뢠�� ValidView � 楫�� ������� � �, �� P ����


����� ⨬� �����, � �� �� ⠪, ��뢠�� CanMoveFocus ��� ⮣�,
�⮡� ��� ��� , �맮 � � � �� ��� � � � � � ��� � � � � � � � � �� ����
���� ����, �易��� � �����������. �� CanMoveFocus
������-
�� True, � InsertWindow ������ P � ����⨢��� ������� �
�����-
� � P. �� CanMoveFocus ������ � False, � InsertWindow �� -
� � nil.
⮦ ��� P � �����

��������! ����室��� ��뢠�� ��⮤ ��ꥪ� �ਪ������ ��-


��
� InsertWindow, � �� �����।�⢥��� Desktop^.Insert.
InsertWindow �� �쪮 � � �⢫��
�� ����
������
� �� ��
�����⨬��� ��ꥪ⮢ ����, �� ��� ⠪�� � � � ���� CanMoveFocus
��� ����� ������ � ��⨢��� ����.

��. ⠪��: TProgram.CanMoveFocus, TGroup.Insert

OutOfMemory
procedure OutOfMemory; virtual;

��८�।��塞����: ��� ��८�।������.

��⮤ OutOfMemory ��뢠���� �� TProgram.ValidView �����


� ����� LowMemory ����� ���祭�� True. OutOfMemory
,
������
�।�।��� ���짮��⥫� � �, �� ��� �믮������ ����樨
�������筮 �����. ���ਬ��, � � �� �
짮������ � �
� ��
MessageBox �� ����� StdDlg:

procedure TMyApp.OutOfMemory;
begin
MessageBox('Not enough memory to complete operation.',
nil, mfError + mfOKButton);
end;

��. ⠪��: TProgram.ValidView, LowMemory

PutEvent
procedure PutEvent(var Event: TEvent); virtual;

��८�।��塞����: ��८�।������ ।��.

�� 㬮�砭�� TView.PutEvent ���� ��뢠�� ��⮤ PutEvent


��� � ꥪ� TProgram (��� TApplication)
�� �� �������� �, ����
� ����筮� ��� ����� �������楬 ��� �⮡� � � ���������
-
�, � ����� �맮 � PutEvent �� � � ਢ����� � TProgram.PutEvent
(�� �쪮 � ⮡�
� � ��� ����� ����� �� ��८�।����
PutEvent).

��⮤ Program.PutEvent ��� �����


�� � ����� PutEvent �
����, � ����騩 �맮� GetEvent �� � � � � � � � � � ��� ��� � � .

��. ⠪��: TProgram.GetEvent, TView.PutEvent

Run
procedure Run; virtual;

��८�।��塞����: � �� ������।��.

�믮���� TProgram, ��뢠� ��⮤ Execute (����� TProgram


����
��� � TGroup).

��. ⠪��: TGroup.Execute

SetScreenMode
procedure SetScreenMode(Mode: Word);

��⠭�������� ०�� � ��� . Mode - ���� �� ����⠭� (smCO80,


smBW80 ��� smMono) � ����易⥫�묨 smFont8x8 ��� �롮 � 43- ���
50-���筮�� ०��� ������ EGA ��� VGA. SetScreenMode "��뢠-
��" ����� "���", ��뢠�� SetVideoMode ��� ��������� ०���
�-
� , ��뢠�� InitScreen ��� ���� � � �樨
� � � � ६�����, ��������
�� ०��� � ��
� , ��ᢠ����� ScreenBuffer TProgram.Buffer, ���-
���� ChangeBounds � ���� ��‫אַ‬㣮�쭨��� � � ��� , �������, �
�-
���뢠�� ����� "���".

��. ⠪��: TProgram.InitScreen, SetVideoMode, ����⠭��


smXXXX

ValidView
function TProgram.ValidView(P: PView): PView;


�����
ᯨ⮡ �����⨬����
ᮤ ����� �������
�� ᯨ�����
� ��� -
⮢, ������� �砥, �� ⮡�
����� � �������� ���� ��-
���⨬�, � nil - �� ���. ��-�����, �� � ����� ���祭��
nil,
������ � � �� � � 祭 � � nil. ��-�����, �� LowMemory �� True,
� �� ���� ValidView �� � ��������, ������� � �, ��-
⮡�
���������, ��뢠���� ��⮤ OutOfMemory � ������ � � � � � � 祭
nil. �-�����, �� ��� P^.Valid(cmValid) ������ � False, �
�⮡����� ����� �����������
� � ���� � � � �� � � 祭 � � nil. �
��⨢��� ��砥 �� ⮡�� ��� ����� ���� ���������, �
������ � � � � � � � � � � � � � ⮡�
� � �������� �.

ValidView ��� ᮤ� � � �� � �ᮤ ⨬ � ����� -� ����� ���


�� �⮡������� ����� �� �������� ��� �� ��������. �
Insert-
Window, � ExecuteDialog ��뢠�� ValidView. ValidView ����� ���-
���� ������� � �����, ����� �� �� � � � � � � � � � ⮡
��
����� ����������.

��. ⠪��: LowMemory, TProgram.OutOfMemory, ��⮤� Valid

*- �������
-----------------------------------------------------------------
������ ��� ��ꥪ� �ਪ������ ��� � �
�� ��� �� ���
�� � ⮣

梥� � � �� � �
� ��������⮡ ���
��.
� � �� �⮢८�������
�������
��� � � � � � � � � ਢ���� � �롮 � � ��� � � �� ��� � � � �
����� ������ ��ਡ��� ⥪��.

��������! � ���� 2.0 �⠭����� ������� ��� � ��뫨


���७�, � ������� ��������� ���� �� ��� ���㡮 � �梥� �
���������� � �������� � � � � 砭 � � � � � . ������� ��
CColor, CBlackWhite � CMonochrome ��-�०���� ����祭� � App ���
���� 祭�� ᮤ� � � ⨬��� � ������� � � � ��
� ���
, �����
���ਫ� �������� � � � � 砭 � � � � � � � � � .

� ���� 2.0 ������� CAppColor, CAppBlackWhite �


CAppMonochrome ������� ����� ������ 1.0, ������ ������

64 �� 127 ����.

���� ����� ��� ������ TBackground ��� 梥� 䮭 � .


�������� � 2 �� 7 �������������� � �����
� �� ‫�ﭨ‬.

1 2 3 4 5 6 7
���������������������������ͻ
CAppColor �$71�$70�$78�$74�$20�$28�$24�
����������������������������
����������������������������
CAppBlackWhite �$70�$70�$78�$7F�$07�$07�$0F�
����������������������������
����������������������������
CAppMonochrome �$70�$07�$07�$0F�$70�$70�$70�
���������������������������ͼ
��� ����� � � � � � ��� �� � �����
��ଠ��� ⥪�� ��� � � � � ��⨢ � 樨
����饭�� ⥪ �� ������ � � ������� ����饭�� ��� �
����� ������ ����������� �����������
��ଠ��� ���
��⨢�樨

�������� � 8 �� 15 �������������� ������ .

8 9 10 11 12 13 14 15
�������������������������������ͻ
CAppColor �$17�$1F�$1A�$31�$31�$1E�$71�$00�
��������������������������������
��������������������������������
CAppBlackWhite �$07�$0F�$07�$70�$70�$07�$70�$00�
��������������������������������
��������������������������������
CAppMonochrome �$07�$0F�$07�$70�$70�$07�$70�$00�
�������������������������������ͼ
����� ����� �� � � � � � � �� ��१�ࢨ�� ��
����� ��⨢�� ������ � � � � �� ��� ����⥪�

� � � � ⪨
��� �
���⮣� �� ����������� � � ������ ��ଠ��� ⥪��
��
� � � ⪨� �
���
��
����� ������ ��������� ���������� ��१�ࢨ�� ��
��� �⪨
�������� � 16 �� 23 �������������� 묨 ������.

16 17 18 19 20 21 22 23
�������������������������������ͻ
CAppColor �$37�$3F�$3A�$13�$13�$3E�$21�$00�
��������������������������������
��������������������������������
CAppBlackWhite �$07�$0F�$07�$70�$70�$07�$70�$00�
��������������������������������
��������������������������������
CAppMonochrome �$07�$0F�$07�$70�$70�$07�$70�$00�
�������������������������������ͼ
����� ����� �� � � � � � � ��� ��१�ࢨ�� ��
����� ��⨢�� ������ � � � � �� ��� ����⥪�

� � � � ����� ��� � ⪨
���⮣� �� ����������� � � ����� ��ଠ��� ⥪��
��
� � � ⪨� �
����� ���
��
����� ������ ��������� ��������� ��१�ࢨ�� ��
��� �⪨

�������� � 24 �� 31 ������������ 묨 ������.

24 25 26 27 28 29 30 31
�������������������������������ͻ
CAppColor �$70�$7F�$7A�$13�$13�$70�$7F�$00�
��������������������������������
��������������������������������
CAppBlackWhite �$70�$7F�$7F�$70�$07�$70�$07�$00�
��������������������������������
��������������������������������
CAppMonochrome �$70�$70�$70�$07�$07�$70�$07�$00�
�������������������������������ͼ
����� ����� �� � � � � � � ��� ��१�ࢨ�� ��
����� ��⨢�� ������ � � � � �� ��� ����⥪�

� � � � ����� ��� � ⪨
���⮣� �� ����������� � � ����� ��ଠ��� ⥪��
��
� � � ⪨� �
����� ���
��
����� ������ ��������� ��������� ��१�ࢨ�� ��
��� �⪨

�������� � 32 �� 63 ������������������ 묨 �����


�. ��.
TDialog ��� �⤥���� ����⮢.

32 33 34 35 36 37 38 39 40

�����������������������������������ͻ
CAppColor �$17�$1F�$1A�$31�$31�$31�$1E�$71�$00�
������������������������������������
������������������������������������
CAppBlackWhite �$07�$0F�$07�$70�$70�$70�$07�$70�$00�
������������������������������������
������������������������������������
CAppMonochrome �$07�$0F�$07�$70�$70�$70�$07�$70�$00�

�����������������������������������ͼ
����� ����� ��� � � � � � � � ��� ����.������
� � � � � � � ��⪨
����� ��⨢��������� � � � � � �� ���ᢥ 祭���
� � � � � ��⪠
���⮣� �� ����������� � � � ������ ��ଠ�� �
��
� � � � ��⪠
��� �⪨
�� ���� ������� � ���������� ������ ⥪�
�������� �� ����� ������������
��� �⪮�

41 42 43 44 45 46 47 48 49

�����������������������������������ͻ
CAppColor �$17�$1F�$1A�$31�$31�$31�$1E�$71�$00�

������������������������������������

������������������������������������
CAppBlackWhite �$07�$0F�$07�$70�$70�$70�$07�$70�$00�

������������������������������������

������������������������������������
CAppMonochrome �$07�$0F�$07�$70�$70�$70�$07�$70�$00�

�����������������������������������ͼ
��ଠ��� ����� � � � � � � � ��� ����⨢���
"������" � � � � � � � ������
������
"������" �� �������� � � � � � ������ �
�� ����
㬮�砭�� � � � � � ������
��� "������" ����
��� � � � ����������
��ଠ���
� � � ������
����饭��� "������" ������� � �������������
����
� "������"
����⨢��� ������ ������������
"������"

50 51 52 53 54 55 56
���������������������������ͻ
CAppColor �$1F�$2F�$1A�$20�$72�$31�$31�
����������������������������
����������������������������
CAppBlackWhite �$0F�$70�$0F�$07�$70�$70�$70�
����������������������������
����������������������������
CAppMonochrome �$07�$70�$07�$07�$70�$07�$07�
���������������������������ͼ
���筠� ���� ����� � � � � � � �� ��������
� � � � � �����
��
� � � � � ��� �⪮� ����
� � � � � �������
� �
��� ��������� ����� �� � � � ������ ���� ���
� � � ��� �⪨
� � � ���� ���� ���
� �
��५�� ���� ���� ��������� � ���������� ���� �
��५�� ������� ��������������� ���� ���
��
57 58 59 60 61 62 63
���������������������������ͻ
CAppColor �$30�$2F�$3E�$31�$13�$00�$00�
����������������������������
����������������������������
CAppBlackWhite �$07�$70�$0F�$07�$07�$00�$00�
����������������������������
����������������������������
CAppMonochrome �$07�$70�$0F�$07�$07�$00�$00�
���������������������������ͼ
����� ���� � ���� � � � � � ��� ��१�ࢨ�� ��
�� � � � � �
��⨢�� ���� ��������� � � � ������� ��१�ࢨ�� ��
�� � � �
��� �������� �� ��� � ����������� ��� ଠ�� � � �
�������⥫� ���� �� ����� �������