Lampiran b (coding)

11

Click here to load reader

Transcript of Lampiran b (coding)

Page 1: Lampiran b (coding)

Form MainPrivate Sub Chem_Click()

On Error Resume Next

CrystalReport1.DataFiles(0) = App.path & "\Database.mdb"

CrystalReport1.WindowTitle = "Chemical Analyses"

CrystalReport1.ReportFileName = App.path & "\Rpt\Chemanal.rpt"

CrystalReport1.ReplaceSelectionFormula ""

CrystalReport1.Action = 1

'With CrystalReport1

'.DataFiles(0) = App.path & "\Database.mdb"

'.DiscardSavedData = True

'.WindowState = crptMaximized

'.SelectionFormula = ""

'.Action = 1

'End With

End Sub

Private Sub Form_Load()

Dim dc As New DataConnection

dc.Database = (App.path & "\Nangapinoh")

If dc.Connect Then

Dim L1 As MapObjects2.MapLayer

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("kalimantan")

L1.Symbol.Color = moCyan

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("lembar_nangapinoh")

L1.Symbol.Color = moGreen

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("sungai")

L1.Symbol.Color = moRed

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("titik_pengamatan")

L1.Symbol.Color = moBlack

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("analisis_kimia")

L1.Symbol.Color = moMagenta

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("fossil_determination")

L1.Symbol.Color = moBrown

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("K-Ar_Geochronology")

L1.Symbol.Color = moBlue

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("pan-concentrates")

L1.Symbol.Color = moYellow

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("sampel_batuan")

L1.Symbol.Color = moGray

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("stream-sediments")

L1.Symbol.Color = moPurple

mapDisp.Layers.Add L1

Set L1 = New MapObjects2.MapLayer

L1.GeoDataset = dc.FindGeoDataset("thin_section")

L1.Symbol.Color = moOrange

mapDisp.Layers.Add L1

Else

MsgBox "direktori peta tidak ditemukan"

End If

Dim i As Integer

frmIntro.Show vbModal

Page 2: Lampiran b (coding)

'Me.Top = 0

'Me.Left = 0

barGraphics.Visible = False

strMapUnits = "Tidak Diketahui"

Dim tl As MapObjects2.TrackingLayer

Set tl = mapDisp.TrackingLayer

With tl

.SymbolCount = 3

.Symbol(0).SymbolType = moPointSymbol

.Symbol(0).Style = moTriangleMarker

.Symbol(0).Color = moRed

.Symbol(0).Size = 4

.Symbol(1).SymbolType = moLineSymbol

.Symbol(1).Style = moSolidLine

.Symbol(1).Color = moRed

.Symbol(1).Size = 2

.Symbol(2).SymbolType = moFillSymbol

.Symbol(2).Style = moTransparentFill

.Symbol(2).OutlineColor = moRed

.Symbol(2).Size = 2

End With

picMapTip.ZOrder 0

lblMapTip.ZOrder 0

picSplitter.BackColor = frmMain.BackColor

legMapDisp.ZOrder 0

mapDisp.ZOrder

m_mapTip.Initialize mapDisp, tmrMapTip, picMapTip, lblMapTip

Call DataLoader

'Link legend to the Map control

legMapDisp.setMapSource mapDisp

legMapDisp.LoadLegend True

legMapDisp.ShowAllLegend

legMapDisp.Active(0) = True

BarState = ""

lblCalendar = Format(Date, "D MMMM YYYY")

End Sub

Private Sub Form_Resize()

'This procedure resizes the map when the form is resized.

Dim border As Double, sideBorder As Double

Dim topBorder As Double, statusbarHeight As Double

border = 30

topBorder = 480

sideBorder = mapDisp.Left

statusbarHeight = 400

mapDisp.Top = topBorder

mapDisp.Left = sideBorder

If ScaleHeight > topBorder + border + statusbarHeight Then

mapDisp.Height = ScaleHeight - topBorder - border - statusbarHeight

