ALMTYPE

Top  Previous  Next

 

unit AlmType;

{ Térkép közös UNIT }

 

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms, StdCtrls, ExtCtrls, Dialogs, Printers;

 

Type

 

TRajzelemStream = array[1..4] of TMemoryStream;

TLreteg         = Array[0..255] of boolean;

TEltolas        = (elLeft,elRight,elUp,elDown);

TVisibleRajzelem= (vPont, vVonal, vFelirat, vJelkulcs, vKitolto, vTavolsag,

                 vPontszam, vMeretek, vKijeloltek, vCsakKijeloltek, vToroltek,

                 vCsakToroltek, vGrafikusAdatok);

TVisibleSet     = set of TVisibleRajzelem;

 

TAlakzatmod = (pKeres,pRajzol,pKijelol,pTorol,pAtemel);

TFeliratmod = (szSzovegkeres,szSzimpla,szEltolas,szVonalra,szSzogben,szNormal,

             szAtemel);

TTavmod     = (tmNormal,tmSzogben);

 

{mire keresünk a Keresesek rutinban?}

TKeresesMod = (kmNone, kmPont, kmVonal, kmFelirat, kmJelkulcs, kmHRSZ);

 

TRajzmodType = (

       rmNincs,

       rmPont,

       rmVonal,

       rmFelirat,

       rmJelkulcs,

       rmKitolto,

       rmNegyszog,

       rmNagyito,

       rmKicsinyito,

       rmAblak,

       rmCentrum,

       rmEllipszis,

       rmKoriv,

       rmSokszog,

       rmObj,

       rmObjectum,

       rmSzakasz,

       rmNagyit,

       rmKereknegyszog,

       rmInfo,

       rmPonttorol,

       rmVonaltorol,

       rmFelirattorol,

       rmJelkulcstorol,

       rmReaktiv,

       rmPontkijelol,

       rmVonalkijelol,

       rmFeliratkijelol,

       rmJelkulcskijelol,

       rmAblakkijelol,

       rmPoligonkijelol,

       rmKepterulet,

       rmTer,

       rmTermanual,

       rmTavmeres,

       rmHRSZker,

       rmForgatas,

       rmVetites,

       rmMetszes,

       rmIvmetszes,

       rmMeroleges,

       rmBemeres,

       rmKituzes,

       rmTajekozas,

       rmElometszes,

       rmHatrametszes,

       rmOldalmetszes,

       rmPolarispont,

       rmBeillesztett,

       rmTajekozott1,

       rmTajekozott2,

       rmSokszogvonal,

       rmHRSZ,

       rmTRKSQL,

       rmPontVonallal,

       rmPontAtrak,

       rmHelp,

       rmTransform,

       rmVonalAtemel,

       rmPontbeillesztes,

       rmTeglalap,

       rmVonalosztas,

       rmAblakNagyitas

       );

 

Type el = (bal,jobb,also,felso); kinnkod = set of el;

 

TPoint2D = record

  X, Y: double;

end;

TPoint3D = record

  X, Y, Z: double;

end;

TRect2D = record

  x1,y1,x2,y2 : double;

end;

Tegyenes = record

  x1,y1,x2,y2 : double;

end;

Tegyenesfgv = record

  a: double;  {egyenes iránytangense  }

  b: double;  {egyenes tengelymetszete}

end;

 

TKorfgv = record     {x2+y2+dx+ey+f=0}

  d,e,f: double;

end;

TTeglalap = record

  a,b,c,d : TPoint2d; {A négy csúcspont kooordinátája}

end;

 

TdsType = (Table,Query,SProc);

 

{ A kijelölt elemekkel végzendő műveletek }

