All these Units are packed into 1 zip File
TYPE EventRecord = RECORD
Art,
{ Eventart
}
Taste,KBFlags,
{ gedrckte Taste, Status
}
Button,Spalte,Zeile,
{ MausStatus und Position
}
Option :Word;
{ Options-ID bei Menauswahl }
Ticks :LongInt;
{ Ticks zum Zeitpunkt des Ereig. }
DClick :Boolean;
{ Doppelklick-Flag fr linke Taste }
END;
VAR e : EventRecord;
{------ globale Tastaturcode-Konstanten -------------------------------------}
CONST
{ Fkt.tasten
mit Shift: mit Ctrl:
mit Alt: }
ce_F1 =$100+ 59; ces_F1 =$100+ 84; cec_F1
=$100+ 94; cea_F1 =$100+104;
ce_F2 =$100+ 60; ces_F2 =$100+ 85; cec_F2
=$100+ 95; cea_F2 =$100+105;
ce_F3 =$100+ 61; ces_F3 =$100+ 86; cec_F3
=$100+ 96; cea_F3 =$100+106;
ce_F4 =$100+ 62; ces_F4 =$100+ 87; cec_F4
=$100+ 97; cea_F4 =$100+107;
ce_F5 =$100+ 63; ces_F5 =$100+ 88; cec_F5
=$100+ 98; cea_F5 =$100+108;
ce_F6 =$100+ 64; ces_F6 =$100+ 89; cec_F6
=$100+ 99; cea_F6 =$100+109;
ce_F7 =$100+ 65; ces_F7 =$100+ 90; cec_F7
=$100+100; cea_F7 =$100+110;
ce_F8 =$100+ 66; ces_F8 =$100+ 91; cec_F8
=$100+101; cea_F8 =$100+111;
ce_F9 =$100+ 67; ces_F9 =$100+ 92; cec_F9
=$100+102; cea_F9 =$100+112;
ce_F10=$100+ 68; ces_F10=$100+ 93; cec_F10=$100+103;
cea_F10=$100+113;
{ Steuerungs- und Editiertasten }
ce_Tab=
9; ces_Tab=$100+ 15;
ce_ESC=
27;
ce_Ret=
13;
cec_Ret= 10;
ce_Del=Byte(^G);
ce_Ins=Byte(^V);
ce_BSp=Byte(^H);
ce_CDn=Byte(^X);
ce_CUp=Byte(^E);
ce_CLe=Byte(^S);
cec_CLe=Byte(^A);
ce_CRi=Byte(^D);
cec_CRi=Byte(^F);
ce_PDn=Byte(^C);
cec_PDn=$100+118;
ce_PUp=Byte(^R);
cec_PUp=$100+132;
ce_Hom=$100+ 71;
cec_Hom=$100+119;
ce_End=$100+ 79;
cec_End=$100+117;
{ Buchstaben mit Alt }
cea_A =$100+ 30; cea_B =$100+ 48; cea_C
=$100+ 46; cea_D =$100+ 32;
cea_E =$100+ 18; cea_F =$100+ 33; cea_G
=$100+ 34; cea_H =$100+ 35;
cea_I =$100+ 23; cea_J =$100+ 36; cea_K
=$100+ 37; cea_L =$100+ 38;
cea_M =$100+ 50; cea_N =$100+ 49; cea_O
=$100+ 24; cea_P =$100+ 25;
cea_Q =$100+ 16; cea_R =$100+ 19; cea_S
=$100+ 31; cea_T =$100+ 20;
cea_U =$100+ 22; cea_V =$100+ 47; cea_W
=$100+ 17; cea_X =$100+ 45;
cea_Y =$100+ 21; cea_Z =$100+ 44;
PROCEDURE HotKScan;
PROCEDURE InitBox (KHandle:Word;
xp,yp,xw,yw:Byte);
PROCEDURE InitKey (KHandle,KTCode:Word);
PROCEDURE InitKeyBox (KHandle,KTCode:Word; xp,yp,xw,yw:Byte);
PROCEDURE HotKDelete (n:Integer);
PROCEDURE HotKDelHandle (KHandle:Word);
IMPLEMENTATION
{----------------------------------------------------------------------------}
FUNCTION DINCompare (Str1,Str2:String; Position:Byte; IMode:Boolean):Integer;
ASSEMBLER;
{ - vergleicht die Strings (ab der angegeb. Position) nach DIN-Regeln.
}
{
}
{ Umlaute werden eingeordnet
(ä wird z.B wie a behandelt).
}
{ Unterscheiden sich die
Strings nur durch Umlaute, dann wird der }
{ String mit dem Umlaut als
"größer" betrachtet.
}
{ Das "ß" wird als
"ss" behandelt.
}
{ Achtung! Die virtuelle
Lnge darf dabei nicht über 255 ansteigen! }
{
}
{ Falls "IMode" = True wird zwischen
Klein- und Großschreibung nicht }
{ unterschieden.
}
{ Das Funktionsergebnis ist bei
Gleichheit 0, -1 wenn Str1 < Str2 }
{ und 1 wenn Str1 > Str2.
{----------------------------------------------------------------------------}