picSplitter.Height = mapDisp.Height

End If

If ScaleWidth > (border * 2) + sideBorder Then

mapDisp.Width = ScaleWidth - (border * 2) - sideBorder

End If

'ngatur ukuran legenda

'legMapDisp.Height = mapDisp.Height

Dim lPanelLeft As Long, lPanelTop As Long

lPanelTop = sbrStatus.Top + 60

lPanelLeft = sbrStatus.Panels(3).Left

chkTipLayer.Move lPanelLeft + 60, lPanelTop + 30

cboTipField.Move lPanelLeft + sbrStatus.Panels(3).Width - cboTipField.Width - 30, lPanelTop

cboTipLayer.Move cboTipField.Left - cboTipLayer.Width - 30, lPanelTop

End Sub

Private Sub Form_Unload(Cancel As Integer)

SDECon.Disconnect

End

End Sub

Private Sub barDisplay_ButtonClick(ByVal Button As MSComctlLib.Button)

Dim bKey As String

bKey = Button.Key

Call doTask(bKey)

BarState = bKey

End Sub

Page 3: Lampiran b (coding)

Public Sub doTask(buttonKey As String)

If frmIdentify.Visible Then

Unload frmIdentify

End If

If mapDisp.Layers.Count > 0 And legMapDisp.getActiveLayer > -1 Then

Set g_ActiveLayer = mapDisp.Layers(legMapDisp.getActiveLayer)

Else

Set g_ActiveLayer = Nothing

End If

Select Case buttonKey

Case "Print"

frmPrint.Show

frmPrint.ZOrder 0

Case "Map Properties"

frmMapProperties.Show

frmMapProperties.ZOrder 0

Case "Find"

frmFind.Show

frmFind.ZOrder 0

If g_ActiveLayer Is Nothing Then

MsgBox "Tidak ada layer yang aktif.", vbCritical

Exit Sub

End If

'If InStr(g_ActiveLayer.Tag, "[SHAPEFIL") = 0 Then

'MsgBox "Layer aktif bukanlah shapefile.", vbCritical

'Exit Sub

'End If

Case "Full Extent"

mapDisp.Extent = mapDisp.FullExtent

Case "Layer Extent"

If g_ActiveLayer Is Nothing Then

MsgBox "Tidak ada layer yang aktif.", vbCritical

Exit Sub

End If

mapDisp.Extent = g_ActiveLayer.Extent

Case "Graphics"

barGraphics.Visible = True

barGraphics.ZOrder 0

barGraphics.Refresh

mapDisp.MousePointer = moCross

Case "Zoom In"

If barGraphics.Visible = True Then barGraphics.Visible = False

mapDisp.MousePointer = moZoomIn

Case "Zoom Out"

If barGraphics.Visible = True Then barGraphics.Visible = False

mapDisp.MousePointer = moZoomOut

Case "Pan"

If barGraphics.Visible = True Then barGraphics.Visible = False

mapDisp.MousePointer = moPan

Case "Identify"

If barGraphics.Visible = True Then barGraphics.Visible = False

mapDisp.MousePointer = moIdentify

Case "Hitung Luas"

If barGraphics.Visible = True Then barGraphics.Visible = False

mapDisp.MousePointer = moCross

Dim Pl As MapObjects2.Polygon

Set Pl = mapDisp.TrackPolygon

mapDisp.TrackingLayer.AddEvent Pl, 1

MsgBox "Luas area = " & Pl.Area * 2.5 * 2.5 & " Km2"

mapDisp.TrackingLayer.ClearEvents

Case "Hitung Jarak"

If barGraphics.Visible = True Then barGraphics.Visible = False

mapDisp.MousePointer = moCross

Dim Ln As MapObjects2.Line

Set Ln = mapDisp.TrackLine

mapDisp.TrackingLayer.AddEvent Ln, 0

MsgBox "Panjang jarak = " & Ln.Length * 2.5 & " Km"