Tjelolesmod= (jmNincs,    {nincs művelet}

            jmAll,      {Minden jelzőbit = 1}

            jmAllDel,   {Minden jelzőbit = 0}

            jmUndo,     {Kijelölés törlése = jelzo 7. bit = 0}

            jmTorles,   {törlésre jelölés = 0. bit = 1}

            jmReaktiv,  {Töröltek reaktiválása = 0. bit = 0}

            jmInvers,   {Jelölést ellentétesre vált = 7. bit = not 7. bit}

            jmJelDel,   {Kijelöltek törlése > 7. bit ha 1 másolás 0. bit-be}

            jmFilter,   {Filter SQL kijelolése = 4. bit = 1}

            jmDelFilter,{Filter SQL törlése    = 4. bit = 0}

            jmActReteg  {Aktuális réteg kijelölése}

            );

 

TMunkaterulet = record

irszam : string[4];

kozseg : string[20];

dir    : string[80];

terkep : string[80];

end;

 

{   jelzo : bitek:

        7.  kiválasztott (alakzat vagy group kijelöléseknél)

        6.  Uj alakzat (az utolsó mentés óta)

        5.  Grafikusan módosított

        4.  Filterben szereplő (homogén térképen szines terület)

        3.  Betranszformáláshoz kijelölve (részlet beillesztés alaptérképbe)

        2.  területszámitáshoz, objektumizáláshoz kijelölt

        1.  Lock = zárolt, nem módosítható!

        0.  törlésre jelölt rekord

}

 

TPontrecord = record           {Térkép pontok *.trk adatbázisa}

reteg  : byte;

No     : Longint;

x,y,z  : real;

pkod   : integer;            {-1 = Infópont, -2 = Jelkulcs}

info   : longint;            {Infokód v. Jelkulcskód}

obj    : word;               {Objektum kód}

jelzo  : byte;

end;

 

TVonalrecord = record           {Térkép vonalak *.lin adatbázisa}

reteg  : byte;

x1,y1,z1 : real;

x2,y2,z2 : real;

vastag : byte;               {Ha vastagság és vonaltipus = 0, akkor}

tipus  : word;               {a réteg alapértelmezése él}

obj1   : word;               {Objektum kód a vonal két oldalán}

obj2   : word;

jelzo  : byte;

end;

 

TSzovegrecord = record          {Térkép feliratok *.szv adatbázisa}

reteg  : byte;

x,y    : real;

kozsegkod : word;            {Jelenleg az irányítószám}

szoveg : string[20];

font   : byte;               {Windows font megjelölés}

szeles : byte;

stilus : byte;               {normál,vastag,dőlt, ...}

szog   : word;

obj    : word;               {Objektum kód}

jelzo  : byte;

end;

 

TJelkulcsRecord = record        {Térkép jelkulcsok *.jlk adatbázisa}

kod    : word;

reteg  : byte;

x,y    : real;

meret  : word;               {a méret szorzó 100-szorosa}

szog   : word;

obj    : word;               {Objektum kód}

jelzo  : byte;

end;

 

TKitoltorecord = record         {Térkép feliratok *.ktm adatbázisa}

kod    : word;               {kod=0, akkor a szin él, ha kod=1,akkor minta}

x,y    : real;

szin   : TColor;             {szin vagy kitöltő minta sorszáma}

end;

 

TRetegRecord = record           {Térkép rétegek *.rtg adatbázisa}

retegszam   : byte;

retegnev    : string[20];

pontszin    : TColor;

vonalszin   : TColor;

vonalvastag : integer;

vonalstylus : byte;

szovegszin  : TColor;

fontnev     : string[20];

fontmeret   : byte;

fontstylus  : byte;

vedett      : boolean;

end;

 

TFontrecord = record

fontkod  : byte;

fontnev  : string[20];

end;

 

{JELKULCS.JLK file:

HEADER : 1000 jelkulcs táblázata

DATA   : Jelkulcs adatok:

         pont : 1,x1,y1,x2,y2,szin,vastag;

         vonal: 2,x1,y1,x2,y2,szin,vastag;

         kor  : 3,x1,y1,x2,y2,szin,vastag;

         fest : 4,x1,y1,x2,y2,szin,vastag;

}

TJelkulcsHeader = record

jkkod  : longint;

jkcim  : longint;

jkdb   : byte;        {Jelkulcs rajzelemek száma}

