TDrawList
Razred TDrawList se uporablja za spreminjanje tematik. Spreminja se osnovne lastnosti tematike, samo listo tem, posamezno temo pa se ureja preko razreda TDrawItem.
Spreminja se lahko:
- trenutno tematiko v aplikaciji preko spremenljivke DrawList,
- referenco na shranjeno tematiko v izrisih, poročilih, dokumentu in maski preko lastnosti TPrintItem.DrawList, TRepItem.DrawList, TDocItem.DrawList oz. TFormItem.DrawList,
- trenutno tematiko v izrisih, poročilih, dokumentu in maski preko spremenljivke DrawList v OnPaint eventu,
- trenutno tematiko v navigacijskem oknu aplikacije preko lastnosti TNavigation.DrawList in spremenljivke Navigation,
- vse tematike shranjene v sistemu,
Vsebina
- 1 Urejanje tematike
- 2 Manipulacija tematik v tematiki
- 3 Skupinsko spreminjanje tem
- 4 Izvoz tematike
- 5 Opuščeno
- 6 Skupno za objekte
- 6.1 Name
- 6.2 Alias
- 6.3 Comment
- 6.4 ID
- 6.5 Parent
- 6.6 FullName
- 6.7 Creator
- 6.8 Created
- 6.9 Modifier
- 6.10 Modified
- 6.11 ViewAccess
- 6.12 EditAccess
- 6.13 UsedIn
- 6.14 IsFolder
- 6.15 IsObject
- 6.16 ObjectType
- 6.17 Edit
- 6.18 Store
- 6.19 Duplicate
- 6.20 SaveToNewObject
- 6.21 Clear
- 6.22 Delete
- 6.23 SaveToFile
- 6.24 LoadFromFile
- 6.25 SaveToSif
- 6.26 SaveToSifAppend
- 6.27 SaveToXml
Urejanje tematike
Count
Lastnost Count vrne število tem v tematiki.
| RO Property TDrawList.Count As Long | ||
| Result | Long | Število tem. |
Message ("Lastnosti tematike", "V tematiki je " + IntToStr (Drawlist.Count) + " tem.")Items
Lastnost Items vrne določeno temo.
| RO Property TDrawList.Items (Index As Long) As TDrawItem | ||
| Index | Long | Zaporedna številka teme. Prva tema ima številko 0. |
| Result | TDrawItem | Referenca na temo. |
Dim I As Long
For I = 0 To DrawList.Count - 1
DrawList.Items (I).Visible = false // Izključi vse teme iz izrisa
NextAdd
Metoda Add doda novo temo na konec tematike.
| Method TDrawList.Add As TDrawItem | ||
| Result | Optional TDrawItem | Vrne referenco na novo temo. |
Dim DI As TDrawItem
DI = DrawList.Add // Doda novo temo na konec tematike
DI.Type = dtText // Nastavi tip teme
DI.Layer = [Neka plast] // Določi plast teme
DI.Value(2) = DI.Layer.DataSets(0).Fields(0).FullName + '.AsString' // Določi polje izpisaInsert
Metoda Insert vrine novo temo na določeno mesto v tematiki.
| Method TDrawList.Insert (Index As Long) As TDrawItem | ||
| Index | Long | Zaporedna številka teme, pred katero bo nova tema vrinjena. Prva tema ima številko 0. |
| Result | Optional TDrawItem | Vrne referenco na novo temo. |
Dim DI As TDrawItem
DI = DrawList.Insert (2) // Doda novo temo na tretje mesto v tematiko
DI.Type = dtPolyLine // Nastavi tip teme
DI.Layer = [Neka plast] // Določi plast temeRemove
Metoda Remove izbriše določeno temo iz tematike.
| Method TDrawList.Remove (Index As Long) | ||
| Index | Long | Zaporedna številka teme, ki jo želimo odstraniti. Prva tema ima številko 0. |
DrawList.Remove (2) // Izbriše tretjo temo iz tematike
DrawList.Remove (DrawList.Count-1) // Izbriše zadnjo temo iz tematikeBeginUpdate
Metoda BeginUpdate prepreči osveževanje tematike med izvajanjem basica. Na koncu je treba obvezno poklicati metodo EndUpdate, ki bo osvežila tematiko. Glavni namen tega je, da se prepreči utripanje tematike ob večih spremembah in pa hitrost izvajanja.
| Method TDrawList.BeginUpdate |
DrawList.BeginUpdate
DrawList.Add
...
DrawList.EndUpdateEndUpdate
Metoda EndUpdate omogoči osveževanje tematike med izvajanjem basica. Na začetku je treba poklicati metodo BeginUpdate.
| Method TDrawList.EndUpdate |
Manipulacija tematik v tematiki
AddList
Metoda AddList doda v tematiko vse teme iz druge tematike.
| Method TDrawList.AddList (List As TDrawList) | ||
| List | TDrawList | Tematika, ki jo dodajamo. |
DrawList.AddList ([Neka Tematika]) // Doda tematiko na konecInsertList
Metoda InsertList vrine v tematiko vse teme iz druge tematike.
| Method TDrawList.InsertList (Index As Long, List As TDrawList) | ||
| Index | Long | Zaporedna številka teme, pred katero vrine tematiko. Prva tema ima številko 0. |
| List | TDrawList | Tematika, ki jo dodajamo. |
Drawlist.InsertList (0, [Neka Tematika]) // Vrine tematiko na začetekRemoveList
Metoda RemoveList odstrani vse teme, ki so bile dodane iz določene tematike z ukazom AddList ali InsertList.
| Method TDrawList.RemoveList (List As TDrawList) | ||
| List | TDrawList | Tematika, katere teme želimo odstraniti. |
DrawList.RemoveList ([Neka Tematika])IsInList
Lastnost IsInList ugotavlja, če je bila v tematiko dodana neka druga tematika z ukazom AddList ali InsertList.
| RO Property TDrawList.IsInList (List As TDrawList) As Boolean | ||
| List | TDrawList | Referenca na tematiko, ki je bila dodana. |
| Result | Boolean | True, če je bila tematika dodana, sicer False. |
If Not Drawlist.IsInList ([Neka Tematika]) Then // preveri če je lista v tematiki
Drawlist.AddList ([Neka Tematika]) // če je ni, jo doda
EndIfIndexOfList
Lastnost IndexOfList vrne index prve teme, ki je bila v tematiko dodana iz druge tematike z ukazom AddList ali InsertList.
| RO Property TDrawList.IndexOfList (List As TDrawList) As Long | ||
| List | TDrawList | Referenca na tematiko, ki je bila dodana. |
| Result | Long | Zaporedna številka prve teme, ki je bila dodana iz druge tematike. Prva tema ima številko 0. Če tematike ne najde, vrne -1. |
Dim I As Long
I = Drawlist.IsInList ([Neka Tematika 1]) // ugotovi lokacijo prve teme tematike 1
If I = -1 Then // če ni tematike 1
I = Drawlist.Count // bo dodal na konec
EndIf
Drawlist.InsertList (I, [Neka Tematika 2]) // vrine tematiko 2Skupinsko spreminjanje tem
Operation
Metoda Operation naenkrat spremeni lastnosti vseh tem določene plasti. Operacijo določajo Konstante.Draw List Operation Constants.
| Method TDrawList.Operation (L As TLayer, Operation As Long) | ||
| L | TLayer | Plast, za katero se izvede operacija. Če je Nil, so bo izvedla za vse plasti. |
| Operation | Long | Poljubna kombinacija constant. Operacije se lahko med seboj seštevajo. |
DrawList.Operation (Nil, dlDisplayOff + dlHintsOff + dlLegendOff) // ugasne vse teme in zapre vse informacije in legende
DrawList.Operation ([Neka plast], dlDisplayOn) // prižge določeno plast
Redraw
DrawList.Operation ([Neka plast], dlLayerOff) // briše vse teme določene plasti iz tematikeOperationAlias
Metoda OperationAlias naenkrat spremeni lastnosti vseh tem z določenim dodatnim imenom. Operacijo določajo Konstante.Draw List Operation Constants.
| Method TDrawList.OperationAlias (Alias As String, Operation As Long) | ||
| Alias | String | Dodatno ime teme. |
| Operation | Long | Poljubna kombinacija konstant. Operacije se lahko med seboj seštevajo. |
DrawList.OperationAlias ('DodatnoIme1', dlDisplayOn) // prižge vse teme z dodatnim imenom DodatnoIme1Izvoz tematike
SaveImage
Metoda SaveImage naredi sliko za vsebino določene tematike.
| Method TDrawList.SaveImage (FileName As String, Y1, X1, Y2, X2, PixelDimension As Float) | ||
| FileName | String | Ime datoteke kamor se slika shrani. Končnica določa format slike. |
| Y1 | Float | Koordinata levega roba okna. |
| X1 | Float | Koordinata spodnjega roba okna. |
| Y2 | Float | Koordinata desnega roba okna. |
| X2 | Float | Koordinata zgornjega roba okna. |
| PixelDimension | Float | Velikost točke v metrih. |
DrawList.SaveImage ('c:\temp\slika1.png', 420000, 28000, 535000, 137000, 100)DXFOut
Metoda DXFOut izvozi podatke vsebovane v določeni tematiki v DXF format.
| Method TDrawList.DXFOut (FileName, Dummy As String, Y1, X1, Y2, X2, Scale As Float) | ||
| FileName | String | Ime datoteke kamor se shrani. Končnica mora biti *.DXF. |
| Dummy | String | Opuščen parameter. |
| Y1 | Float | Koordinata levega roba okna. |
| X1 | Float | Koordinata spodnjega roba okna. |
| Y2 | Float | Koordinata desnega roba okna. |
| X2 | Float | Koordinata zgornjega roba okna. |
| Scale | Float | Merilo, pri katerem se izvaja izris v DXF. |
DrawList.DXFOut ('c:\temp\slika1.dxf', '', Left, Top, Right, Bottom, Scale)Po uvozu v Autocadu je priporočljivo zagnati ukaz REGEN, ker se šele potem pravilno upoštevajo tipi linij.
Kot ime plasti v Autocadu se uporabi dodatno ime teme, če je določeno. Če ni določeno, se uporabi ime teme, če pa tudi to ni določeno, se pa uporabi ime podatkovne plasti.
V DXF se izvažajo naslednji tipi tem, ostale pa se ignorirajo:
- Simbol
- Ni polnjenja pri simbolih.
- Besedilo
- Ni ozadja, okvira in sence.
- Ni omejitve na dolžino teksta.
- Linija
- Ni krogov in lokov
- Ni simbolov na tipih linij.
- Basic
Opuščeno
LayerOnOff
Metoda LayerOnOff je opuščena in se priporoča uporaba metode Operation.
| Method TDrawList.LayerOnOff (L As TLayer, Operation As Long) | ||
| L | TLayer | . |
| Operation | Long | . |
Recreate
Metoda Recreate ponovno generira tematiko. To se uporabi v primeru, ko po določeni spremembi iz basica ta ni vidna v tematiki. Uporabi se samo na tematiki aplikacije Spremenljivke.DrawList. Načeloma naj se ta metoda nebi uporabljala.
| Method TDrawList.Recreate |
DrawList.RecreateZoomToTiles
Metoda ZoomToTiles prilagodi merilo izrisa na optimalno vrednost za izris spletnih kart. To pomeni, da je en piksel na spletni karti enak enemu pikslu na ekranu. Uporabi se tema zadnje vidne spletne karte.
| Method TDrawList.ZoomToTiles |
Skupno za objekte
Lastnosti tematike se običajno nastavljajo v Urejevalnik tematike, možen pa je tudi dostop do vseh podatkov preko basica. Pri spreminjanju katerikolih podatkov objekta, morate za dokončno spremembo izvesti še Store ukaz.
Dim Dl as TDrawList
Dl = [Neka tematika]
Message ("Lastnosti tematike",
"Ime: " + Dl.Name + Line +
"Dodatna imena: " + Dl.Alias + Line +
"Komentar: " + Dl.Comment + Line +
"ID: $" + IntToHex (Dl.ID) + Line +
"Mapa: " + Dl.Parent.Name + Line +
"Naredil: " + Dl.Creator.Name + " Ob: " + DateTimeToStr (Dl.Created) + Line +
"Popravil: " + Dl.Modifier.Name + " Ob: " + DateTimeToStr (Dl.Modified) + Line +
"Pravica vpogleda: " + Dl.ViewAccess.Name + Line +
"Pravica urejanja: " + Dl.EditAccess.Name + Line +
"Cela pot: " + Dl.FullName
)Name
Lastnost Name določa osnovno ime objekta (opisno ime). Ker se ime lahko občasno spreminja, se sklicevanje na objekt z uporabo imena odsvetuje. Uporabljate rajši dodatno ime ali ID objekta.
| Property TDrawList.Name As String | ||
| Result | String | Ime objekta. |
Alias
Lastnost Alias določa dodatno ime objekta ali celo več dodatnih imen. Ta lastnost se načeloma uporablja za sklice na objekt namesto osnovnega imena objekta.
| Property TDrawList.Alias As String | ||
| Result | String | Dodatna imena. Če jih je več, morajo biti ločena s podpičjem. |
Comment
Lastnost Comment določa komentar k objektu.
| Property TDrawList.Comment As String | ||
| Result | String | Poljuben komentar. |
ID
Lastnost ID določa unikatni identifikator objekta, ki se samodejno kreira pri kreiranju objekta in se nikdar ne spremeni.
| RO Property TDrawList.ID As Long | ||
| Result | Long | Identifikator objekta. |
Parent
Lastnost Parent določa ime mape, v kateri se imenovani objekt nahaja.
| Property TDrawList.Parent As TFolder | ||
| Result | TFolder | Mapa objekta. |
FullName
Lastnost FullName vrne polno ime objekta, ki je sestavljeno iz imen vseh map nad objektom in imena objekta.
| RO Property TDrawList.FullName As String | ||
| Result | String | Vse mape in ime objekta. |
Creator
Lastnost Creator določa uporabnika, ki je objekt ustvaril.
| RO Property TDrawList.Creator As TUser | ||
| Result | TUser | Uporabnik. |
Created
Lastnost Created določa datum in čas nastanka objekta.
| RO Property TDrawList.Created As DateTime | ||
| Result | DateTime | Čas nastanka objekta. |
Modifier
Lastnost Modifier določa uporabnika, ki je objekt nazadnje spremenil.
| RO Property TDrawList.Modifier As TUser | ||
| Result | TUser | Uporabnik. |
Modified
Lastnost Modified določa datum in čas, ko je bil objekt nazadnje spremenjen.
| RO Property TDrawList.Modified As DateTime | ||
| Result | DateTime | Čas zadnje spremembe objekta. |
ViewAccess
Lastnost ViewAccess določa, katera skupina uporabnikov ima pravico uporabe objekta.
| Property TDrawList.ViewAccess As TUserGroup | ||
| Result | TUserGroup | Skupina uporabnikov. |
EditAccess
Lastnost EditAccess določa, katera skupina uporabnikov ima pravico spreminjanja objekta.
| Property TDrawList.EditAccess As TUserGroup | ||
| Result | TUserGroup | Skupina uporabnikov. |
UsedIn
Lastnost UsedIn določa, v katerih aplikacijah je določen objekt uporabljan. Če nastavimo vrednost UsedIn na "*", potem je objekt dosegljiv v vseh aplikacijah. Ta podatek se uporablja izključno za izvoz aplikacije v SIF.
| Property TDrawList.UsedIn As String | ||
| Result | String | Aplikacije, ki uporabljajo ta objekt. Če je navedenih več aplikacij, se le-te ločijo s podpičjem. |
IsFolder
Lastnost IsFolder določa, ali je dani objekt mapa ali kak drug objekt.
| RO Property TDrawList.IsFolder As Boolean | ||
| Result | Boolean | V danem primeru je vrednost vedno False. |
IsObject
Lastnost IsObject določa, ali je dani objekt mapa ali kak drug objekt.
| RO Property TDrawList.IsObject As Boolean | ||
| Result | Boolean | V danem primeru je vrednost vedno True. |
ObjectType
Lastnost ObjectType določa vrsto objekta. Vrsto določajo Konstante.Object_Types_Constants
| RO Property TDrawList.ObjectType As Long | ||
| Result | Long | V danem primeru je vrednost otDrawList. |
Edit
Metoda Edit odpre urejevalnik objekta.
| Method TDrawList.Edit |
[Neka tematika].EditStore
Metoda Store dejansko shrani spremembe objekta (izvedene z SDMS Basic ukazi).
| Method TDrawList.Store |
[Neka tematika].StoreDuplicate
Metoda Duplicate podvoji objekt. Ime podvojenega objekta je sestavljeno iz "Kopija " in imena originala, dodatno ime (Alias) pa je zbrisano. Objekt se kreira v isti mapi, kot je original.
| Method TDrawList.Duplicate (DuplicateData As Boolean) As TDrawList | ||
| DuplicateData | Boolean | Pri tematiki se ignorira. |
| Result | Optional TDrawList | Referenca na kreiran objekt. |
Dim DL As TDrawList
DL = [Neka tematika].Duplicate(False)
DL.Name = 'Novo ime'
DL.StoreSaveToNewObject
Metoda SaveToNewObject prikaže dialog za shranjevanje objekta.
| Method TDrawList.SaveToNewObject (Caption As String, Root As TFolder) As TDrawList | ||
| Caption | String | Napis na dialogu. |
| Root | TFolder | Izhodišče za izbiro lokacije shranjevanja. |
| Result | Optional TDrawList | Referenca na shranjeni objekt. |
DrawList.SaveToNewObject ('Shranjevanje tematike', root)Clear
Metoda Clear briše vse teme iz tematike.
| Method TDrawList.Clear |
Drawlist.BeginUpdate
Drawlist.Clear
Drawlist.AddList ([Neka tematika])
Drawlist.EndUpdate
RedrawDelete
Metoda Delete briše objekt iz sistema.
| Method TDrawList.Delete As Boolean | ||
| Result | Optional Boolean | Vrne True, če je bilo brisanje uspešno. |
[Neka tematika].DeleteSaveToFile
Metoda SaveToFile shrani objekt v binarni obliki v dano datoteko.
| Method TDrawList.SaveToFile (FileName As String) | ||
| FileName | String | Polno ime datoteke, v katero naj se objekt shrani. |
DrawList.SaveToFile ('c:\temp\Tematika.tmp')LoadFromFile
Metoda LoadFromFile naloži objekt iz datoteke v binarni obliki. Ta datoteka je predhodno nastala z ukazom SaveToFile.
| Method TDrawList.LoadFromFile (FileName As String) As Boolean | ||
| FileName | String | Polno ime datoteke, iz katere naj se objekt naloži. |
| Result | Optional Boolean | Vrne True, če je bil objekt uspešno naložen. |
DrawList.LoadFromFile ('c:\temp\Tematika.tmp')SaveToSif
Metoda SaveToSif shrani objekt v SIF obliki v datoteko.
| Method TDrawList.SaveToSif (FileName As String) | ||
| FileName | String | Polno ime datoteke, v katero naj se objekt shrani. |
SaveToSifAppend
Metoda SaveToSifAppend doda objekt v obstoječo SIF datoteko.
| Method TDrawList.SaveToSifAppend (FileName As String) | ||
| FileName | String | Polno ime datoteke, v katero naj se objekt doda. |
SaveToXml
Metoda SaveToXml shrani objekt v XML obliki v datoteko.
| Method TDrawList.SaveToXml (FileName As String) | ||
| FileName | String | Polno ime datoteke, v katero naj se objekt shrani. |