mapDisp.TrackingLayer.ClearEvents

Case "Export Peta"

mapDisp.ExportMap moExportEMF, App.path & "\peta.emf", 1

legMapDisp.ExportToBmp App.path & "\legenda.bmp"

Page 4: Lampiran b (coding)

Case "About"

Dim datax As String

Dim szOtherStuffx As String

Dim szOtherStuffy As String

szOtherStuffx = "20030110 - nawaydiW nasrI"

szOtherStuffy = "honipagnaN GIS - rihkA saguT"

datax = StrReverse(szOtherStuffy) & Chr(13) & StrReverse(szOtherStuffx)

ShellAbout Me.hWnd, App.Title, datax, ByVal 0&

End Select

End Sub

Private Sub Fossils_Click()

On Error Resume Next

CrystalReport1.DataFiles(0) = App.path & "\Database.mdb"

CrystalReport1.WindowTitle = "Fossil Determinations"

CrystalReport1.ReportFileName = App.path & "\Rpt\Fossdet.rpt"

CrystalReport1.ReplaceSelectionFormula ""

CrystalReport1.Action = 1

End Sub

Private Sub Geochronology_Click()

On Error Resume Next

CrystalReport1.DataFiles(0) = App.path & "\Database.mdb"

CrystalReport1.WindowTitle = "K-Ar Geochronology"

CrystalReport1.ReportFileName = App.path & "\Rpt\Kargeo.rpt"

CrystalReport1.ReplaceSelectionFormula ""

CrystalReport1.Action = 1

End Sub

Private Sub Pan_Click()

On Error Resume Next

CrystalReport1.DataFiles(0) = App.path & "\Database.mdb"

CrystalReport1.WindowTitle = "Pan-Concentrates"

CrystalReport1.ReportFileName = App.path & "\Rpt\Pan.rpt"

CrystalReport1.ReplaceSelectionFormula ""

CrystalReport1.Action = 1

End Sub

Private Sub Stream_Click()

On Error Resume Next

CrystalReport1.DataFiles(0) = App.path & "\Database.mdb"

CrystalReport1.WindowTitle = "Stream-Sedimets"

CrystalReport1.ReportFileName = App.path & "\Rpt\Stream.rpt"

CrystalReport1.ReplaceSelectionFormula ""

CrystalReport1.Action = 1

End Sub

Private Sub legMapDisp_LayerDblClick(Index As Integer)

Set g_ActiveLayer = mapDisp.Layers(Index)

If g_ActiveLayer.LayerType = moImageLayer Then

MsgBox "Sorry, you cannot set properties for an image layer." & _

vbCrLf & "Try setting properties for a layer with vector data."

Exit Sub

End If

frmLayerSymbol.Show vbModal

End Sub

Private Sub mnuEdit_Find_Click()

End Sub

Private Sub mnuEdit_Peta_Click()

'Shell untuk manggil executable---vbNormalFocus untuk mokusin prog yg dipanggil

Shell "C:\ESRI\AV_GIS30\ARCVIEW\BIN32\arcview.exe D:\Irsan_Punya\Tugas_Akhir_(My_1st_Masterpiece)\Aplikasi\SIG_Nangapinoh\nangapinoh.apr", vbNormalFocus

End Sub

Private Sub mnuFile_Export_Click()

Call doTask("Export Peta")

End Sub

Private Sub mnuHelp_Petunjuk_Click()

Shell "Notepad D:\Irsan_Punya\Tugas_Akhir_(My_1st_Masterpiece)\Aplikasi\SIG_Nangapinoh\Help.txt", vbNormalFocus

End Sub

Private Sub mnuSearch_Peta_Click()

Call doTask("Find")

End Sub

Private Sub mnuTools_HitJarak_Click()

barDisplay.Buttons("Jarak").Value = 1

Call doTask("Hitung Jarak")

End Sub

Private Sub mnuTools_HitLuas_Click()

