Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Formulare, Dialoge

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:  Formulare, Dialoge (1346 mal gelesen)
DrCNC
Mitglied



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

Beiträge: 96
Registriert: 04.01.2011

erstellt am: 08. Jan. 2011 12:30    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

Hi,
Ich rufe meine Formulare immer mit dieser Funktion auf

    <Autodesk.AutoCAD.Runtime.CommandMethod("Werkstück")> _
    Public Sub Werkstück()
        If Berechtigung() = False Then Exit Sub
        Dim frm As Werkstück
        frm = New Werkstück
        frm.Show()
    End Sub

bei jedem Aufruf sind die Dialogfelder wieder auf den Standardwert eingestellt.
Kann man auch die letzte Eingabe anzeigen lassen.
danke
DrCNC

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


Ex-Mitglied

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

Hi,

Du hast 2 Chancen, Inhalte Deiner Forms nicht zu verlieren:

a) Du generierst nur einmal eine neue Instanz des Form-Objekts und greifst bei weiteren Form-Starts nicht auf jeweils neu-initialisierte Instanzen, sondern auf diese am Anfang erstellte (einmalige Instanz)

b) Guck Dir in der VS-Hilfe den Bereich  My.Settings  an, hier können Daten einfach gespeichert werden, und sind dann auch für den nächsten Programmstart wieder verfügbar (also trotz zwischenzeitlichem Beenden Deiner App).
Mach mal in Deinem Form einen Klick auf z.B. eine Textbox und schau Dir in den Eigenschaften den Bereich  (Application Settings) ==> (Property Binding)  an.

- alfred -

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

DrCNC
Mitglied



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

Beiträge: 96
Registriert: 04.01.2011

erstellt am: 08. Jan. 2011 23:03    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 Alfred.
Will den Befehl "Werkstück" mehrmals verwenden, wie soll ich dann nur die 1. Instanz vom Formular öffnen
danke
DrCNC

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


Ex-Mitglied

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

Hi,

bitte (in Deinem Interesse ) keine Namen von Sub/Function/Property mit Sonderzeichen!
Und achte auch darauf, dass unterschiedliche Objekte nicht den gleichen Namen bekommen (bei Dir die Formklasse und die Sub, beide 'Werkstück' genannt).

Code:

private shared myForm as F_Werkstueck = Nothing  'F_Werkstueck nennt sich die Klasse Deines Forms (hab ich jetzt mal so genannt)

<Autodesk.AutoCAD.Runtime.CommandMethod("Werkstück")> _
Public Sub Werkstück()
  If Berechtigung Then
    If myForm is Nothing then
      myForm = new F_Werkstueck
    End If
    myForm .Show()
  Else
    'keine Berechtigung
  End If
End Sub



Bitte jedenfalls darauf achten, dass beim Beenden Deiner App dann 'myForm' auch sauber mit .Dispose aus dem Speicher entlassen wird.

- alfred -

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

DrCNC
Mitglied



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

Beiträge: 96
Registriert: 04.01.2011

erstellt am: 09. Jan. 2011 22:09    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

Hi
Danke für die rasche Hilfe!!
Die Forms funktionieren bereits bestens, haber aber noch ein weiteres Problem!
Möchte beim öffnen das Formular mit Daten aus einer Textdatei füllen - funktioniert auch bereits, aber wenn ich das Formular wieder öffne, dann wird es nicht neu inizialisiert.

Private Sub UserForm_Initialize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

bei VBA gibt es Ereignise beim Öffnen, beim Anzeigen usw.
auch mit dem Befehl dispose (Formular aus den Speicher)kann ich es nicht ein weiteres mal anzeigen lassen.
lg
DrCNC

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


Ex-Mitglied

erstellt am: 09. Jan. 2011 23:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> aber wenn ich das Formular wieder öffne, dann wird es nicht neu inizialisiert

Ich meine, etwas falsch verstanden zu haben, oben wolltest Du es doch genau umgekehrt, oder? (Dass eben nicht neu initialisiert wird, sondern die vorigen Einstellungen gleich angezeigt sind)

Wenn der EventHandler  .Load  funktionieren soll, dann musst Du eben Dein Form auf immer und ewig vernichten bevor Du es erneut erstellst und damit initialisierst.
Für mein obiges Beispiel wäre das dann:

Code:

Private Shared Sub myFormFinalize()
   If myForm IsNot Nothing then
      myForm.Dispose
      myForm = Nothing
   End If
End Sub

Oder folgende Alternativen:

- Du machst wieder Deinen alten Code, dann wird die Form immer vertschüsst und durch Deinen Befehl neu initialisiert (da Du mit  New F_Werkstueck  die saubere neue Version erzeugst, die dann auch den Event verarbeitet)
- Du startest durch eigenen Aufruf Deine Initialisierung bevor Du .Show machst.

HTH, - alfred -

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

DrCNC
Mitglied



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

Beiträge: 96
Registriert: 04.01.2011

erstellt am: 10. Jan. 2011 20:35    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

