Błąd [cannot start a parameter declaration]

dział ogólny

Błąd [cannot start a parameter declaration]

Nowy postprzez user95 » Å›roda, 26 sierpnia 2009, 21:56

Witam
Używam BCB 6 Personal w folderze Examples buildera jest program VirtualListView chciałem sobie go trochę rozbudować jednak nie mogę dodać nowego Formularza, ponieważ po dodaniu formy i "zlinkowaniu" jej z główną formą (zlinkowaniu poprzez include) pojawiają się te oto błędy:
[C++ Error] VListView.h(43): E2147 'LPSHELLFOLDER' cannot start a parameter declaration
[C++ Error] VListView.h(52): E2147 'LPSHELLFOLDER' cannot start a parameter declaration
[C++ Error] VListView.h(110): E2303 Type name expected
[C++ Error] VListView.h(110): E2139 Declaration missing ;
[C++ Error] VListView.h(115): E2293 ) expected
[C++ Error] VListView.h(116): E2293 ) expected
[C++ Error] VListView.h(125): E2303 Type name expected
[C++ Error] VListView.h(125): E2238 Multiple declaration for 'TfrmVirtualLView::LPSHELLFOLDER'
[C++ Error] VListView.h(110): E2344 Earlier declaration of 'TfrmVirtualLView::LPSHELLFOLDER'
[C++ Error] VListView.h(125): E2139 Declaration missing ;

NIe wiem co się dzieje, dodawałem juz kilka nowych funkcji program do tej pory się kompilował, jednak po dodaniu nowej formy pojawiają się te błędy, po dodaniu formy do tego programu bez żadnych zmian też pojawiają się błędy, więc nie wiem jak to naprawiać :cry:
Avatar użytkownika
user95
Bladawiec
Bladawiec
 
Posty: 6
Dołączył(a): środa, 26 sierpnia 2009, 21:49
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez Cyfrowy Baron » czwartek, 27 sierpnia 2009, 08:43

Błąd wiec tkwi w sposobie w jaki dodajesz nową formę.
Powinieneś utworzyć nową jednostkę z formularzem np. Unit1.cpp; UNit1.h; Form1 i dołączyć do projektu poprzez menu Project Add to Project, a następnie w sekcji include jednostki która ma korzystać z tego formularza dodajesz odwołanie do tej jednostki: #include "Unit1.h"
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
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez user95 » czwartek, 27 sierpnia 2009, 16:42

Dodanie formy w taki sposób nie pomogło.
Błąd pojawia się tylko gdy wstawię #include z nazwą głownej formy w kodzie nowej, nie ma go gdy w kodzie głównej formy jest include nowej. Ale bez includ'a głównej formy nie mogę się do niej odwołać, chyba że jest inny sposób odwołania się do formy?
Avatar użytkownika
user95
Bladawiec
Bladawiec
 
Posty: 6
Dołączył(a): środa, 26 sierpnia 2009, 21:49
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez banita » czwartek, 27 sierpnia 2009, 17:10

cos masz tam pokrecone. bez udostepnienia zrodla bedzie ciezko to zidentyfikowac.
kolejny problem to bcb6 ktorego malo kto uzywa i ciezko testowac bez update do nowszej wersji bcb.
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
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez Cyfrowy Baron » czwartek, 27 sierpnia 2009, 17:14

Ja czegoÅ› nie rozumiem, albo Ty.
Główną formą jest formularz komponentu, ty możesz dodawać do niego tylko dodatkowe formularze wtórne.
Jeżeli komponent nie posiada formularza to nie możesz mu dodać formularza, który będzie nadrzędny dla klasy komponentu.

Tworzyłem sobie swego czasu komponent w oparciu o klasę TListBox. Taka ulepszona lista do obsługi plików. Dodałem do niego okno (formularz) umożliwiające wybieranie ikon (w załączniku pliki IconBox.cpp, IconBox.h, IconBox.dfm). To działa, ale komponent nie jest formularzem, pozwala wywołać okno.

Nie możesz stworzyć komponentu, który będzie od razu po dodaniu oknem, musisz go tak napisać by okno było wywoływane. NIe wiem jak inaczej to wytłumaczyć.
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
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
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez user95 » czwartek, 27 sierpnia 2009, 17:52

Ale nie chodzi mi o formularz w komponencie, tylko o zwykłą formę dodawaną "wtórnie"
Poprzez File->New->Form w tak utworzonej formie nie mogę wstawić #include "formaglowna.h" bo pojawiają się te błędy
tutaj jest ten program (example) : http://wyslijto.pl/plik/qhdtb4g2xg
i do tego projektu nie da się wstawić nowego okienka
Avatar użytkownika
user95
Bladawiec
Bladawiec
 
