Jak połączyć dwa projekty?

dział ogólny

Jak połączyć dwa projekty?

Nowy postprzez duf » piÄ…tek, 9 kwietnia 2010, 14:29

Zachodzę w głowę jak połączyć dwa projekty tak żeby można było z projektu pierwszego uruchomić projekt drugi. Chodzi mi o wywołanie okna projektu drugiego z projektu pierwszego w sposób dynamiczny :shock:. Problem jest w tym, że nie mogę dołączyć nagłówka unit1.h projektu drugiego w projekcie pierwszym bo nazwa wskaźnika Form1 jest taka sama i kompilator wywala błąd. Chciałem zmienić nazwę tegoż wskaźnika na inny w plikach .cpp i .h oraz w głównej funkcji ale chyba nie da się tego tak obejść. Czy to jest dziwne co chcę osiągnąć, czy też proste i naturalne?
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
PodziÄ™kowaÅ‚ : 17
OtrzymaÅ‚ podziÄ™kowaÅ„: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Jak połączyć dwa projekty?

Nowy postprzez Cyfrowy Baron » piÄ…tek, 9 kwietnia 2010, 15:32

Co do zmiany nazwy formularza to oczywiście nie powinieneś ręcznie modyfikować plików. lecz otwierasz projekt, z którego chcesz dołączyć jednostki do drugiego projektu i w Inspektorze Obiektów (Object Inspecotr) zmieniasz właściwość Name tego formularza. Środowisko dokona automatycznej zmiany wszystkich wpisów.

Potem skopiuj te jednostki do katalogu projektu, do którego chcesz je dołączyć, czyli pliki:

UnitX.cpp
UnitX.h
UnitX.dfm


Potem dołącz je do projektu poprzez menu Project -> Add to project, wybierz plik UnitX.cpp.

Pamiętaj, że kopiowane pliku muszą mieć nazwy inne niż występujące w tym katalogu. Jeżeli kopiowanym plikom zmienisz nazwy to nie zapomnij odpowiednio zmienić wpisów w sekcji include pliku UnitX.ccp i w pliku UnitX.h, czyli tego #ifndef Unit1H i #define Unit1H.

To najprostsza i najbezpieczniejsza metoda.
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: Jak połączyć dwa projekty?

Nowy postprzez duf » piÄ…tek, 9 kwietnia 2010, 17:41

Tak. Dziękuję.
Avatar użytkownika
duf
Intelektryk
Intelektryk
 
Posty: 175
Dołączył(a): czwartek, 9 października 2008, 13:02
PodziÄ™kowaÅ‚ : 17
OtrzymaÅ‚ podziÄ™kowaÅ„: 2
System operacyjny: Windows 10
Kompilator: XE8
Gadu Gadu: 0
    Windows XPFirefox

Re: Jak połączyć dwa projekty?

Nowy postprzez banita » piÄ…tek, 9 kwietnia 2010, 18:41

zmiana w inspektorze nie spowoduje zmiany nazwy w calym projekcie. zmianie podlegaja tylko miejsca w ktorych nazwe ta wstawia IDE i chyba tylko zawartosc konstruktora.

jesli np pod jakim OnClick button bedzie uzyta ten obiekt to tutaj odwolanie nie ulegnie zmianie. do tego celu sluzy refectoring.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
PodziÄ™kowaÅ‚ : 1
OtrzymaÅ‚ podziÄ™kowaÅ„: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    Windows 7Opera

Re: Jak połączyć dwa projekty?

Nowy postprzez Cyfrowy Baron » piÄ…tek, 9 kwietnia 2010, 19:10

Wszystko się zgadza, ale jeżeli dokonujesz tylko zmiany nazwy formularza, to w obrębie tego formularza raczej nie używasz adresowania typu:

Kod: Zaznacz cały
Form1->Button1Click(Sender);


tylko


Kod: Zaznacz cały
Button1Click(Sender);
// lub
this->Button1Click(Sender);


Jeżeli odwołanie dotyczy obiektu na innym formularzu to sprawa wogóle się komplikuje, gdyż obydwa formularze trzeba przenieść do nowej jednostki.

Co do Refactoring, to coś z tym jest nie tak. Wybieram Rename Form1 to Form2, wyskakuje Applying refactoring i nic wyrzuca komunikaty, że nic nie znaleziono No references ware found i Failed to setup refactoring. Być może źle tego używam, ale wolę już się posłużyć Search -> Replace.



Po kilku próbach:

Udało mi się coś podmienić za pomocą Refactoring, ale nie polecam, gdyż podmiana nastąpiła nie w plikach projektu lecz w pliku biblioteki INDY. Użycie tego mechanizmu jest obarczone sporym ryzykiem błędu.
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: Jak połączyć dwa projekty?

Nowy postprzez banita » sobota, 10 kwietnia 2010, 11:51

refactoring wypluwa wszystkie miejsca w ktorych zmiany beda dokonane. dla pewnosci lepiej sie im przyjzec:)

tzreba jednak przyznac ze refactoring a srodowisku c++ nie jest na najwyzszym poziomie (dla delphi jest lepiej). dla porownania visual ma ten mehcanizm o niebo lepszy, a jesli dodac visual assist to juz jest wspanialego.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
PodziÄ™kowaÅ‚ : 1
OtrzymaÅ‚ podziÄ™kowaÅ„: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    Windows 7Opera


  • 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 8 gości

cron