Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PASCAL w środowisku Windows - jak to działa?

leburaque 10 Kwi 2011 16:38 2096 11
  • #1 10 Kwi 2011 16:38
    leburaque
    Poziom 17  

    Witam,

    problem o którym piszę wydawać się może banalny, ale jakoś nie umiem go rozwikłać przy użyciu google. Proszę się nie śmiać, dla mnie to sprawa magisterki.

    Do badań w mojej mgr wykorzystuję program, który został napisany w PASCALU. Błagam, nie pytajcie dlaczego wybrałem ten język... Badania są już w toku a mi bardzo, ale to bardzo zaczyna przeszkadzać tryb pracy programu po skompilowaniu.

    Jakimkolwiek znanym narzędziem bym tego nie kompilował, to wychodzi w efekcie programik DOS'owski, który żre procesor, trudno odpalić równolegle kilka takich, a obciążenie komputera jest dramatyczne.

    Anyway - jak mógłbym skompilować, lub we w miarę prosty sposób przerobić kod, aby w efekcie dał coś "okienkowego", czyli wykorzystującego potencjał komputera w lepszy sposób, bardziej kompatybilny z WIN etc.? Najbardziej mnie interesuje możliwość uruchomienia kilku programów na jednej maszynie bez konieczności przerwania pracy na niej, bo procesor nie wyrabia...

    Dodam, że złożoność obliczeniowa kodu nie jest duża i nawet nie mam się co skupiać na doskonaleniu kodu.

    Dziękuję za każdą radę i wskazówkę.
    Pozdrawiam

    0 11
  • Pomocny post
    #2 10 Kwi 2011 16:43
    Jarosx9
    Poziom 35  

    Odpowiedź brzmi: Borland Delphi.
    Ewentualnie odpowiedź nr 2 brzmi: Lazarus

    Obydwa bardzo podobne, pierwszy płatny ale bywają niektóre wersje darmowe, drugi całkowicie darmowy.

    Programowanie pod dos'em ma to do siebie że z wielozadaniowością ma niewiele wspólnego, skorzystaj z linuksa albo windows'a.

    0
  • #3 10 Kwi 2011 16:55
    leburaque
    Poziom 17  

    No dobrze, rozumiem, że kompilator Delphi - które z tego co wygóglałem jest w pewnym sensie naturalną ewolucją kompilatora Turbo Pascala. Rozumiem, że skompilowany element kodu (bądź cały program) przenosi go ze środowiska DOS do środowiska Win, czyli łatwiej o pracę wielozadaniową, tak?

    Czy w związku z tym będą np. straty w wydajności poszczególnego programu, albo zwiększenie jego objętości po kompilacji? Czy będzie też tak, że będę musiał przekładać poprzedni kod na nowy, poprawiając jego elementy tak aby kompilator je przyjął i wygenerował "okienko"?

    0
  • #4 10 Kwi 2011 17:36
    Sam Sung
    Poziom 30  

    A FreePascal? Z tego, co wiem, kompiluje normalne exeki Win32. Zamiast programu pod DOS powinieneś uzyskać program też konsolowy, ale pod Win32.
    Co do przenośności, to zależy od tego, co i jak już zrobiłeś. Jeśli chcesz windowsowe okienka, to samo się to i tak nie zrobi; w takim wypadku może lepiej będzie jednak w Turbo Delphi.

    0
  • Pomocny post
    #5 10 Kwi 2011 18:49
    Jarosx9
    Poziom 35  

    Skoro autor chce coś okienkowego zrobić to najłatwiej mu będzie wspomnianym Delphi lub Lazarusem. Wystarczy uruchomić, dodać myszką jakiś przycisk czy coś, dwa razy na tym kliknąć i wpisać kod. Łatwiej nie będzie.
    Lazarus właśnie korzysta z Free Pascala.

    0
  • Pomocny post
    #6 10 Kwi 2011 18:57
    Dżyszla
    Poziom 42  

    FP skompiluje program jako 32 bitowy program konsolowy dla Windows. Praktycznie nie będą potrzebne żadne zmiany kodu, lub bardzo niewielkie. Wykorzystanie Delphi da lepsze efekty, lecz może wymagać niewielkich modyfikacji kodu.

    Plik wynikowy za każdym razem będzie większy ze wzgledu na sam fakt, że program jest 32-bitowy. Tak samo zajmie więcej w pamieci. Co do wydajności, to natywny tryb pracy 32-bitowy będzie szybszy nawet, jeśli będzie potrzeba przetwarzania większych ilości danych. Więc zwiększenie pliku exe oraz rozmiaru danych nie pociągnie za sobą spadku wydajności.

    Jeśli chcesz okienka, to już wybór tylko na Delphi byłby zalecany lub Lazarus. Jednak tutaj licz sie z bardzo dużym przyrostem rozmiaru pliku exe.

    0
  • #7 12 Kwi 2011 10:25
    leburaque
    Poziom 17  

    W sumie nie tyle mi zależy na rozmiarach programu, co na możliwości odpalenia kilku takich programów jednocześnie. Konkretnie wielozadaniowość mnie tu przekonuje. Rozumiem, że nawet program konsolowy staje się poniekąd 32 bitowy i przewidziane jest rozdysponowanie zasobów procesora pomiędzy takie programy?

    Kiedy kompiluję .exe w dosowskim kompilatorze, dostaję dosowski program konsolowy. W efekcie tego odpalenie pojedynczego egzemplarza "pożera" cały zasób procesora i odpalanie następnych mija się z celem. Rozumiem, że Delphi ten problem rozwiązuje.

    Bardzo dziękuję za pomoc.

    Dodano po 48 [minuty]:

    Dodam jeszcze pytanie - ponieważ do zainstalowania Delphi potrzebuje całej masy Framwork i .NET, to czy skompilowany program będzie ich wymagał?

    0
  • Pomocny post
    #9 14 Kwi 2011 00:27
    blue_17
    Poziom 32  

    Fajnie że kolega wybrał delphi borlana bo powiem tak że używam czasami lazarusa i gdyby nie doświadczenia z borlanda pewnych problemów bym nie rozwiązał co do lazarusa to jest wieloplatwormowy w przeciwieństwie do borlanda i full darmowy także do komercji

    0
  • #10 15 Kwi 2011 00:50
    leburaque
    Poziom 17  

    Po jakimś czasie pracy z Delphi widzę same plusy przerzucenia się.

    Przypomina on Turbo Pascala z bibliotekami Turbo Vision. Obiekty i klasy działają tak samo, a dużo łatwiej się tworzy dla środowiska Windows w trybie obiektowego, graficznego programowania.

    Dziękuję za skierowanie mnie w stronę Delphi.

    Pozdrawiam!

    0
  • Pomocny post
    #11 17 Kwi 2011 09:56
    kots
    Poziom 11  

    To co "pożera procesor" z programów DOSowych w Pascalu to procedura DELAY i inne pętle opóźniające.

    Sprawdź czy w tym programie są tego typu procedury lub pętle i trzeba je usunąć lub zastąpić windowsowymi metodami oczekiwania.


    Jeżeli chcesz mieć "żyjące" okienko i coś co wykonuje się długo, to możesz:
    1. rozbić go na mniejsze elementy i uruchamiać je w kolejnych cyklach
    2. dodać do tego kodu w długich pętlach przetwarzanie komunikatów Windowsa,
    3. zrobić z tego drugi wątek w programie, jak będziesz miał wprawę, to możesz uruchomić kilka wątków w jednym programie.

    Możesz też kilka razy uruchomić ten sam program

    0
  • #12 02 Maj 2011 11:03
    leburaque
    Poziom 17  

    W zasadzie dłuuugo siedziałem w Pascalu i przyznaję szczerze, że gdyby nie biblioteki Turbo Vison które wcześniej za sprawą książek Andrzeja Marciniaka (np. Andrzej Marciniak TURBO PASCAL 7.0 Z ELEMENTAMI PROGRAMOWANIA. CZĘŚĆ II: BIBLIOTEKA TURBO VISION 2.0) miałbym problem z przeniesieniem się w środowisko ściśle windowsowo-graficzne.

    Radzę się z nimi zapoznać, jeśli ktoś się będzie przesiadał, bo pozwoliły mi na gładkie przejście. Dużo się nauczyłem o obiektach, klasach etc. A przejście do wizualnego środowiska wymaga tej wiedzy.

    Co ciekawe - Delphi pozwala na całkowicie konsolowe działanie programu, ale - prawda jest taka, że z jakichś niewyjaśnionych dla mnie przyczyn konsolowy program skompilowany pod Win-Delphi działa mi szybciej niż skompilowany pod starym Turbo Pascalem. Działanie kodu nie odbiega prawie nigdy od starych pomysłów, przenoszenie się w tryb graficzny wyszło mi naprawdę na zdrowie.

    Delphi zresztą jest naprawdę świetnie rozbudowanym narzędziem, które pozwala na proste utworzenie form okienkowych. Oczywiście trzeba czytać, pytać etc, ale opłaca się.

    Temat możemy chyba zamknąć. Bardzo dziękuję wszystkim za informacje.

    0