Hi,
Nein, du hast nichts falsch verstanden. Ich habe zwei Forms die aus einer Textdatei einlesen soll.
Läuft bereits fast alles. Ein kleines Problem habe ich. Wenn ich Forms öffne und ein anderes öffne, flacker das hintere Fenster von ACad kurzzeitig auf.

    Private Sub Werkzeug_Variable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Werkzeug_Variable.Click
        Me.Hide()
        WerkzeugWahl()
        Me.Show()
        Me.CNCWerkzeug.Text = Werkzeugvariable
    End Sub

In der Funktion Werkzeugwahl wird ein Dialog mit ShowDialog geöffnet und Daten per Klick ausgewählt.

Weiteres hätte noch ene Frage:
Kann man in ein Projekt importierte Textdateien auch mit .RedLine einlesen (auch eventuell schreiben - .WriteLine).
besten Dank für die große Hilfe!!
DrCNC

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


Ex-Mitglied

erstellt am: 11. Jan. 2011 10:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Wenn ich Forms öffne und ein anderes öffne, flacker das hintere Fenster von ACad kurzzeitig auf

Yes, hatte ich auch in einer App ==> und hab's leider nie wegbekommen, dass Form-Öffnen/Schliessen zu Flackern der dahinter liegenden Fenster führt.    (Ausser dem Flackern ist aber kein störender Effekt vorhanden).


>> Kann man in ein Projekt importierte Textdateien auch mit .RedLine einlesen (auch eventuell schreiben - .WriteLine).

Wenn Du mit 'in Projekt importiert' Dein Projekt meinst, und nicht etwa irgendwas AutoCAD-Import..., dann mache ich es meist so:

Code:
My.Computer.FileSystem.ReadAllText(.....)    - oder -
My.Computer.FileSystem.ReadAllBytes(.....)

Ist bei Dateien bis mittlerer Größe (einige MB) durchaus der schnellste Weg, dann hab ich einen String oder ein ByteArray und das kann ich dann im Speicher umschichten, wie's halt grad passt.

- alfred -

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

DrCNC
Mitglied



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

Beiträge: 96
Registriert: 04.01.2011

erstellt am: 11. Jan. 2011 10:54    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

Hi,
Wurde vieleicht nicht ganz verstanden.
Möchte in meiner APP , wo ich Forms, Module usw. erstelt habe eventuell Textdateien hinzufügen und auf sie zugreifen können, dann sind sie nicht externe Dateien und ist in der APP vorhanden.
DrCNC

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


Ex-Mitglied

erstellt am: 11. Jan. 2011 11:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

nun verstehe ich leider noch weniger.
Wenn Du diese zu Solution in VisualStudio hinzufügen willst, dann reicht es, die Textdatei in das Verzeichnis zu stellen, in welchem Du Deine SourceFiles hast und dann in VS-Projektexplorer (Icon oben) ==> alle Dateien anzeigen, dann diese Textdatei ==> rechte Maustaste ==> zu Projekt hinzufügen.

War's das? - alfred -

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

DrCNC
Mitglied



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

Beiträge: 96
Registriert: 04.01.2011

erstellt am: 11. Jan. 2011 20: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

Hi,
Ja das habe ich auch schon gemacht, aber wie kann ich dann mit dem Code darauf zugreifen, zur Zeit lese ich eine Textdatei ein - verarbeite sie und speichere sie in eine andere Datei ab.
DrCNC

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


Ex-Mitglied

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

Hi,

>> wie kann ich dann mit dem Code darauf zugreifen, zur Zeit lese ich eine Textdatei ein

Na ja, es ist ja eine Textdatei; auch wenn Du diese dem Projekt hinzufügst und ev. auch 'Kopieren in Ausgabeverzeichnis' aktiviert hast, es bleibt eine Textdatei und wird imho nur mit Funktionen zum Lesen von Textdateien behandelbar sein.

Vielleicht gibt es einen Hintergrund, was in Deiner Textdatei drin steht und wozu Du diese in Deiner App brauchst. Vielleicht kommen wir da auf was besseres.

- alfred -

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

DrCNC
Mitglied



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

Beiträge: 96
Registriert: 04.01.2011

erstellt am: 12. Jan. 2011 17:17    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


FalzXminus.txt


Zapfen_H.txt

 
Hallo,
Diese Textdateien sind Komponenten zu einen CNCProgramm (Vorlagedateien) und sollen nicht verändert werden können. Außerdem währe es optimal, wenn in einer App alles komplett vorhanden ist. Diese Textdateien werden von der App eingelesen und mit Daten von ACad gefüllt. Dann werden sie auf jedenfall wieder in verschiedene Texdateien abgespeichert und vom externen Postprozessor verarbeitet. Als externe Dateien kann ich sie schon einlesen und funktioniert alles bereits sehr gut, natürlich mit deiner (Eurer) großen Unterstützung.
DrCNC

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

DrCNC
Mitglied



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

Beiträge: 96
Registriert: 04.01.2011

erstellt am: 15. Jan. 2011 01:29    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,
Wie kann ich auf eingefügte Textdateien mit einer Funktion zugreifen!
mfg
DrCNC

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


Ex-Mitglied

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

Hi,

wieso nicht wie oben schon angeführt? Was gefällt daran nicht?

Code:
My.Computer.FileSystem.ReadAllText(.....)    - oder -
My.Computer.FileSystem.ReadAllBytes(.....)

- 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