Program kompiluje sie, a mimo wszystko nie uruchamia

0

Witam, mam taki problem. Czy kompiluje czy naciskam Run(F9) to sytuacja zawsze ta sama w glownym okienku delphi pisze Running forma znika, a za sekunde napis znika, a forma wraca bez uruchomienia programu :/ w wypadku otwierania pliku .exe nic sie nie dzieje!

0

F8?

0

Robi się tak:
przdechodzi do project1

begin
  Application.Initialize;
  Application.Run;
end.

obok tego są niebieskie kółka i każde naciśnięcie po <ort>kolei </ort>wskazuje na każdą linijkę zieloną strzałką. a pisze w okienku głównym: stopped > f8 > running > stopped f8 > running > stopped i tak w kółko:/

0

a może program sam się z siebie kończy ?? taki kod <ort>po prostu </ort>[!!!]

0

Nigdzie nie ma "close;", a przed end. jest wiele procedur, przycisków itp.

0

Z tego co pamiętam, jeśli program robi błąd na inicjalizacji (biblioteki delphi albo biblioteki komponentów innych firm) to coś takiego może być, bo to jest jeszcze przed inicjalizacją bibliotek sysutils odpowiedzialnych za obsługę błędów. Z braku obsługi błędów następuje zawieszanie i zakończenie programu z komunikatem access violation albo bez żadnego komunikatu.

0

Jak temu zaradzić?

0
mesqie napisał(a)

Jak temu zaradzić?

Skopiuj projekt do innego katalogu i usuwaj z formularza po kolei wszystkie komponenty innych firm. Jeśli po usunięciu jakiegoś program działa prawidłowo, to prawdopodobnie on powoduje kłopoty. Trzeba zapytać na forum jego producenta co robić. Może da się to ominąć stosując inny komponent, bo błąd w bibliotece innej firmy będzie trudno znaleźć.

0

A inaczej?

0
mesqie napisał(a)

A inaczej?

a dlaczego inaczej ???
sposób poszukawania przyczyny podany przez @Mariusz Jędrzejowski jest wydajny ...

0

nie zabardzo rozumiem pojęcia firm itp.

0
mesqie napisał(a)

nie zabardzo rozumiem pojęcia firm itp.

Delphi zawiera standardowe komponenty ale można poźniej doinstalować dodatkowe komponenty które są najczęściej produkowane przez różne inne firmy, o które chodzi. Nazywają je third-party.

0
mesqie napisał(a)

nie zabardzo rozumiem pojęcia firm itp.

komponenty NIE dostarczane w pakiecie (instalce) a DOinstalowywane [!!!]
mam nadzieję, że qmasz :-D

0

Kumam , dałem ostatnio dopisany fragment w klamry i dupa:/ A tylko w nim wcześniej były błędy i w cześniej działało.

0
mesqie napisał(a)

Kumam , dałem ostatnio dopisany fragment w klamry i dupa:/ A tylko w nim wcześniej były błędy i w cześniej działało.

dobrze zrobiłeś :)
ale to ciekawostka :-/
z logicznego punktu widzenia > jeśli poprzednio działało a wywaliłeś dodany kod to .... MUSI działać
ale tylko z logicznego
a masz poprzednio działającą kopię projektu ??

0

To masz te komponenty third-party czy nie? W każdym razie sprawdź co ostatnio zostało dodane do projektu, bo to może być powód problemu.

W niektórych sytuacjach się zdarza, że nawet gdy nie wywołujesz żadnego kodu podejrzanego o złe działanie komponentu, i tak następuje błąd ponieważ biblioteki związane z tym komponentem wywołują kod inicjalizacji swoich modułów. Jeśli komponenty nie zawierają źródeł pas tylko same dcu, to nawet debugger nie pokaże miejsca gdzie to się dzieje. Spróbuj wyłączyć optymizację w opcjach kompilatora, zrób project=>build all i dalej wystartuj program krokowo F7 i zobacz czy teraz debugger pokaże linię błędu. Jak dasz F8 to przeskoczy całą procedurę na raz i nic nie zobaczysz.

0

Jeżeli to co podałeś to jest cały kod Twojego pliku dpr to co się dziwisz jak tam nic nie ma

0

cholerka, przeoczyłem jakiś kod ??

Misiekd napisał(a)

Jeżeli to co podałeś to jest cały kod Twojego pliku dpr to co się dziwisz jak tam nic nie ma

:-(

0
zbynio_k napisał(a)

cholerka, przeoczyłem jakiś kod ??

tak - tworzenie głównej formy :p

BTW do wszystkich odpowiadających - nie lepiej chwilę pomyśleć nad najprostszymi rozwiązaniami zanim każecie komuś robić nie wiadomo jakie cuda

0

@Misiekd zwracam HONOR ;-)

Misiekd napisał(a)

tak - tworzenie głównej formy :p

mesqie napisał(a)

Robi się tak:
przdechodzi do project1

begin
Application.Initialize;
Application.Run;
end.

powiem więcej, tu nawet forma się NIE tworzy :-O

Misiekd napisał(a)

BTW do wszystkich odpowiadających - nie lepiej chwilę pomyśleć nad najprostszymi rozwiązaniami zanim każecie komuś robić nie wiadomo jakie cuda

zgadzam się, nawet nie przeczytałem ze zrozumieniem
[browar]

0

Nawet nie wziąłem pod uwagę tej możliwości, że jest błąd w dpr bo ten kod tworzony jest automatycznie i nie ingeruje się w niego. Nie zastanawiałem się nad tym.

Powstaje ciekawe pytanie - w jakich sytuacjach to może nastąpić jeśli użytkownik nie ingeruje ręcznie w kod dpr? Pierwszy formularz z reguły jest dodawany automatyczne do dpr. Spotkałem się tylko z sytuacją przy użyciu bibliotek intraweb, że drugi dodany formularz zostaje dodany pod nieprawidłową nazwą i nie działałby. Trzeba wtedy kombinować trochę i 1) zapisać nowy formularz do pas, 2) usunąć z projektu formularz o nieprawidłowej nazwie "Form1" (remove from project) i 3) dodać ten prawidłowy pas z pliku (add to project).
Być może niektórzy w takich sytuacjach ingerują ręcznie w plik dpr ale nie polecam tego.

0

jak sobie weźmiesz właściwości projektu to tam możesz "myszką" wyłączyć formę

0
Misiekd napisał(a)

jak sobie weźmiesz właściwości projektu to tam możesz "myszką" wyłączyć formę

Chyba by się nie dało skompilować po wyłączeniu wszystkich formularzy? O ile pamiętam, wtedy znika podświetlenie przy strzałce kompilacji.

0

a dlaczegóż?
Co to nie można stworzyć programu bez formy :>

0

N ie mam żadnych third partow czy jakoś tak. Jak dokładnie włączyć formę?A co do pisania programu bez formy to da sie... Wystarczy dać np. ShowMessage jako jedyną instrukcje i nie wyświetla formy.

0

jak widzę NIE masz kompletnie pojęcia o Delphi .....
coś wklejasz, coś wywalasz i nie wiesz dlaczego
żeby utworzyć formę w projekcie .DPR winna być instrukcja

Application.Initialize;
Application.CreateForm(TStartForm, StartForm);
Application.Run;

lub Create z Twoją nazwą formy

0

Wciskasz CTRL+SHIFT+F11, zakłądka FORMS i w AUTO-CREATE FORMS ma być Twoja główna forma

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