Page 5: Lampiran b (coding)

barDisplay.Buttons("Luas").Value = 1

Call doTask("Hitung Luas")

Private Sub picSplitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

picSplitter.ZOrder 0

picSplitter.BackColor = 8421504 'dark-gray

picSplitter.Refresh

End Sub

Private Sub picSplitter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

picSplitter.Left = picSplitter.Left + X - 50

If picSplitter.Left > MIN_LEGEND_WIDTH Then

picSplitter.Refresh

frmMain.Refresh

Else

picSplitter.Left = MIN_LEGEND_WIDTH

picSplitter_MouseUp Button, Shift, X, Y

End If

End If

End Sub

Private Sub picSplitter_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

picSplitter.BackColor = frmMain.BackColor

legMapDisp.Width = legMapDisp.Left + picSplitter.Left

mapDisp.Left = picSplitter.Left + picSplitter.Width

mapDisp.Width = frmMain.Width - legMapDisp.Width - picSplitter.Width - 180

picSplitter.ZOrder 1

End Sub

Private Sub legMapDisp_AfterSetLayerVisible(Index As Integer, isVisible As Boolean)

mapDisp.Refresh

End Sub

Private Sub mapDisp_AfterTrackingLayerDraw(ByVal hDC As StdOle.OLE_HANDLE)

Dim i As Long

If collGtextStrings.Count > 0 Then

For i = 1 To collGtextStrings.Count

mapDisp.DrawText collGtextStrings(i), collGtextPoints(i), symGtext

Next

End If

Select Case BarState

Case "Graphics"

mapDisp.MousePointer = moCross

Case "Spatial Select"

mapDisp.MousePointer = moArrow

Case "Zoom In"

mapDisp.MousePointer = moZoomIn

Case "Zoom Out"

mapDisp.MousePointer = moZoomOut

Case "Pan"

mapDisp.MousePointer = moPan

Case "Identify"

mapDisp.MousePointer = moIdentify

Case "Jarak"

mapDisp.MousePointer = moCross

Case "Luas"

mapDisp.MousePointer = moCross

Case Else

mapDisp.MousePointer = moDefault

End Select

End Sub

Private Sub mapdisp_BeforeLayerDraw(ByVal Index As Integer, ByVal hDC As StdOle.OLE_HANDLE)

mapDisp.MousePointer = moHourglass

If Index = mapDisp.Layers.Count - 1 Then

updateScale

End If

End Sub

Private Sub mapDisp_DragFiles(ByVal fileNames As Object, ByVal X As Single, ByVal Y As Single, ByVal state As Integer, dropValid As Boolean)

If fileNames.Count > 0 Then

dropValid = True

End If

End Sub

Private Sub mapDisp_DropFiles(ByVal fileNames As Object, ByVal X As Single, ByVal Y As Single)

Page 6: Lampiran b (coding)

Dim dcx As New MapObjects2.DataConnection

Dim shpfile As Variant

Dim i As Integer

Dim ml As MapObjects2.MapLayer

shpfile = (Dir(fileNames.Item(0), vbDirectory))

shpfile = CStr(Left(shpfile, Len(shpfile) - 4))

dcx.Database = Left(fileNames.Item(0), Len(fileNames.Item(0)) - Len(shpfile) - 5)

If dcx.Connect Then

For i = 0 To fileNames.Count - 1

Set ml = New MapObjects2.MapLayer

shpfile = Dir(fileNames.Item(i), vbDirectory)

shpfile = CStr(Left(shpfile, Len(shpfile) - 4))

Set ml.GeoDataset = dcx.FindGeoDataset(shpfile)

mapDisp.Layers.Add ml

legMapDisp.LoadLegend

Next i

Dim ptcoll As New Collection

Dim linecoll As New Collection

Dim polycoll As New Collection

Dim imagecoll As New Collection

For i = 0 To mapDisp.Layers.Count - 1

