Odwołanie się do zmiennych z innego formularza

dział ogólny

Odwołanie się do zmiennych z innego formularza

Nowy postprzez marcinp1984 » czwartek, 25 marca 2010, 15:04

Witam :)
Tym razem mam problem, którego się zupełnie nie spodziewałem mieć, bo nie wydawało mi się to rzeczą trudną... Jednak mam z tym problem :/ Mianowicie nie bardzo potrafię np. na Form4 skorzystać ze zmiennych zadeklarowanych na Form1.
Na Form1, a może bardziej tu pasuje na Unit1.cpp mam:
Kod: Zaznacz cały
vector<wierzcholek> lista_wierzcholkow;
vector<krawedz> lista_krawedzi;


I tak się złożyło że na Unit4.cpp potrzebuje sprawdzić ich rozmiar:
Kod: Zaznacz cały
lista_wierzcholkow.size();
lista_krawedzi.size();


Niestety bez skutku . Bardzo proszÄ™ o jakÄ…Å› pomoc.
Avatar użytkownika
marcinp1984
Bladawiec
Bladawiec
 
Posty: 9
Dołączył(a): niedziela, 21 marca 2010, 20:47
PodziÄ™kowaÅ‚ : 5
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder
Gadu Gadu: 0
    Windows XPFirefox

Re: Odwołanie się do zmiennych z innego formularza

Nowy postprzez Cyfrowy Baron » czwartek, 25 marca 2010, 17:44

► patrz serwis: Cyfrowy Baron dziaÅ‚: teoria -> przekazywanie obiektów i funkcji pomiÄ™dzy formularzami.

Coś nie tak jest z tą Twoją deklaracja vector. Co to za typy wierzcholek i krawedz i gdzie są zdefiniowane?! Z nazwy wynika, że to coś w rodzaju listy więc może to być np. typ TStrings, lub coś podobnego, no chyba, że zdefiniowałeś własne typy wierzcholek i krawedz .

W każdym bądź razie, ja dla porządku przyjmę, że to typ TStrings.

Jeżeli wektory masz zadeklarowane w Unit4 to musi je zadeklarować w pliku nagłówkowym (Unit4.h) w sekcji public, jako publiczne wektory klasy TForm4 czy jaką jej tam nazwę nadałeś.

Plik Unit4.h
Kod: Zaznacz cały
public:        // User declarations
    __fastcall TForm4(TComponent* Owner);

    vector<TStrings> lista_wierzcholkow;
    vector<TStrings> lista_krawedzi;
 


Następnie w pliku źródłowym Unit1.cpp włączasz w sekcji include plik Unit4.h:

Plik Unit1.cpp
Kod: Zaznacz cały
#include "Unit1.h
#include "Unit4.h"


a odwołujesz się do tych wektorów w Unit1 adresując je na klasę formularza Unit4, czyli np. na Form4 zakładając, że dla Unit4 formularz taka właśnie nosi nazwę:

Kod: Zaznacz cały

    Form4
->lista_krawedzi;
    Form4->lista_wierzcholkow;
 

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
marcinp1984
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Odwołanie się do zmiennych z innego formularza

Nowy postprzez marcinp1984 » czwartek, 25 marca 2010, 18:01

wierzcholek i krawedz to są klasy które wrzuciłem do pliku nagłówkowego. Ale to chyba większej różnicy nie robi bo działa. Ponownie dziękuje za pomoc :)
Avatar użytkownika
marcinp1984
Bladawiec
Bladawiec
 
Posty: 9
Dołączył(a): niedziela, 21 marca 2010, 20:47
PodziÄ™kowaÅ‚ : 5
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 5 gości