jknev  : string[20];

end;

 

TJkRecord = record

kod    : word;

x1,y1  : integer;

x2,y2  : integer;

szin   : TColor;

vastag : byte;

end;

 

TBrushBitmap = record   {Kitöltő minta}

  Mintanev   : string[20];

  minta      : Array[0..7,0..7] of TColor;

end;

 

{------------ ITR adatrekordok ------------------}

 

{ *.PT file-ban}

ITRPontHeader = record

dummy  : array[1..18] of char;

end;

 

ITRPontRecord = record          {Hossza : 39}

azonosito : byte;

x,y,z     : Longint;

No        : Longint;

valami    : Longint;

pkod      : Word;

vonalszam : byte;

reteg     : byte;

reteg1    : byte;

a         : Longint;

b         : Longint;

dummy     : array[1..5] of char;

end;

 

{ *.el file-ban}

 

ITRVonalHeader = record

dummy  : array[1..18] of char;

end;

 

ITRVonalRecord = record         {Hossz = 44}

  azonosito: word;            {1=élő, 0=törölt vonal}

  vonal1   : word;            {előlről csatlakozó vonal sorszáma}

  valami1  : Longint;         { FF 00 }

  vonal2   : word;            {hátulról csatlakozó vonal sorszáma}

  valami2  : Longint;         { FF FF }

  y1       : Longint;

  x1       : Longint;

  y2       : Longint;

  x2       : Longint;

  reteg    : byte;

  reteg1   : byte;

  stylus   : Array[1..8] of byte;    { FF FF FF FF FF FF FF FF }

  sorveg   : Longint;                { 00 00 00 C0 }

end;

 

{ *.TX file-ban}

ITRTextHeader = record

dummy  : array[1..18] of char;

end;

 

ITRTextRecord = record     {rekord hossz = 53}

  azonosito : byte;

  y1        : Longint;

  x1        : Longint;

  reteg     : byte;

  szovtip   : byte;

  toll      : byte;

  dummi1    : Array[1..3] of char;

  szog      : word;

  dummi2    : Array[1..4] of char;

  text      : Array[1..11] of char;

  a         : Longint;

  b         : Longint;

  c1        : Longint;

  c2        : Longint;

  d         : byte;

  e         : Longint;

end;

 

{ *.si jelkulcsadatok }

ITRJelkulcsHeader = record

dummy  : array[1..18] of char;

end;

 

ITRJelkulcsRecord = record     {rekord hossz = 21}

azonosito : byte;

valami    : word;

y,x       : Longint;

toll      : byte;

a1        : byte;

reteg     : byte;

jkkod     : byte;

jkszog    : word;

dummy     : array[1..4] of char;

end;

 

{ *.lay Rétegparaméterek }

ITRRetegHeader = record

dummy  : array[1..18] of char;

end;

 

ITRRetegRecord = record    {rekord hossz = 31}

reteg       : byte;

retegnev    : Array[1..12] of char;

dummy       : array[1..18] of char;

end;

 

 

TPrinterParam = record

fejlec    : String;

peldany   : integer;

meretarany: longint;

lapx,lapy : integer;

paspx,paspy : real;   {Printer torzítás}

szines    : boolean;

vonalvastag:integer;

pBetumeret: real;     {Printer betűméret szorzó}

keretezes : boolean;  {Feliratok}

laphelyzet: TPrinterOrientation;

sablon    : byte;     {Sablon tipusa 0=Nincs sablon; 1..255 = sablon tipus}

ablak     : TRect;    {Térképablak}

end;

 

TPlotterParams = record

PlotterNev  : string[30];

PlotterHead : string[80];

PlotterEnd  : string[80];

Aspectx     : real;

Aspecty     : real;

end;

 

{ A nyitott ablakok adattömbje }

 

PMapConfig = ^TMapConfig;

TMapConfig = record

Demo     : boolean;        {Demó verzió = True}

Belepett : word;           {Ennyiszer lépett be a programba}

adatbazisjelszo: string[10];