If mapDisp.Layers(i).LayerType = moImageLayer Then

imagecoll.Add mapDisp.Layers(i)

ElseIf mapDisp.Layers(i).LayerType = moMapLayer Then

Select Case mapDisp.Layers(i).shapeType

Case moShapeTypePoint

ptcoll.Add mapDisp.Layers(i)

Case moShapeTypeLine

linecoll.Add mapDisp.Layers(i)

Case moShapeTypePolygon

polycoll.Add mapDisp.Layers(i)

End Select

End If

Next i

mapDisp.Layers.Clear

Dim p As MapObjects2.MapLayer

For Each p In polycoll

mapDisp.Layers.Add p

Next p

Dim l As MapObjects2.MapLayer

For Each l In linecoll

mapDisp.Layers.Add l

Next l

For Each p In ptcoll

mapDisp.Layers.Add p

Next p

Dim im As MapObjects2.ImageLayer

For Each im In imagecoll

mapDisp.Layers.Add im

Next im

End If

mapDisp.Extent = mapDisp.FullExtent

mapDisp.Refresh

End Sub

Private Sub mapDisp_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim curRectangle As Rectangle

If barDisplay.Buttons.Item("Zoom In").Value = 1 Then

Set curRectangle = mapDisp.TrackRectangle

Set mapDisp.Extent = curRectangle

ElseIf barDisplay.Buttons("Zoom Out").Value = 1 Then

Dim Loc As New Point

Set Loc = mapDisp.ToMapPoint(X, Y)

Dim MapWidth As Double, MapHeight As Double

Set curRectangle = mapDisp.Extent

MapWidth = mapDisp.Extent.Width

MapHeight = mapDisp.Extent.Height

curRectangle.Right = Loc.X + MapWidth

curRectangle.Left = Loc.X - MapWidth

curRectangle.Top = Loc.Y + MapHeight

curRectangle.Bottom = Loc.Y - MapHeight

Set mapDisp.Extent = curRectangle

ElseIf barDisplay.Buttons("Pan").Value = 1 Then

mapDisp.Pan

ElseIf barDisplay.Buttons("Identify").Value = 1 Then

Call frmIdentify.Identify(X, Y)

Page 7: Lampiran b (coding)

frmIdentify.ZOrder 0

ElseIf barDisplay.Buttons("Jarak").Value = 1 Then

Dim Ln As MapObjects2.Line

Set Ln = mapDisp.TrackLine

mapDisp.TrackingLayer.AddEvent Ln, 0

MsgBox "Panjang jarak =" & Ln.Length * 25 & " Km"

mapDisp.TrackingLayer.ClearEvents

ElseIf barDisplay.Buttons("Luas").Value = 1 Then

Dim Pl As MapObjects2.Polygon

Set Pl = mapDisp.TrackPolygon

mapDisp.TrackingLayer.AddEvent Pl, 1

MsgBox "Luas area ini=" & Pl.Area * 25 * 25 & " Km2"

mapDisp.TrackingLayer.ClearEvents

If barGraphics.Visible Then

Dim tl As MapObjects2.TrackingLayer

Set tl = mapDisp.TrackingLayer

tl.SymbolCount = 3

mapDisp.TrackingLayer.Refresh True

End If

End If

End Sub

Private Sub mapDisp_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim p As MapObjects2.Point

Set p = mapDisp.ToMapPoint(X, Y)

sbrStatus.Panels(2).text = "Long:" & p.X & " Lat:" & p.Y If chkTipLayer.Value = 1 And cboTipLayer.ListCount > 0 Then

m_mapTip.MouseMove X, Y

End If

End Sub

Private Sub mnuClearGraphics_Click()

mapDisp.TrackingLayer.ClearEvents

Set collGtextStrings = New VBA.Collection

Set collGtextPoints = New VBA.Collection

mapDisp.TrackingLayer.Refresh True

End Sub

Private Sub mnuTools_MapProperties_Click()

