Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Willkommendialog beim Laden der Anwendung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Willkommendialog beim Laden der Anwendung (1353 mal gelesen)
deHolzschneider
Mitglied



Sehen Sie sich das Profil von deHolzschneider an!   Senden Sie eine Private Message an deHolzschneider  Schreiben Sie einen Gästebucheintrag für deHolzschneider

Beiträge: 14
Registriert: 07.01.2011

ACA 2011, 64bit

erstellt am: 08. Mrz. 2011 14:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe mit vb.net eine kleine Anwendung programmiert, die auch funktioniert. Ich möchte jetzt noch einen Willkommendialog anzeigen lassen, wenn die Anwendung (also die entsprechende dll) mit netload geladen wird. Normalerweise öffne ich die einzelnen Formulare mit

Code:
    <CommandMethod("Fenster_oeffnen")> _
    Public Sub NeuesProjekt()
        Dim modalForm As Hauptdialog_01 = New Hauptdialog_01()
        Application.ShowModalDialog(modalForm)
    End Sub

so dass mir dann das entsprechnde Formular angezeigt wird. Es ist mir aber nicht gelungen, den Aufruf direkt in die "Hauptklasse" einzubinden, also nur:
Code:
  Dim modalForm As Hauptdialog_01 = New Hauptdialog_01()
        Application.ShowModalDialog(modalForm)

Ich erhalte hier die entsprechende Meldung, dass eine entsprechende Deklaration für Application erwartet wird. Bei "Standardanwendungen" (also ohne Autocad) ist das einblenden kein Problem, aber hier will es irgendwie nicht.

Hat jemand schonmal sowas versucht und Erfolg gehabt?
Schonmal vielen Dank!
de Holzschneider

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 08. Mrz. 2011 15:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ich weiß leider gar nicht, was Du mit 'Hauptklasse' meinst. 

Kannst Du die Code-Schnippsel ein wenig erweitern, damit wir sehen, wo jetzt was definiert ist?

- alfred -

------------------
www.hollaus.at

deHolzschneider
Mitglied



Sehen Sie sich das Profil von deHolzschneider an!   Senden Sie eine Private Message an deHolzschneider  Schreiben Sie einen Gästebucheintrag für deHolzschneider

Beiträge: 14
Registriert: 07.01.2011

ACA 2011, 64bit

erstellt am: 08. Mrz. 2011 15:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja, da wusste eben nur ich was ich genau meine, sorry!

Ich habe mittlerweile auch noch ein wenig gegoogelt und habe eine Lösung für das Problem gefunden (man muss nach "Splash Screen" suchen, auf Deutsch gab's nix...). Dieser Post http://through-the-interface.typepad.com/through_the_interface/2007/06/showing_a_splas.html
hat mir die Lösung gezeigt, die ich auch gerne für alle anderen zeigen möchte, falls jemand auch nochmal das gleiche Problem hat.ö Prinzipiell kann man das Teil so erweitern, dass es jeden beliebigen Code beim Laden der Anwendung ausführt, indem man einfach den Inhalt von Public Sub Initialize() austauscht. Die Terminate-Sub muss auch bleiben, wenn Sie nicht gebraucht wird, einfach leer lassen (so wie hier).

Wichtig ist, dass Imports System, Imports Autodesk.AutoCAD.ApplicationServices, und Imports Autodesk.AutoCAD.Runtime eingebunden werden. Für den Willkommenbildschirm muss zusätzlich unter "Verweise" das PresentationCore 3.0 Framework geladen werden (steht in der Auswahlliste). Noch ein weiterer Hinweis: Nicht den "Begrüßungsbildschirm" aus Visual Studio nutzen, sondern ein einfaches "Windows Form" auswählen und dass dann anpassen, hat zumindest bei mir geklappt. So, nun genug geschrieben, hier dann der Code, der je nach Wunsch natürlich angepasst werden kann (hab einfach nur kopiert und übersetzten lassen):

Code:

    Implements Autodesk.AutoCAD.Runtime.IExtensionApplication

    Public Sub Initialize() Implements IExtensionApplication.Initialize

        Dim ss As Willkommendialog = New Willkommendialog()
        ' Rather than trusting these properties to be set
        ' at design-time, let's set them here
        ss.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
        ss.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
        ss.Opacity = 0.8
        ss.TopMost = True
        ss.ShowInTaskbar = False
        ' Now let's disply the splash-screen
        Application.ShowModelessDialog(Application.MainWindow.Handle, ss, False)
        ss.Update()
        ' This is where your application should initialise,
        ' but in our case let's take a 3-second nap
        System.Threading.Thread.Sleep(3000)
        ss.Close()
    End Sub

    Public Sub Terminate() Implements IExtensionApplication.Terminate

    End Sub


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

oscarr
Mitglied
CAD-Manager


Sehen Sie sich das Profil von oscarr an!   Senden Sie eine Private Message an oscarr  Schreiben Sie einen Gästebucheintrag für oscarr

Beiträge: 198
Registriert: 02.10.2007

ACA 2012 - English Win 7/x64

erstellt am: 08. Mrz. 2011 15:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für deHolzschneider 10 Unities + Antwort hilfreich

Hallo,

wenn ich Dich richtig verstehen meinst Du so was (ungetestet):

Code:

Class Hauptklasse

    Implements IExtensionApplication

    Public Sub Initialize() Implements IExtensionApplication.Initialize
        Dim modalForm As Hauptdialog_01 = New Hauptdialog_01()
        Application.ShowModalDialog(modalForm)
    End Sub

    Public Sub Terminate() Implements IExtensionApplication.Terminate
    End Sub


     <CommandMethod("Fenster_oeffnen")> _
    Public Sub NeuesProjekt()
        Dim modalForm As Hauptdialog_01 = New Hauptdialog_01()
        Application.ShowModalDialog(modalForm)
    End Sub

End Class


dabei sollte  beim laden der dll das gleiche passieren wie mit Deinem "Fenster_oeffnen" Befehl.

Gruss
Holger

/edit: zu spät 

[Diese Nachricht wurde von oscarr am 08. Mrz. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 08. Mrz. 2011 17:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

darf ich nur kurz ergänzen? 

Ich würde die Deklaration des Form-Objekts ausserhalb der Sub Initialize deklarieren, dann innerhalb der Sub initialisieren und starten (nicht-modal), damit läuft die Initialisierung zumindest mal weiter und bleibt nicht stehen!

Und erst am Ende der Initialisierung dann das Form wieder mit '.dispose' killen.
Andere Variante wäre im Form beim Load-Event dann mit Sleep ein paar Sek stehen lassen und dann selbständig wieder verrollern.

Hintergrund des ganzen nochmals: es wäre schade, wenn wegen eines solchen Dialogs der weitere Initialisierungsvorgang warten müsste. Das ist auch nicht primärer Zweck des Splash-Screens. 

Viel Erfolg, - alfred -

------------------
www.hollaus.at

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz