Trimite un ListView ca parametru pt o functie

Intrebari despre limbajul C++/CLI (si versiunile mai vechi MC++), applicatii mixed-mode sau probleme specifice .NET legate de C++.
Post Reply
rdenis
Membru
Membru
Posts: 50
Joined: 10 Apr 2010, 20:16
Judet: Iaşi

Trimite un ListView ca parametru pt o functie

Post by rdenis » 25 Jun 2010, 18:21

salutare...cum se poate trimite un listview ca argument pt o functie...
ex:
functia:
string::boolean func1(System::Windows::Forms::ListView^ lst){}

apelarea:
funct1(&this->lstMylist){} ori funct1(&lstMylist) ambele genereaza o eroare C2843...

any ideeas.... :roll:



neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: Trimite un ListView ca parametru pt o functie

Post by neagu_laurentiu » 25 Jun 2010, 19:28

Ce cauta la apel operatorul adresa ?!

rdenis
Membru
Membru
Posts: 50
Joined: 10 Apr 2010, 20:16
Judet: Iaşi

Re: Trimite un ListView ca parametru pt o functie

Post by rdenis » 25 Jun 2010, 19:59

incerc sa-l trimit prin referinta, un??!

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: Trimite un ListView ca parametru pt o functie

Post by neagu_laurentiu » 25 Jun 2010, 20:20

funct1(this->lstMylist);
sau
funct1(lstMylist);

Mai studiaza pointerii !

rdenis
Membru
Membru
Posts: 50
Joined: 10 Apr 2010, 20:16
Judet: Iaşi

Re: Trimite un ListView ca parametru pt o functie

Post by rdenis » 25 Jun 2010, 22:04

mersi pt raspuns laurentiu, insa problema apare atunci cand incerc sa trimit acest listview din alt formular...
ex: form2::funct1(form1::lstMylist)

problema cu pointeri de la c++ vechi :)

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: Trimite un ListView ca parametru pt o functie

Post by neagu_laurentiu » 26 Jun 2010, 09:27

Teoria pointerilor e universala.

Code: Select all

#include "Form2.h"
namespace xxx
{
  ...
  public ref class Form1 : public System::Windows::Forms::Form
  {
    private: System::Windows::Forms::Button^  button1;
    private: System::Windows::Forms::ListView^  listView1;
    ...
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
    {
      Form2^ f2 = gcnew Form2();
      f2->Show();
      f2->test(this->listView1);
    }
    ...
  };
}

Code: Select all

namespace xxx
{
  ...
  public ref class Form2 : public System::Windows::Forms::Form
  {
    ...
    public:
    void test(System::Windows::Forms::ListView^ lst)
    {
      MessageBox::Show(lst->Columns[0]->Text);
    }
    ...
  };
}
Tu ai referinta la forma de baza ce contine listview-ul ?

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Trimite un ListView ca parametru pt o functie

Post by Marius Bancila » 27 Jun 2010, 16:25

Acuma ca sa fim exacti, pointerii managed (introdusi cu ^) se numesc handles. Iar o referinta handle (introdusa cu %, nu &) se numeste tracking reference (chiar nu stiu cum s-a tradus asta in limba romana).
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

Post Reply