Call doTask("Map Properties")

End Sub

Private Sub mnuFile_PrintPeta_Click()

Call doTask("Print")

End Sub

Private Sub mnuHelp_About_Click()

Call doTask("About")

End Sub

Private Sub mnuHelp_Summary_Click()

Call doTask("Summary")

End Sub

Private Sub mnuTools_FullExtent_Click()

Call doTask("Full Extent")

End Sub

Private Sub mnuTools_Identify_Click()

barDisplay.Buttons("Identify").Value = 1

Call doTask("Identify")

End Sub

Private Sub mnuTools_Pan_Click()

barDisplay.Buttons("Pan").Value = 1

Call doTask("Pan")

End Sub

Private Sub mnuTools_ZoomIn_Click()

barDisplay.Buttons("Zoom In").Value = 1

Call doTask("Zoom In")

End Sub

Private Sub mnuTools_ZoomOut_Click()

barDisplay.Buttons("Zoom Out").Value = 1

Call doTask("Zoom Out")

End Sub

Private Sub mnuAddLayer_Click()

Call AddFile

If chkTipLayer.Value = 1 Then refreshMapTips

End Sub

Private Sub mnuLegendEditor_Click()

Dim Index As Integer

Index = legMapDisp.getActiveLayer

If Index = -1 Then

Page 8: Lampiran b (coding)

MsgBox "Tidak ada layer yang aktif.", vbExclamation, "Warning"

Exit Sub

End If

Set g_ActiveLayer = mapDisp.Layers(Index)

If mapDisp.Layers(Index).LayerType = moImageLayer Then

MsgBox "Sorry, you cannot set properties for an image layer.", _

vbCritical, "Stop"

Exit Sub

End If

frmLayerSymbol.Show vbModal

End Sub

Private Sub mnuRemoveAllLayers_Click()

mapDisp.Layers.Clear

Call updateScale

legMapDisp.LoadLegend

frmMain.Refresh

If frmMain.chkTipLayer.Value = 1 Then refreshMapTips

End Sub

Private Sub mnuRemoveLayer_Click()

Dim Index As Long

Index = legMapDisp.getActiveLayer

If Index <> -1 Then

mapDisp.Layers.Remove Index

legMapDisp.LoadLegend 'Refresh legend

Else

MsgBox "Tidak ada layer yang aktif.", vbExclamation, "Peringatan"

Exit Sub

End If

If frmMain.chkTipLayer.Value = 1 Then refreshMapTips

End Sub

Private Sub Rock_Click()

On Error Resume Next

CrystalReport1.DataFiles(0) = App.path & "\Database.mdb"

CrystalReport1.WindowTitle = "Rock Samples"

CrystalReport1.ReportFileName = App.path & "\Rpt\Rocksamp.rpt"

CrystalReport1.ReplaceSelectionFormula ""

CrystalReport1.Action = 1

End Sub

Private Sub Thin_Click()

On Error Resume Next

CrystalReport1.DataFiles(0) = App.path & "\Database.mdb"

CrystalReport1.WindowTitle = "Thin Section"

CrystalReport1.ReportFileName = App.path & "\Rpt\Thinsect.rpt"

CrystalReport1.ReplaceSelectionFormula ""

CrystalReport1.Action = 1

End Sub

Private Sub addShapeFile(basepath As String, shpfile As String)

Dim dCon As New DataConnection

Dim gSet As GeoDataset

Dim strShapefileType As String

dCon.Database = basepath

If dCon.Connect Then

shpfile = GetFirstToken(shpfile, ".")

Set gSet = dCon.FindGeoDataset(shpfile)

If gSet Is Nothing Then

MsgBox "Error opening shapefile " & shpfile, vbCritical

If mapDisp.Layers.Count = 0 Then

sbrStatus.Panels(1).text = "Tidak Ada Skala"

Exit Sub

End If

If strMapUnits = "Unknown" Then

