Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: C++/CLI mit .NET ::  Übergabe eines Dateinamens aus der Benutzeroberfläche an Funktion     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
bekinect
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2016
Beiträge: 11
Beitrag bekinect Mitglied 13:29:03 12.09.2016   Titel:   Übergabe eines Dateinamens aus der Benutzeroberfläche an Funktion            Zitieren

Hallo alle zusammen

Vorweg möchte ich anmerken, dass das mein erstes user interface ist, das ich in C++ entwickle. Bisher hab ich das nur in LabView und Matlab gemacht.
Folgendes möchte ich mache: Mein Benutzer soll beim Start des Programmes die Möglichkeit haben eine Datei im .stl Format zu suchen. Diese Datei wird anschließend von meinem Programm verarbeitet und das Programm spuckt ein Programm für einen Industrieroboter aus.
Bisher hab ich alles nur als Console Application programmiert. Hier funktioniert auch alles. Nur schreib ich das Programm für Maschinenbauer, bei denen am besten so wenige Knöpfe vorhanden sind wie möglich. Der bisherige Aufruf des Programms in dem Command Window sieht so aus:
Code:
Prg.exe -slicesize 3 -infill 5 -model cube.stl -ascii -eulerangles 0 0 0

Dabei musste die Datei aber im selben Ordner liegen wie das Programm. Für das User Interface ist folgende geplant:
1 Button: Datei öffnen
1 button: Programm erstellen
2 Textfelder: Für slicesize und infill

In meinem Ausgangsprogramm frage ich die Parameter beim Programmstart auf die folgende weise ab:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
for (int i = 1; i <argc;) {
    if (0 == strcmp (argv [i], "-slicesize")) {
        slice size = atof (argv [i + 1]);
        i + = 2;
    }
    else if (0 == strcmp (argv [i], "-infill")) {
        infill = atof (argv [i + 1]);
        i + = 2;
    }
    else if (0 == strcmp (argv [i], "-model")) {
        strcpy (model file name, argv [i + 1]);
        i + = 2;
    }
    else if (0 == strcmp (argv [i], "-ascii")) {
        isBinaryFormat = false;
        i + = 1;
    }
    else if (0 == strcmp (argv [i], "-eulerangles")) {
        eulerAngles.x = atof (argv [i + 1]);
        eulerAngles.y = atof (argv [i + 2]);
        eulerAngles.z = atof (argv [i + 3]);
        i + = 4;
    }
    else {
        ++i;
    }
}

Danach verarbeite ich die .stl-Datei. In dem user interface sollte die Verarbeitung geschehen sobald der Button Programm erstellen gedrückt wird. Zur Zeit geschieht das noch so:
C++:
TriangleMesh mesh;
if (stlToMeshInMemory(modelFileName, &mesh, isBinaryFormat)!=0)
    return 1;

Und hier ist auch mein Problem: Ich hab es jetzt soweit, dass sich der OpenFiledialog öffnet und ich nur Dateien im .stl-Format auswählen kann. Zur Zeit wird der Pfad der Datei nur in einem Textblock angezeigt. Ich weiß ich kann den Text aus dem Texblock auslesen und in ein char konvertieren. Meine Frage wäre wie kann ich den Pfad mit dem Dateinamen an meine Funktion [i]stlToMeshInMemory übergeben. Eine weiter frage für mich ist, wo in meinem Projekt ich meinen bisher entwickelten Code unterbringen muss. Zur Zeit habe ich zwei Datein in dem Projekt MyForm.h und MyForm.cpp. So wie ich es verstanden habe kümmert sich MyForm.h nur um das Handeling der UI, also was passieren muss wenn ein Button gedrückt wird. Muss ich jetzt alles aus einem Consolen Projekt in die Datei MyForm.cpp kopieren?
Ich blick da noch nicht wirklich durch und würde mich wirklich über hilfreiche Tipps freuen.
C++ Forum :: C++/CLI mit .NET ::  Übergabe eines Dateinamens aus der Benutzeroberfläche an Funktion   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.