| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Zoomen während Dialog geöffnet (828 / mal gelesen)
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 29. Feb. 2016 15:19 <-- editieren / zitieren --> Unities abgeben:
Moin ! ich habe eine Funktion in welcher ein Dialog geöffnet ist und dann sollte über eine Schalffläche ein Bereich aufgezoomt werden. Da passiert nichts. Erst wenn der Dialog geschlossen war wurde der Zoom-Vorgang nachgeführt. Dann habe ich mir überlegt über ein Schleife den Dialog zu schließen, den Zoom-Befehl auszuführen und dann den Dialog wieder einzublenden. Aber auch da wurde das Zoomen erst nachgeführt, wenn der Dialog gänzlich geschlossen war. Hier ein Auszug aus dem letzten "Versuch": Code:
... Dim f As New frm_ControlActiveCover f.lbl_NewCover.Text = "Sie wollen einen Haupt-Schachtdeckel definieren!" f.lbl_OldCover.Text = "Der Deckel (FID: " & FID_OtherActiveCover.ToString & ") ist bereits Haupt-Schachtdeckel!" f.lbl_Frage.Text = "Wollen Sie den Status übertragen werden?" f.bt_zoom.Enabled = False Dim Dr As New Windows.Forms.DialogResult Do Dr = f.ShowDialog() If Dr = Windows.Forms.DialogResult.Yes Then Dim Miscellaneous As New EBL.MapService.Miscellaneous(Me.Document) Miscellaneous.ZOOM(FID_OtherActiveCover, k_AppName_SetActiveCover) End If Loop Until Dr = Windows.Forms.DialogResult.Cancel Or Dr = Windows.Forms.DialogResult.OK f.Dispose() If Dr = Windows.Forms.DialogResult.Cancel Then Exit Sub End If ' dem anderen Deckel den Status entziehen Feature_OtherActiveCover = connKANAL.FeatureClasses("WW_Cover").GetFeature(FID_OtherActiveCover) ...
Hat einer von Euch eine Idee warum nicht und wie die Lösung wäre ? Gruß Jan ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2799 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2023 Plateia, Canalis Visual Basic
|
erstellt am: 29. Feb. 2016 19:12 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Hallo Jan, Unter .net bin ich leider noch nicht soweit aber unter VBA hatte mich das auch schon zur Verzweiflung gebracht. Ich hatte ein Startformular zur Auswahl der Funktionen (Form1), dieses wurde beendet (Hide) und rief ein weiteres Formular (Form8) auf. Solange dieses aktiv war konnte kein Zoom durchgeführt werden. Lösung im Form1 Code sah dann so aus: Code:
Private Sub cmdProfEdit_Click() 'Neue Zeichnung öffnen zur Darstellung Load UserForm8 UserForm1.Hide If Not strMDBDatei = "" Then ' Kontrolle ob auch Datenbank gewählt wurde Userform8_Show: UserForm8.show vbModal ' für Auswahl / Zoom muß dieses beendet werden If UserForm8.Get_AutoCAD = True Then ' dieser Booleanwert steuert dass Autocad von dem ' beendeten Form8 (.hide) aufgerufen wird ' und in das Fenster zurückkehren soll Call UserForm8.ProfilEd_Autocad ' in dieser Procedur kann ein Text oder Linienendpunkt ausgewählt ' und beliebig gezoomt werden GoTo Userform8_Show ' Rücksprung ins Datenbankfenster Else Unload UserForm8 ' Ende Datenbankabfrage End If End If UserForm1.show End Sub
Ein direktes Ausführen im Code des Form8 war nicht möglich Vielleicht eine Anregung ... Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Ehrenmitglied Verm.-Ing.
Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign MapGuide autodesk Topobase 2-2014 VS6, VS.net 2010
|
erstellt am: 29. Feb. 2016 23:06 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Hallo Jan, kann ich so nicht nachvollziehen. Wenn du aus dem Document heraus ein Formular aufmachst geht's in AutoCAD weiter. z.B.
Code: Dim Features As Autodesk.Map.IM.Data.FeatureList Features = Me.Document.Connection.FeatureClasses.Item(GeoTabName).GetFeatures(True, LinkField & "=" & FID) AutoZoom = True Me.Dialog.Document.Map.HighlightFeatures(Features, Autodesk.Map.IM.Map.MapLogic.HighlightModes.Flash, AutoZoom)
Ich vermute mal das die Abfrage des Dialogergebnisses das Formular Modal macht. Code: If Dr = Windows.Forms.DialogResult.Yes Then
Geht das nicht anders? Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 01. Mrz. 2016 07:42 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 01. Mrz. 2016 10:01 <-- editieren / zitieren --> Unities abgeben:
Moin! danke für die Hinweise. Leider konnte ich mit dem Klaus noch nicht den richtigen Weg finden. @Wilfried: aus "Me.Dialog" entnehme ich das Du direkt aus der Maske der TB die Funktion aufrufen willst. Dann kann ich mir auch vorstellen das es funktioniert (Codezeile wandert gleich in unser Wiki) - aber ich arbeite ja mit einem anderen Dialog. Gruß Jan ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Ehrenmitglied Verm.-Ing.
Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign MapGuide autodesk Topobase 2-2014 VS6, VS.net 2010
|
erstellt am: 01. Mrz. 2016 19:28 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 02. Mrz. 2016 07:06 <-- editieren / zitieren --> Unities abgeben:
|