sbrStatus.Panels(1) = "Tidak Ada Satuan Peta"

Exit Sub

End If

Select Case strMapUnits

Case "Decimal Degrees": convFactor = INCH2DEGREES

Page 9: Lampiran b (coding)

Case "Meters": convFactor = INCH2METERS

Case "Feet": convFactor = INCH2FEET

End Select

mapScreenWidth = mapDisp.Width / 1440

mapExtentWidth = mapDisp.Extent.Width * convFactor

mapScale = Int(mapExtentWidth / mapScreenWidth)

sbrStatus.Panels(1).text = "SKALA 1 : " & Format(mapScale, "#,000")

End Sub

Form LoginPrivate Sub cmdOK_Click()

Dim rc As New ADODB.Recordset

If Cmb1.text = "" Then

MsgBox "Jabatan Isi Terlebih Dahulu", vbInformation, "Pesan"

ElseIf Text2.text = "" And UCase(Cmb1) = "ADMIN" Then

MsgBox "Password Isi Terlebih Dahulu", vbInformation, "Pesan"

Else

If UCase(Cmb1) = "ADMIN" Then

rc.Open "select * from usher where jabatan='" & Cmb1 & "'and password='" & Text2 & "'", db

If rc.EOF = False Then

Unload Me

frmMain.Show

'frmMain.mnuFile.Enabled = False

Else

MsgBox "Password Anda Salah!", vbCritical, "Peringatan!"

Cmb1 = ""

Text2 = ""

Cmb1.SetFocus

End If

Else

Unload Me

frmMain.Show

frmMain.mnuInput.Enabled = False

frmMain.mnuEdit.Enabled = False

frmMain.mnuTools_User.Enabled = False

frmMain.mnuSearch_Data.Enabled = False

End If

End If

End Sub

Private Sub Form_Load()

Dim topCorner As Integer

Dim leftCorner As Integer

Dim i As Integer

If frmIntro.WindowState <> 0 Then Exit Sub

picMO.Picture = LoadPicture(App.path & "\bitmaps\logo.bmp")

Cmb1.AddItem "admin"

Cmb1.AddItem "user"

Text2.PasswordChar = "*"

Left = (Screen.Width - Width) \ 2

Top = (Screen.Height - Height) \ 2

End Sub

Form Edit UserPrivate Sub cmdSimpan_Click()

If rc.state = 1 Then rc.Close

rc.Open "SELECT * FROM Usher WHERE password='" & txtlama & "'", db

If rc.EOF = True Then

MsgBox "Data tidak ada!", vbCritical, "PESAN"

txtlama = ""

txtbaru = ""

txtlama.SetFocus

Else

db.Execute "UPDATE usher SET usher.[jabatan]='admin',usher.[password]='" & txtbaru & "' WHERE usher.[password]='" & txtlama & "';"

MsgBox "Data telah terupdate!", vbInformation, "PESAN"

End If

End Sub

Private Sub Form_Load()

txtlama = ""

Page 10: Lampiran b (coding)

txtbaru = ""

txtlama.TabIndex = 0

End Sub

Form Map PropertiesPrivate Sub cboMapUnits_Click()

frmMain.strMapUnits = cboMapUnits.List(cboMapUnits.ListIndex)

frmMain.updateScale

End Sub

Private Sub CmdAddLayer_Click()

frmMain.AddFile

If frmMain.chkTipLayer.Value = 1 Then frmMain.refreshMapTips

End Sub

Private Sub cmdOK_Click()

Unload Me

End Sub

Private Sub Form_Load()

Me.Top = frmMain.Top

If (Me.Height + frmMain.Top + frmMain.Height) > Screen.Height Then

Me.Top = Screen.Height - Me.Height

Else

Me.Top = frmMain.Top + frmMain.Height

End If

Select Case frmMain.mapDisp.ScrollBars

Case True: chkScrollbars.Value = 1

Case False: chkScrollbars.Value = 0

End Select

