złe miejsce wyświetlania błedów przez Delphi

0

Witam

Mam pewien projekt. W jednym z unitów zaznaczam cały kod, wycinam i wklejam nowy kod - ten nowy to ulepszona wersja starego, to znaczy 'ulepszone' procedury(dluższe), nowe zmienne itp. Kiedy chce skompilować projekt, Delphi wskazuje mi błędy, ale...w złym miejscu, to znaczy np. nie postawiłem średnika w linijce 40, a Delphi podświetliło linię 16...tak samo z resztą błędów. Rozumiem, że to z powodu pliku dcu, który zawiera inną wersje mojego unitu. Co na to poradzić? Żeby Delphi w odpowiednim miejscu wskazywało błędy?

0
  1. a możesz gdzieś zamieścić projekt, bo z głowy ciężko dojść o co chodzi
  2. dcu stwarza problemy ?? to delete go i już
0

Z umieszczeniem projektu bedzie cięzko. Bo to dośc duży projekt.
Jak usune plik dcu to kompilator. drze sie że go nie ma.

0

Hmm, źle wytłumaczyłem? Ech...dobra, od nowa :) Mam projekt, w nim unit. Teraz tak: powiedzmy, że ktoś inny rozbudowywał mi ten jeden unit i teraz jest on dłuższy, zawiera rozbudowane nowe procedury na bazie starych, nowe zmienne. Wklejam zawartośc nowego unitu do starego i kompiluję projekt. Delphi wywala mi błąd nie w tej linijce co trzeba. Spójrzcie na przykład:

// komentarz1 - tę linijkę podświetla Delphi - że niby tu jest błąd
// komentarz2
// komentarz3

const
 Stala1 = 3 ;
 Stala2 = 80 ;
 Stala3 = 2 // <-- brak średnika! Delphi dobrze wykrywa błąd, ale zaznacza go w innej lini, to jest w linijce 'komentarz1'
var
 Zmienna1 : Byte ;
 Zmienna2 : Integer ;

Mam nadzieję, że teraz mój problem jest już zrozumiały. Ja to ruzumiem tak, że jest tak dlatego, że Delphi sprawdza nowy kod, ale bierze miejsce ze starego unitu, to znaczy, że w starym kodzie ta linijka z błędem była w miejscu 'komentarz1', a w nowym została przesunięta kilka linijek niżej. Co wy na to? Co mam zrobić, żeby Delphi we właściwym miejscu wyświetliło błąd?

dopisane
Hmm, u mnie nie ma komunikatu o błędzie z dcu jak je usune. A co do kodu, to ten kawałek zmieniony powiniem starczyć na zrozumienie.

0

Z umieszczeniem projektu bedzie cięzko. Bo to dośc duży projekt.
Jak usune plik dcu to kompilator. drze sie że go nie ma.

przecież dcu to Delphi Compiled Unit, więc jedyną możliwością wurzucania błędu, jest to że usuwasz dcu od jakiegoś komponentu. Bo normalnie dcu nie jest do niczego potrzebny. Ja zawsze pod koniec dnia wyrzucam pliki *.dcu, *.~pas, *.dof, *cfg, itp. bo Delphi stworzy je przy następnej kompilacji !!

PS. jaki błąd wyrzuca ??

0

';' expected but 'VAR' found - taki właśnie błąd.

0

Spróbuj wziąć Build zamiast Compile.

0

Z Build to samo. Pomóżcie! Hehe ;)

0

// komentarz1 - tę linijkę podświetla Delphi - że niby tu jest błąd
// komentarz2
// komentarz3

const
Stala1 = 3 ;
Stala2 = 80 ;
Stala3 = 2 // <-- brak średnika! Delphi dobrze wykrywa błąd, ale zaznacza go w innej lini, to jest w linijce 'komentarz1'
var
Zmienna1 : Byte ;
Zmienna2 : Integer ;

Czy aby na pewno tak wygląda ten fragment, może trochę inaczej??

0

ja też już tak miałem (D6) przy debugowaniu. debuger pokazywał nieprawidłowe linie kodu, i nic nie pomagało, ani usunięcie dcu, ani build, zmiana kodu - zupełnie nic.
najwyraźniej jest to błąd środowiska.

[dopisane]
mi pomogła przesiadka na d7.

0

Czy aby na pewno tak wygląda ten fragment, może trochę inaczej??

Dokładnie tak.

No to jak? Jest na to jakiś sposób? Bo wiem, że jak już się uda raz skompilować, to potem jest dobrze przy następnych błędach. Co mam z tym zrobić? Bo nie moge przez to ustalić w czym tkwi problem z danym błędem...

0

Wygląda na to, że komentarze są winne, bo edytor je liczy, a kompilator już nie.

0

Hmm... Ale komentarze nie powinny mieć nic do tego. Za to mnie czasem też się takie problemy zdarzały, jak dostawałem program od kolegi. Wtedy mi edytor rozwalał kod tak, że były wolne linijki (po dwa entery walił zamiast jednego) i się wszystko chrzaniło... Może to być kwestia różnych sposobów zapisu znaku końca linii. Sprawdź to w swoim programie i w jakimś innym napisanym od nowa w tej wersji Delphi na tym kompie jakimś HexEditem czy coś i sprawdź jak wyglądają znaki końca linii. Jak są inne, to napisz jakiś prosty programik, który je zamieni na prawidłowe (tj. tak jak w programie, gdzie wszystko gra). To taka propozycja, może zadziała, może nie.

0

Misie (nie mylić z niedziwiedziami :P) też tak robiło ale odinstalowałem Delphiego i jeszcze raz zainstalowałem i juz się nie mota :]

0

Ok, już wszystko wiadome. Destruction mi napisał co i jak. Jeślo otworze ten swój unit w notatniku, to zamiast Enterów są krzaczki. Ale...po usunięciu nich nie jest wcale lepiej, jednakże błąd już jest mniejszy niż wcześniej - podświetla bliższą linię kodu niedaleko błędu, ale i tak jest źle :( cały czas jest źle :( total porażka [rotfl]

1 użytkowników online, w tym zalogowanych: 0, gości: 1