Cld      : TForm;

nev      : string[30];     {Jogos felhasználó neve}

cim      : string[30];     {Jogos felhasználó címe}

globaldir: String[120];

localdir : String[120];

filenev  : String[120];

filetipus: String[3];

retegfile: string[120];

viewfile : string[120];

aktmunkater : integer;     {Aktuális munkaterület = ha -1 akkor nincs}

munkater : TMunkaterulet;  {Aktuális munkaterület}

kezelo   : word;

kepernyo : TRect;

alapszin : TColor;         {Térkép alapszine}

valtozott: boolean;

aktreteg : byte;

aktjelkulcs: word;

pontszin : TColor;

pontmeret: integer;

pontszam : longint;

vonalszam: longint;

szovegszam  :longint;

jelkulcsszam:longint;

kitoltoszam :longint;

objectszam  : longint;

kozepkereszt: boolean;     {Kép középkeresztje}

orkereszt   : boolean;

orkereszttav:longint;

orkeresztszin:TColor;

orkeresztStilus:byte;      {0..3 = rácsozat,pontrács,keresztek,szaggatott vonal}

rmod     : TRajzmodType;          {rajzmód}

nagyitas : real;

origox   : real;

origoy   : real;

minx     : real;

maxx     : real;

miny     : real;

maxy     : real;

sulypont : TPoint2D;       {A térképi elemek súlypontja térkép koordináták}

nkeret   : TRect;          {nagyító keret}

pontlatszik   : boolean;   {láthatóságok...}

vonallatszik  : boolean;

jelkulcslatszik:boolean;

szoveglatszik : boolean;

kitoltolatszik: boolean;

pontszamlatszik:boolean;

infolatszik   : boolean;

tavlatszik    : boolean;

kijelolesek   : boolean;  {Kijelölt elemek látszonak}

toroltek      : boolean;  {Törölt elemek látszonak}

csakkijeloltek: boolean;  {Kijelölt elemek látszonak}

csaktoroltek  : boolean;  {Törölt elemek látszonak}

aspx,aspy     : real;     {Képernyő torzitás}

tentativtures : real;     {rárántási távolság}

jelkulcsmeret : real;

pr            : TPrinterParam;

texteditor    : string[80];

TEXTkenyszer  : boolean;

FixText       : TFont;

printing      : boolean;           {True = nyomtatás folyamatban}

tavmod        : TTavmod;

Homogenrajz   : boolean;

PlotterParams : TPlotterParams;    {Plotter paraméterek}

end;

 

TPolygonRecord = record

PointsCount: longint;

Points     : Tpontrecord;

mentes     : boolean;

kesz       : boolean;

end;

 

Var demovar : boolean;

  TerkepUjrarajzolas: boolean;   {Térkép rajzolás folyamatban}

  prec: TPontrecord;

  vrec: TVonalrecord;

  szrec: TSzovegrecord;

  jrec: TJelkulcsRecord;

  rrec: TRetegrecord;

  frec: TFontrecord;

  oldTeglalap,teglalap: TTeglalap;

  vanpont,vanvonal,vanszoveg,vanjelkulcs: boolean;

  UndoPointers: array[1..4] of longint;

  {A rajzelem streameken mutatja, honnan tettünk le uj elemeket.

  Undo-kor innen a streamek végéig törölni kell}

 

  jelkHeader : TJelkulcsHeader;

  jelkData   : TJkRecord;

  PrinterParam : TPrinterParam;    {Printer beállitás paraméteret}

 

  aspX,aspY : real;

  kiugras   : boolean;

  Megjelenit: boolean;

 

Const rajzelemekstring: Array[1..4] of string[8] =

        ('Pont','Vonal','Felirat','Jelkulcs');

 

const

crCentrum    = 910;

crKicsinyito = 911;

crNagyito    = 912;

crKez        = 913;

crKereszt    = 914;

crKeret      = 915;

crEllipszis  = 916;

crNegyszog   = 917;

crTav        = 918;

crHelp       = 920;

 

implementation

end.