home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Houseplan Collection
/
HRCD2005.ISO
/
data1.cab
/
Zusatz
/
3DS
/
DATA2.Z
/
CoolOEMApp.frm
< prev
next >
Wrap
Text File
|
1999-04-23
|
15KB
|
467 lines
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form CoolOEMApp
Caption = "ArCon in a Box"
ClientHeight = 5445
ClientLeft = 60
ClientTop = 345
ClientWidth = 7800
LinkTopic = "Form1"
ScaleHeight = 5445
ScaleWidth = 7800
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton ShowAll
Caption = "A-Z"
Height = 375
Left = 7320
TabIndex = 14
Top = 240
Width = 495
End
Begin VB.CommandButton StartWalking
Caption = "Go!"
Height = 375
Left = 6840
TabIndex = 13
Top = 240
Width = 375
End
Begin VB.Timer Timer
Left = 120
Top = -120
End
Begin MSComDlg.CommonDialog dlg
Left = 600
Top = -120
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.CommandButton Walk
Height = 375
Left = 6360
Picture = "CoolOEMApp.frx":0000
Style = 1 'Graphical
TabIndex = 12
Top = 240
Width = 375
End
Begin VB.CommandButton Zoom
Height = 375
Left = 5880
Picture = "CoolOEMApp.frx":0172
Style = 1 'Graphical
TabIndex = 11
Top = 240
Width = 375
End
Begin VB.CommandButton WalkRight
Height = 375
Left = 5280
Picture = "CoolOEMApp.frx":02E4
Style = 1 'Graphical
TabIndex = 10
Top = 240
Width = 375
End
Begin VB.CommandButton WalkDown
Height = 375
Left = 4800
Picture = "CoolOEMApp.frx":04F6
Style = 1 'Graphical
TabIndex = 9
Top = 480
Width = 375
End
Begin VB.CommandButton WalkUp
Height = 375
Left = 4800
Picture = "CoolOEMApp.frx":0708
Style = 1 'Graphical
TabIndex = 8
Top = 0
Width = 375
End
Begin VB.CommandButton WalkLeft
Height = 375
Left = 4320
Picture = "CoolOEMApp.frx":091A
Style = 1 'Graphical
TabIndex = 7
Top = 240
Width = 375
End
Begin VB.CommandButton SaveBitmap
Height = 375
Left = 3600
Picture = "CoolOEMApp.frx":0B2C
Style = 1 'Graphical
TabIndex = 6
Top = 240
Width = 375
End
Begin VB.CommandButton PrintIt
Height = 375
Left = 3120
Picture = "CoolOEMApp.frx":0C9E
Style = 1 'Graphical
TabIndex = 5
Top = 240
Width = 375
End
Begin VB.CheckBox ShowExplorer
Height = 375
Left = 2640
Picture = "CoolOEMApp.frx":0E10
Style = 1 'Graphical
TabIndex = 4
Top = 240
Width = 375
End
Begin VB.CommandButton ConstMode
Height = 375
Left = 1680
Picture = "CoolOEMApp.frx":0F82
Style = 1 'Graphical
TabIndex = 3
Top = 240
Width = 855
End
Begin VB.CommandButton Designmode
Height = 375
Left = 720
Picture = "CoolOEMApp.frx":1234
Style = 1 'Graphical
TabIndex = 2
Top = 240
Width = 855
End
Begin VB.CommandButton OpenProject
Height = 375
Left = 120
Picture = "CoolOEMApp.frx":14E6
Style = 1 'Graphical
TabIndex = 1
Top = 240
Width = 495
End
Begin VB.Frame ArConFrame
Caption = "Das ArCon Fenster:"
Height = 4455
Left = 120
TabIndex = 0
Top = 840
Width = 7575
End
End
Attribute VB_Name = "CoolOEMApp"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' ----------------------------------------------------------------------------
' MS Visual Basic Demo-Programm zur Demonstration der ActiveX-FΣhigkeit
' von ArCon(+).
'
' Der abgebildete Code dient lediglich Demonstrationszwecken.
' Es wird keinerlei Garantie fⁿr die Richtigkeit und/oder
' FunktionsfΣhigkeit ⁿbernommen. Bei Fragen wenden Sie sich bitte an
'
' mb-Programme
' Software im Bauwesen GmbH
' Hermannstra▀e 1
' D-31785 Hameln
' e-mail: arcon@mb-software.de
' Internet http://www.mb-software.de
'
' ----------------------------------------------------------------------------
' A C H T U N G :
' ===============
'
' Dieses Demo wird nicht in jeder ArCon Version vollstΣndig
' funktionieren, da es spezielle Eigenschaften einer OEM-Version
' vorraussetzt.
'
' Dennoch ist im Originalzustand dieses Projekt mit der Standard-
' ArCon CLSID verbunden, da CLSID's fⁿr OEM-Versionen unterschiedlich
' sind. Bevor Sie dieses Demo mit Ihrer OEM-Version einsetzten k÷nnen,
' mⁿssen Sie die entsprechende Verknⁿpfung herstellen (Project/References).
' ----------------------------------------------------------------------------
Option Explicit
' Die globale Instanz des Applikations-Objektes
Dim WithEvents prg As ArCon.ArCon
Attribute prg.VB_VarHelpID = -1
' Statische Hilfsvariablen
Dim fName As String ' Projekt Dateiname
Dim dir As String ' Directory dazu
Dim lastPos As RECT ' Letzte Fensterposition
' Timer Zeitkonstanten
Const TIMER_ON As Long = 250
Const TIMER_OFF As Long = 0
' ArCon BenutzeroberflΣche anpassen
Private Sub RemovePanelsAndMenus()
' Standard-Menⁿs ausschalten
prg.ShowMenu AC_NoMode, False
prg.ShowMenu AC_ModeConstruct, False
prg.ShowMenu AC_ModeDesign, False
' Standard Panels ausschalten
prg.ShowPanel ACBI_UpperPannel, False
prg.ShowPanel ACBI_LeftPannel + ACBI_ConstructionMode + ACBI_NoMode, False
prg.ShowPanel ACBI_LeftPannel + ACBI_DesignMode, False
prg.ShowPanel ACBI_HowPannel, False
prg.ShowPanel ACBI_ViewPannel, False
prg.ShowPanel ACBI_StatusPannel, False
End Sub
Private Sub ConstMode_Click()
prg.Mode = AC_ModeConstruct
UpdateButtons
End Sub
Private Sub Designmode_Click()
prg.Mode = AC_ModeDesign
UpdateButtons
End Sub
' Initialisierung und Programmstart
Private Sub Form_Load()
' globale ArCon Instanz erzeugen
Set prg = New ArCon.ArCon
' Erzeuge das ArCon Hauptfenster in einem Rahmen
prg.StartMe2 hwnd, "", False, ArConFrame.hwnd
' Alle ArCon Menⁿs und Panels entsorgen
RemovePanelsAndMenus
UpdateButtons
' Initiale Gr÷▀e anpassen
Form_Resize
' Wenn spΣter der Explorer erscheint, soll er rechts andocken
prg.SetExternalViewDockMode EXT_VIEWS_EXPLORER, DOCKMODE_DockRight, 0, 0, 0, 0
End Sub
' Bei Gr÷▀enΣnderungen passen wir den Rahmen, in dem ArCon sitzt,
' an die neue Gr÷▀e an. Natⁿrlich nur, wenn das ganze noch ins Fenster
' pa▀t.
Private Sub Form_Resize()
' Pa▀t der Frame noch in unseren Client-Bereich?
If ScaleWidth < 300 Or ScaleHeight < 1000 Then Exit Sub
' Ja, also dessen Gr÷▀e anpassen
ArConFrame.Width = ScaleWidth - 225
ArConFrame.Height = ScaleHeight - 990
' Jetzt das ArCon-Fenster anpassen
Dim r As RECT
GetClientRect ArConFrame.hwnd, r
MoveWindow prg.ArConWindowHandle, r.Left + 5, r.Top + 15, r.Right - 10, r.Bottom - 25, True
' Wichtig: damit ArCon's interne Verwaltung der Fensterposition funktioniert,
' mu▀ es hier von seiner PositionsΣnderung informiert werden (als Child-Window
' bekommt es diese Information nicht von Windows)
prg.UpdateWindowPos
End Sub
' Das Hauptprogramm wird beendet, vorher unbeding ArCon daraus entfernen
Private Sub Form_Unload(Cancel As Integer)
If Not prg Is Nothing Then
prg.EndArCon
End If
If Not prg Is Nothing Then
prg.EndMe
Set prg = Nothing
End If
End Sub
Private Sub OpenProject_Click()
If prg.LoadProjectDialog(hwnd, "Visual Basic ÷ffnet ein ArCon Projekt", fName, dir) Then
prg.LoadProject fName
UpdateButtons
End If
End Sub
' Der Explorer ist manuel an(?) oder ausgeschaltet worden
Private Sub prg_ExternalViewsVisibilityChanged(ByVal newVisibility As Long)
If newVisibility And EXT_VIEWS_EXPLORER Then
ShowExplorer.Value = 1
Timer_Timer
Timer.Interval = TIMER_ON
Else
ShowExplorer.Value = 0
Timer.Interval = TIMER_OFF
End If
End Sub
' ArCon wird beendet (was in einer OEM Version natⁿrlich nicht ohne Befehl
' des Steuerprogrammes passiert) - wir mⁿssen unbedingt die Window-Hierachie
' wieder korrigieren, was durch ein 'EndMe' geschieht. Au▀erdem beenden wir
' das Steuerprogramm.
Private Sub prg_ProgramExit()
If Not prg Is Nothing Then
prg.EndMe
Set prg = Nothing
End If
Unload Me
End Sub
Private Sub PrintIt_Click()
prg.ActiveView.[Print] Nothing, True, True
' Wir k÷nnten auch eigenen PrinterSettings verwenden:
'Dim settings As ArCon.PrintSettings
'Set settings = prg.NewPrintSettings
'settings.GreyColor = GRCOLOR_WieKonstruktion
'prg.ActiveView.[Print] settings, True, True
End Sub
Private Sub SaveBitmap_Click()
' Vergleiche Sub PrintIt: auch hier k÷nnten wir
' eigene Settings verwenden (ArCon.SavePictureSettings)
' und einen Dateinamen vorgeben, dann wⁿrde kein Dialog
' erscheinen
prg.ActiveView.SavePicture Nothing, ""
End Sub
Private Sub ShowAll_Click()
prg.ActiveView.ShowAll
End Sub
' Schaltet den Explorer an oder aus
Private Sub ShowExplorer_Click()
Dim bits As Long
bits = prg.ActiveExternalViews
If ShowExplorer.Value = 0 Then
bits = bits And (Not EXT_VIEWS_EXPLORER)
Timer.Interval = TIMER_OFF
Else
bits = bits Or EXT_VIEWS_EXPLORER
Timer_Timer
Timer.Interval = TIMER_ON
End If
prg.SetExternalViews bits
UpdateButtons
End Sub
Private Sub StartWalking_Click()
SetActiveWindow prg.ArConWindowHandle
prg.ActiveView.StartWalking False
End Sub
' Window-Position ermitteln und mit der letzten vergleichen.
' Falls ein externes Zusatzmodul wie der Objekt- und Texturexplorer
' angezeigt wird, mⁿssen wir ArCon ⁿber ─nderungen der absoluten
' Fensterposition informieren. Eigentlich gibt es dazu eine entsprechende
' Windows-Message WM_WINDOWPOSCHANGED, bzw. WM_MOVE, aber in Visual
' Basic ist es nicht so einfach, an diese Nachrichten zu kommen.
Private Sub Timer_Timer()
Dim pos As RECT
GetWindowRect hwnd, pos
If pos.Left <> lastPos.Left Or pos.Right <> lastPos.Right Or _
pos.Top <> lastPos.Top Or pos.Bottom <> lastPos.Bottom Then
lastPos = pos
prg.UpdateWindowPos
End If
End Sub
Private Sub Walk_Click()
dlg.DialogTitle = "Walk Datei ÷ffnen"
dlg.Filter = "Walk Dateien (*.wlk)|*.wlk|Alle Dateien (*.*)|*.*||"
dlg.Flags = cdlOFNFileMustExist
On Error GoTo failed
dlg.CancelError = True
dlg.ShowOpen
prg.ActiveView.PlayWalkFile dlg.FileName, False
failed:
On Error GoTo 0
End Sub
Private Sub WalkDown_Click()
prg.ActiveView.Pan VCC_PAN_Unten, False
End Sub
Private Sub WalkLeft_Click()
prg.ActiveView.Pan VCC_PAN_Links, False
End Sub
Private Sub WalkRight_Click()
prg.ActiveView.Pan VCC_PAN_Rechts, False
End Sub
Private Sub WalkUp_Click()
prg.ActiveView.Pan VCC_PAN_Oben, False
End Sub
Private Sub Zoom_Click()
SetActiveWindow prg.ArConWindowHandle
prg.ActiveView.StartZoom
End Sub
' Enabled/disabled die gerade verfⁿgbaren Kn÷pfe
Private Sub UpdateButtons()
If prg.Mode = AC_NoMode Then
OpenProject.Enabled = True
Designmode.Enabled = False
ConstMode.Enabled = False
ShowExplorer.Enabled = False
PrintIt.Enabled = False
SaveBitmap.Enabled = False
WalkLeft.Enabled = False
WalkUp.Enabled = False
WalkDown.Enabled = False
WalkRight.Enabled = False
Zoom.Enabled = False
Walk.Enabled = False
StartWalking.Enabled = False
ShowAll.Enabled = False
Timer.Interval = TIMER_OFF
ElseIf prg.Mode = AC_ModeConstruct Then
OpenProject.Enabled = True
Designmode.Enabled = True
ConstMode.Enabled = False
ShowExplorer.Enabled = False
PrintIt.Enabled = True
SaveBitmap.Enabled = True
WalkLeft.Enabled = True
WalkUp.Enabled = True
WalkDown.Enabled = True
WalkRight.Enabled = True
Zoom.Enabled = True
Walk.Enabled = False
StartWalking.Enabled = False
ShowAll.Enabled = True
Timer.Interval = TIMER_OFF
Else
OpenProject.Enabled = True
Designmode.Enabled = False
ConstMode.Enabled = True
ShowExplorer.Enabled = True
PrintIt.Enabled = True
SaveBitmap.Enabled = True
WalkLeft.Enabled = True
WalkUp.Enabled = True
WalkDown.Enabled = True
WalkRight.Enabled = True
Zoom.Enabled = True
Walk.Enabled = True
StartWalking.Enabled = True
ShowAll.Enabled = True
If prg.ActiveExternalViews And EXT_VIEWS_EXPLORER Then
ShowExplorer.Value = 1
Timer_Timer
Timer.Interval = TIMER_ON
Else
ShowExplorer.Value = 0
Timer.Interval = TIMER_OFF
End If
End If
End Sub