chkAppearance.Value = frmMain.mapDisp.Appearance

cboBorderStyle.ListIndex = frmMain.mapDisp.BorderStyle

Select Case frmMain.strMapUnits

Case "Unknown": cboMapUnits.ListIndex = 0

Case "Decimal Degrees": cboMapUnits.ListIndex = 1

Case "Meters": cboMapUnits.ListIndex = 2

Case "Feet": cboMapUnits.ListIndex = 3

End Select

picMapBackColor.BackColor = frmMain.mapDisp.BackColor

Left = (Screen.Width - Width) \ 2

Top = (Screen.Height - Height) \ 2

End Sub

Private Sub cboBorderStyle_Click()

Dim status As Integer

status = Left(cboBorderStyle.text, 1)

frmMain.mapDisp.BorderStyle = status

End Sub

Private Sub chkAppearance_Click()

If chkAppearance.Value = 1 Then

frmMain.mapDisp.Appearance = mo3D

ElseIf chkAppearance.Value = 0 Then

frmMain.mapDisp.Appearance = moFlat

End If

End Sub

Private Sub chkScrollbars_Click()

If chkScrollbars.Value = 0 Then

frmMain.mapDisp.ScrollBars = False

ElseIf chkScrollbars.Value = 1 Then

frmMain.mapDisp.ScrollBars = True

End If

End Sub

Private Sub picMapBackColor_Click()

Page 11: Lampiran b (coding)

CommonDialog1.ShowColor

picMapBackColor.BackColor = CommonDialog1.Color

frmMain.mapDisp.BackColor = picMapBackColor.BackColor

End Sub

Form IdentifySub Identify(X As Single, Y As Single)

Dim curCount As Long, layerCount As Long, layer_c As Long

Dim Loc As New MapObjects2.Point

Dim theTol As Double

Dim featCount As Long, fCount As Long

Dim aLayer As Object

Dim recs As MapObjects2.Recordset

Dim aName As String, theItem As String

Dim aField As Object

layer_c = frmMain.mapDisp.Layers.Count

ReDim layerName(layer_c)

ReDim Recs2(layer_c)

Screen.MousePointer = 11

cboIDList.Clear

lstFeatList.Clear

lblFeatFound.Caption = "Proses Mencari . . ."

lblTheme.Caption = "Theme:"

lblShapeType.Caption = "Shape:"

Set Loc = frmMain.mapDisp.ToMapPoint(X, Y)

Dim xStr As String, yStr As String

If Loc.X > 1000 Or Loc.Y > 1000 Then

xStr = Int(Loc.X): yStr = Int(Loc.Y)

Else

xStr = Loc.X: yStr = Loc.Y

End If

lblLocation.Caption = "Lokasi : (" & xStr & "," + yStr + ")"

featCount = 0

layerCount = -1

theTol = frmMain.mapDisp.ToMapDistance(SEARCHTOLPIXELS * Screen.TwipsPerPixelX)

For Each aLayer In frmMain.mapDisp.Layers

If aLayer.Visible And aLayer.LayerType = moMapLayer Then

Set recs = aLayer.SearchByDistance(Loc, theTol, "")

layerCount = layerCount + 1

layerName(layerCount) = aLayer.Name

Set Recs2(layerCount) = recs

curCount = -1

If recs.Count <> 0 Then

aName = "Featureid"

For Each aField In recs.Fields

If aField.Type = moString Then

aName = aField.Name

Exit For

End If

Next

End If

While Not recs.EOF

ReDim Preserve layerNum(2, featCount + 1)

curCount = curCount + 1

layerNum(1, featCount) = layerCount

layerNum(2, featCount) = curCount

featCount = featCount + 1

theItem = recs(aName).ValueAsString

If theItem = "" Then

cboIDList.AddItem recs("FeatureId").ValueAsString

Else

cboIDList.AddItem theItem

End If

recs.MoveNext

Wend

End If

Next aLayer