Posty: 6
Dołączył(a): środa, 26 sierpnia 2009, 21:49
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez Cyfrowy Baron » czwartek, 27 sierpnia 2009, 18:04

Na sam początek, załączniki możesz umieszczać na forum poprzez zakładkę "Dodaj załącznik".

Cały czas źle Ciebie rozumiałem, gdyż sądziłem że chcesz zmodyfikować jakiś komponent, a Ty tymczasem chcesz zmodyfikować przykładowy projekt.

Otworzyłem to u siebie i dodałem nowy formularz (wtórny) połączyłem je ze sobą poprzez sekcje include i wszystko działa jak należy.

Może zamiast przykładowego projektu wrzuć na forum to co tworzysz, gdyż u mnie błędów nie ma i wszystko działa.
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
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez banita » czwartek, 27 sierpnia 2009, 18:11

u mnie rowniez nie wystepuje problem po dodaniu nowej formy. albo popelniasz jakis blad albo cos jest nie tak z twoim IDE
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
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez user95 » czwartek, 27 sierpnia 2009, 18:13

W takim razie to musi być coś z builderem, bo u mnie nie da się skompilować też tego programu przykładowego.
Avatar użytkownika
user95
Bladawiec
Bladawiec
 
Posty: 6
Dołączył(a): środa, 26 sierpnia 2009, 21:49
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez Cyfrowy Baron » czwartek, 27 sierpnia 2009, 18:19

To błąd biblioteki ShellAPI.h

W pliku źródłowym vlistview.cpp masz wpis: #define NO_WIN32_LEAN_AND_MEAN, który powinien eliminować błąd.

Wyłącz go i sprawdź

Wyłączanie instrukcji:
Kod: Zaznacz cały
//#define NO_WIN32_LEAN_AND_MEAN


Jeżeli to nie pomoże, to musisz zainstalować łatki dla tego środowiska.
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
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez user95 » czwartek, 27 sierpnia 2009, 18:40

Niestety nie pomogło, spróbuje przeinstalować buildera, albo trzeba już się przesiąść na nowszą wersję.
Avatar użytkownika
user95
Bladawiec
Bladawiec
 
Posty: 6
Dołączył(a): środa, 26 sierpnia 2009, 21:49
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez Cyfrowy Baron » czwartek, 27 sierpnia 2009, 18:44

Przeinstalowanie nic nie da. To błędy w bibliotekach o których było na stronach Buildera. Pomaga tylko zainstalowanie łatek.
W nowszyche wersjach nie ma już tego przykłądu, więc go sobie najpierw skopiuj.
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
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez user95 » niedziela, 30 sierpnia 2009, 11:41

Witam po raz kolejny.
Zmiana buildera na nowsza wersję pomogła, jednak pojawił się kolejny problem, teraz już w kodzie.
Otóż chciałbym żeby z poziomu tego programu można było usuwać pliki i foldery z dysku. Z usuwaniem plików nie ma problemu, natomiast z usunięciem folderu już jest. Korzystam z porady usuwania "folderów z całą zawartością", która jest w serwisie i to działa do puki wcześniej nie wejdę poprzez mój program do folderu który chcę usunąć. Czyli wchodzę najpierw moim programem do folderu, później się cofam do wcześniejszego katalogu i gdy chcę usunąć katalog w którym przed chwilą "byłem" pojawia się problem, otóż pliki w tym katalogu są usuwane jednak sam katalog już nie sam katalog usuwany jest dopiero po zamknięciu mojego programu, czyli mój program trzyma w pamięci "ścieżki do folderów" lub jakieś inne informacje które uniemożliwiają usunięcie katalogu. I problem jest w tym że nie wiem gdzie program przechowuje te informacje w jakich zmiennych. Próbowałem usuwać główną listę:
Kod: Zaznacz cały
private:   // User declarations
      TList * FIDList;

poprzez delete FIDList; i wywoływać ponowie FormCreate przed usuwaniem katalogu jednak to nie pomaga, program musi trzymać te dane w jakimś innym miejscu i właśnie nie wiem gdzie.

W załączniku jest ten przykład z funkcją usuń
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Avatar użytkownika
user95
Bladawiec
Bladawiec
 
Posty: 6
Dołączył(a): środa, 26 sierpnia 2009, 21:49
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Błąd [cannot start a parameter declaration]

Nowy postprzez Cyfrowy Baron » niedziela, 30 sierpnia 2009, 15:06

Musisz zwolnić uchwyt do katalogu, a to zależy w jaki sposób korzystasz z tegoż katalogu.
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
    NieznanyNieznana


  • 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ł: Google [Bot] i 6 gości