Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » DataGridView in VC++2005 Express

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.11.2004, 10:13 Uhr
Joltan



Hallo,

Ich bin gerade dabei mich anhand der aktuellen Beta von VC+++ 2005 Express etwas in Visual C++ und die Forms einzuarbeiten. Nun bin ich leider kein erfahrener C++/VC Programmierer, sondern nur ein Amateur, der so ein wenig zum eigenen Vergnügen vor sich hinstümpert. Mein Problem ist im Moment, daß ich einen Vektor mit Objekten habe, den ich in einem DataGridView darstellen möchte, finde aber keine Dokumentation, wie ich dies tun kann ohne den Umweg über eine Datenbank zu gehen (für mein Miniprojekt nicht praktikabel).

Die Frage ist nun ob es entweder ein anderes Form gibt, welches sich für die tabellenartige Darstellung der Objekteigenschaften eignet - oder wie ich den einzelnen Feldern des DataGrid die entsprechenden Infos am Besten (und überhaupt) zuweisen kann? Laut MS geht letzteres ja - nur wie, das konnte ich nirgends finden. Und mit C# und all den anderen .NET Sprachen kenne ich mich leider nicht im Geringsten aus, so daß die dafür existierenden Beispiele (habe da aber auch noch kein zu meiner Frage passendes gefunden) mir nicht wirklich weiterhelfen.

Vieleicht kennt sich ja hier irgendwer ein bischen damit aus und kann mir mit einem kleinen Tip auf die Sprünge helfen!?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.11.2004, 17:00 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

.NET -> Ich annektier den Thread
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.11.2004, 18:38 Uhr
Joltan



So, nachdem mein Thread gleich zu Beginn entführt wird hier kurz mal die Definition der Objekte welche ich im View darstellen will:

Code:
class ServerClass {
    public:
        // return functions
        string Name() const { return iName;}
        string Address() const { return iAddress;}
        int Port() const { return iPort;}
        int Ping() const { return iPing;}
        // modifying functions
        void setName(string name) { iName = name;}
        void setAddress(string address) { iAddress = address; iPing = -1; iName = "unknown";}
        void setPort(int port) { iPort = port;}
        void setPing(int ping) { iPing = ping;}
        void setDefault() {
            iName = "unknown";
            iAddress = "127.0.0.1";
            iPort = 2302;
            iPing = -1;
        }
    private:
        string iName;
        string iAddress;
        int iPort;
        int iPing;
};
Die Objekte sind in einem Vektor zusammengefaßt und die Eigenschaften Name, Adresse, Port & Ping sollen in einer Tabelle dargestellt werden, wobei die Eigenschaft Ping regelmäßig aktualisiert wird. Wenn es ein Form gibt welches sich besser für die Darstellung eignet als das DataGridView, dann wäre das natürlich auch ok. Mir geht's nur drum die Fitzelei mit der Anzeige endlich beiseite legen zu können um mich wieder auf den Rest des Tools zu konzentrieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.11.2004, 18:58 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Zunächst mal ist es ziemlich umständlich, STL und .NET kombinieren zu wollen. Allein die Konvertierung zwischen std::string und System::String ist richtig ekelhaft... und ein std::vector kann nicht 1:1 mit .NET verwendet werden. Entweder Du machst eine ArrayList draus, oder Du erstellst doch eine DataTable aus den Objekten.
Eher geeignet wäre IMO ein ListView, der die einzelnen Objekte als Liste anzeigt; Du könntest eine eigene Klasse von ListView ableiten, die direkt mit einem vector Deiner Objekte verbunen weren könnte. Aber für ein Miniprojekt wäre das etwas viel...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.11.2004, 20:21 Uhr
Joltan



He, das hat man davon wenn man wie ich bisher nur gelegentlich ANSI C++ in der Konsole programmiert hat...

Ok, da ich noch am Anfang stehe und die restlichen Teile des Codes daher leicht anpassen kann denke ich es wäre wahrscheinlich das beste direkt alles in .NET zu machen - da habe ich zwar weder Erfahrung noch eine gute Dokumentation, aber ich mach's ja primär um was zu lernen!


Es wäre also wahrscheinlich am besten auch für meine einzelnen Variablen die entsprechenden .NET Typen System::String und System::Int16 zu verwenden. Dann habe ich aber ein Problem mit der Klassendefinition: Sobald ich eine ArrayList definiere bekomme ich eine Fehlermeldung weil ich gemanagte Typen in einer nicht-gemanagten Klasse verwende:

Code:
t:\C++\WindowsTest\WindowsTest\ServerClass.h(23) : error C3265: cannot declare a managed 'iName' in an unmanaged 'ServerClass'
        may not declare a global or static variable, or a member of a native type that refers to objects in the gc heap


Und das egal ob ich nun

C++:
System::Collections::ArrayList ServerList;
oder
C++:
System::Collections::ArrayList ServerList = gcnew ServerList;
verwende. Letzteres sollte die Klasse doch eigentlich ebenfalls 'managed' machen, oder???

Leider gibt's zu der ganzen Geschichte noch keine gute Dokumentation, deshalb ist es für mich als Einsteiger wahrscheinlich nicht gerade ideal - aber im Moment habe ich halt Zeit dafür. In einem halben Jahr, wenn die offizielle Release draußen ist und die ersten guten Bücher dazu auf dem Markt, dann würde ich eigentlich lieber schon etwas weiter sein. Oder kennt ihr gute Web-Tutorials/Docs, welche einem bisher von MFC, .NET, COM, etc. völlig unbeleckten Einsteiger den neuen Syntax vermitteln ohne erst noch die alte VC++ 2003er Syntax lernen zu müssen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: