PDAclub.pl - Forum użytkowników technologii mobilnych
Windows Mobile (Classic, Professional, Standard), Windows Phone 6.x oraz 7/8.x/10 => Oprogramowanie PPC => Dla programistów => Wątek zaczęty przez: imatefan w Sierpień 14, 2006, 01:14:35
-
Chciałem zacząć programować dla Windows CE przy użyciu Delphi, ale dałem sobie spokój i powróciłem do czystego Pascal'a. Ściągnąłem Free Pascal Compiler + Źródła oraz skompilowałem kompilator dla procesorów AMR i na koniec wykonałem port dla W CE.
A dziś natknąłem się na projekt o nazwie Lazarus. Oto Screen(nie mogłem się powstrzymać):
(http://wiki.lazarus.freepascal.org/images/e/e5/Capture_2.jpg)
Zamierzam to jak najszybciej przetestować. Co o tym myślicie?
Dla zaintersowanych LINKI:
Windows CE Port for FPC - http://www.freepascal.org/wiki/index.php/WinCE_port
Windows CE Interface in Lazarus - http://wiki.lazarus.freepascal.org/index.php/Windows_CE_Interface
-
Lazarus o ile wiem to projekt jescze niedokończony, więc
może być trochę ubytków w porównaniu do Delphi ale
ogólnie to nie jest źle. :)
-
No tak, ale jak narazie moim zdaniem Lazarus jest programem lepszym do kompilowania programów dla Win CE. Miejmy nadzieję, że programiści szybko dopracują wsparcie dla Win CE.
-
To jest to ;) Tylko zastanawia mnie dlaczego taskbar leci na dół i w jaki sposób można by budować softkeys :D
-
Szczerze to też mnie ten taksbar zdziwił ;) Dziś spróbuję stworzyć ze swojego Lazarus środowisko do programowania dla AMR.
-
Dla wciąż zainteresowanych instrukcja jak zainstalować i skonfigurować Lazarusa aby kompilował dla Windows CE oraz przykładowa aplikacja :)
Instrukcja (http://wiki.lazarus.freepascal.org/index.php/User:CCRDude)
Przykładowa aplikacja (http://ccrdu.de/files/fpc/NoFrameworkAppDemo.lpr)
-
Ja stoję przy:
Then add C:\Apps\arm to the PATH environment.
Niby dodałem, a jak próbuję wywołać arm-wince-ar to mam
"Nazwa 'arm-wince-ar' nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne, program wykonywalny lub plik wsadowy."
Cóż :) Nie poddam się ;)
-
Zmienną PATH dodajemy w Zmiennych Środowiskowych Windowsa. Mój komputer>Właściwości>Zaawansowane>Zmienne Środowiskowe :) Masz racje - nie poddawaj się.
-
Dzięki, chodzi ;) Jadę dalej :]
Teraz problem mam przy:
Create C:\Apps\Lazarus\pp\units\arm-wince\rtl, and copy C:\Apps\Lazarus\pp\rtl\units\arm-wince\*.* into it.
Ja to robię w innym folderze, dokładnie to C:\Programowanie\Apps, ale w C:\Programowaine\Appas\Lazarus\pp\units\ mam tylko i386-win32
Chociaż i tak jest już dobrze :)
-
imatefan - co ty na to?
-
Taskbar na dole to standardowe zachowanie aplikacji inicjującej okno główne w starym stylu, w stylu czystego Windows CE. ;)
-
To dobrze. W ogóle taskbar powinien być na dole :) Ale na pewno coś da się z tym zrobić. MacBirdie - masz pomysł na zrobienie softkeys lub menu? Nie wiem czy komponent TMenu załatawił by sprawę, ale czemu by nie sprawdzić :) Tylko najpierw muszę sobie poradzić z instalacją tego :D
-
Nie wiem, mam lekką awersję do takich pół-rozwiązań - sam screenshot mnie już odrzucił, a z Pascalem skończyłem na wstępie do programowania. ;)
-
ObjectPascal to bardzo dobry język, można nim zrobić to co w C++. Masz może jakieś inne propozycje co do programowania pod pockety? Może coś w C++?
-
ObjectPascal to bardzo dobry język, można nim zrobić to co w C++.
przedefiniowywanie operatorów, szablony?
i jeszcze pewnie sporo innych możliwości czyniących C++ najbardziej uniwersalnym i dającym największą swobodę programiście języku, ale nie chcę wszczynać kolejnej wojny. :)
Masz może jakieś inne propozycje co do programowania pod pockety? Może coś w C++?
jest chyba jedno jedyne - GNU Pocket C++, o którym było w tym dziale dość sporo
-
Ja też nie chcę wszczynać wojny, ale chyba zgodzisz się, że jeśli ktoś umie to potrafi uzyskać taki sam efekt kodem w ObjectPascal, co w C++? Bo przecież w tym przypadku liczy się efekt, nie wnętrze kodu.
Sprawdzę ten Pocket C++, ale Lazarusem też się pobawię :)
-
Panowie to topic o Lazarusie, a nie o C++ :P Nie no żaruję oczywiście a jeśli chodzi o twój wcześniejszy post BatSk8 to szczerze mówiąc u mnie też nie ma tego katalogu i z kompilacji nici. Niby wszystko się ładnie skompilowało, ale gdy próbuję coś skompilować w Lazarusie dla WinCE to wyświetlają się błędy o braku bibliotek dla ARM. Jeszcze popróbuję a jak nic nie wyjdzie to napisze do supportu.
Jeśli chodzi o C++ to naturalnie jest ono lepszym środowiskiem do programowania dla Pocketów, ale Lazarus może być pewną alternatywą.[/img]
-
Mógłby Ktoś
napisać poradnik "krok po kroku"
jak skompilować (przygotować)
lazarusa z portem WinCE do pracy?
z góry dziękuję
KrzysiekS
-
Przeczytaj cały temat to dowiesz się, że nikomu to się jeszcze nie udało, bo nie mamy potrzebnej biblioteki. Jak będę miał czas to jej poszukam.
-
ftp://ftp.freepascal.org/pub/fpc/contrib/cross/gdb-6.4-win32-arm-wince.zip
Może warto z tym spróbować :)
-
To chyba jest debugger ;)
-
Nie sprawdzałem, ale to jedyne "coś" typu arm-wince, które udało mi się znaleść w sieci :) Jak można pisać tutoriala nie podając wszystkich składników...
-
kurcze kombinujesz jak kon pod gorke probujac skompilowac tego Lazarusa, a masz pod tym adresem co podales (http://wiki.lazarus.freepascal.org/index.php/Windows_CE_Interface) juz skompilowana wersje (na dole strony), a dokladniej to tu masz link:
http://www.see-cure.de/files/lazarus-arm-wince-20060707.7z
-
Ja pierdykam. Dzięki, już sprawdzam ;) Poza tym lepiej samemu się męczyć niż użyć gotowca :D
edit
Faktycznie chodzi! Próbuję wykrzesać jakąś aplikację :D
-
A udało Ci się już coś skompilować?
-
Jeszcze zmieniam konfigurację w plikach. Nie mam czasu by to wszystko skończyć, ale jest arm-wince w środku :) Tak więc będzie dobrze :)
-
Zrobiłem. Działa kompilowanie :) Robię testy na PPC ;)
Na kompie jest:
"project1.exe nie jest prawidłową aplikacją systemu Win32." - pierwszy raz jestem szczęśliwy widząc taki komunikat :D
Edit
(http://img170.imageshack.us/img170/592/lazarusom9.jpg)
Skompilowałem tą aplikację, do której dałeś link. Efekt:
Bądźmy szczęśliwi używając ObjectPascala na PPC!!!!!!!!!!!!!!!!!!!!!!!!!!! :D
Edit2
Właśnie kombinuję robiąc coś swojego :)
-
Brawo brawo BatSk8 :) Jak ja znajdę trochę czasu to też coś pokombinuję.
Pozdrawiam.
-
Zauważyłem kilka niedociągnięć. Mianowicie każdy skompilowany Lazarusem program w WM5 wygląda jak proces, na taskmanagerze nie jest jako zadanie, tylko siedzi w procesach. W dodatku ma przycisk "OK" w rogu, zamiast krzyżyka. Jakkolwiek próbowałem rysować okno, to i tak nie chodziło jak trzeba.
-
A może mi ktoś wyjaśnić o co chodzi z tym SVN??
http://www.freepascal.org/develop.html#svn
-
Problem mam również z tym:
Step 3 - The Build process
In order to build the cross compiler it is necessary to have a correct PATH environment variable. On Windows it is very easy to get a PATH crowded with information put by installers. To ensure that your path is correct, create a batch file with the following code:
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\arm
make cycle CPU_TARGET=arm OS_TARGET=wince
Put this file on C:\Programas\fpc\compiler, open the Windows command line, go to this folder and execute the batch file.
On the end of the compile you should not see any errors.
Chodzi o to że napisali o pliku Bat, a windows mówi o jakiś błędach.
-
SVN to jeden ze składników.
A co do tego kroku, to wystarczy, że zrobisz taki plik bat, wrzucisz do tamtego folderu i odpalisz. Ewentualnie dodajesz tylko te ścieżki po PATH= do zmiennej środowiskowej path i z cmd wpisujesz make cycle...
W każdym razie polecam bardziej użycie już skompilowanej paczki, o której była mowa. Tam wystarczy tylko skonfigurować ścieżki i Lazarusa i będzie gotowe ;)
-
SVN to system kontroli wersji, następca CVS. Jest to w uproszczeniu repozytorium aktualnych wersji kodu, w tym przypadku Free Pascala.
-
Akurat dziwne że ten plik lazarus-armwince.bat podczas procesu pokazuje mi że nie może znaleźć tego pliku na serwerze a potem pokazuje co chwilę Error ... File not found ... Fatal error ... Compile error itp. mimo że wałkuję ten temat i pomoce internetowe co chwilę jak to zrobić po kolei itp.
:wkurzony: Będe musiał przeinstalować lazarusa, bo coś się zsypało i nie chce kompilować.
-
MacBirdie - a ja myślałem, że to jakaś biblioteka czy coś, bo amerykanie jak to amerykanie nigdy nie potrafią niczego normalnie opisać ;)
Ja to zrobiłem tak:
1. Postępowałem zgodnie z instrukcją
2. W pewnym momencie można zorientować się, że brakuje pewnych bibliotek arm-wince, o których tam jest mowa, wtedy należy pobrać paczkę z jednego z tych opisów i uzupełnić wszystko brakującymi plikami
3. Należy wykonać kompilację Lazarusa
4. Trzeba w Lazarusie zmienić kompilator na arm-wince i OS na WinCE, potem w ustawieniach środowiska i edytora wszystkie ścieżki do Twojej instalacji Lazarusa i wszystko chodzi :)
Nie umiem dokładnie tego opisać bo nie pamiętam co po kolei robiłem, ale tu trzeba kombinować jak ze wszystkim ;)
-
Ok. Zrobiłem tak jak napisałeś i mi został jeszcze ostatni błąd:
(http://kaim.internetdsl.pl/krzysiek/pocketpc/lazarusblad1.gif)
-
Dodajesz do projektu moduł Interfaces, a nie ma u Ciebie takiego ;) Poza tym na pocketa programowanie z formami nie wyjdzie :) Musisz wszystko sam "rysować" ;]
-
Noo, ale ja jeszcze nic nie dodawałem do formy. Chodzi ci o to aby zrobić program bez formy i ręcznie pisać wszystkie obiekty??
-
Windows Mobile nie obsługuje okien, więc nie możesz używać form z Lazarusa. Co innego dedykowane programy do programowania dla PPC - niektóre mają obsługę form i można tworzyć okna popup, ale główne okno jest (niestety) zawsze full screen. Tworzysz formę, na niej taskbar, dolne menu i przyciski menu. Dużo roboty, ale cóż ;) Przykład masz w linku "przykładowa aplikacja", który podał imatefan. Sam to analizowałem na początku i teraz już wiem jak to udoskonalać i ulepszać, jednak Lazarus to nienajlepszy pomysł, jak się okazało, co do programowania na pockety ;)
-
Mozna tez wykorzystac dynamiczne tworzenie komponentów, jednak niewiem czy w FreePascal takie cos sie znajdzie.
-
Mozna tez wykorzystac dynamiczne tworzenie komponentów, jednak niewiem czy w FreePascal takie cos sie znajdzie.
-
Z komponentów takich jak buttony, panele, labele itp. możesz korzystać, bo i tak rysuje je Windows. Możesz je tworzyć za pomocą funkcji CreateWindow i określasz wysokość, szerokość oraz marginesy od góry i od lewej strony. Potem odpowiednio sprawdzasz czy kliknięty param to twój właśnie button (każdy sobie nazywasz, każdy też jest THandle) i klepiesz akcję, jaką ma wykonywać :)
-
A jak masz wszystko ustawione w "Ustawieniach Środowiska" i "Ustawienia Odpluskiwacza".
-
Okazuje się że to wszystko się sypie. Jak dodam przed Interfaces jakiś inny Unit, np.aaa to wtedy "Can't find unit aaa". Coś tu musi być, ale niewiem co.
-
(http://img176.imageshack.us/img176/9513/lazar1ld7.gif)
(http://img174.imageshack.us/img174/6637/lazar2fi4.gif)
Nie dodawaj żadnych unitów. Możesz stworzyć osobne pliki z API lub z jakimiś funkcjami, ale to lazarus na pockety to bardziej TurboPascal niż ObjectPascal, więc tego nie wychwytuje. To jest całkiem inna filozofia niż Delphi ;)
-
:kill: Cały czas mu coś brakuje a setny raz postępuję z instrukcjami. :wkurzony:
-
Hehe Dziaała!!!! :mrgreen:
(http://kaim.internetdsl.pl/krzysiek/pocketpc/prog1.png)
Nietety ale do utworzenia aplikacji trzebabyło nawrzucać te wszelkie biblioteki tam gdzie jest napisany program aby lazarus go skompilował. A na karcie sam exe działa bez problemu. Jedyną wadą są ogromne rozmiary 9MB!!!.
(http://kaim.internetdsl.pl/krzysiek/pocketpc/prog2.png)
Działa nawet bezpośrednie wrzucanie przycisków!! :D
-
Ty mi tylko wyjaw sekret jak Ty to zrobiłeś na formach :D To zmienia postać rzeczy! Wracam do kombinowania :D
edit
processor - jak to zrobiłeś? Jeśli idzie normalnie używać form tam to :surprised: jaki ja mam pomysł, o :surprised: :surprised: :terrified: :worried: :worried: Ha! Pisz szybko jak to zrobiłeś ;)
-
No niewiem? Jakoś mi wyszło. Najpierw po uruchomieniu tworzy się zama aplikacja i przy uruchamianiu woła o moduł Interfaces lub inny. Zapisałem to do jednego katalogu a potem przez "szukaj" w Windows Commanderze kopiowałem pliki z katalogów lazarusa tam gdzie jest ten program aż nie skończy wołać o brakujące pliki. Potem jak poprawnie zapisał program wywalił błąd że stworzony plik nie jest wykonywalny i takie tam. Wrzuciłem to na emulator, a potem aby potwierdzić na kartę i na Pocketa i działa!!
-
Niestety ale już jest błąd gdzie chcę coś dopisać do przycisku i do innego.
-
Skopiowałem wszystko co było trzeba i mam teraz:
C:\Programowanie\Apps\PC Mobile\LMessages.pp(31,31) Fatal: Circular unit reference between LMessages and Messages
Jak to zrobiłeś, że działa? :D
-
Sam już niewiem ale nie da się przypisać akcji do żadnego obiektu. Ehh... Chyba przesiąde się na BDS2006. A jak nie będzie działać to zrobię format C:/ i potem zainstaluję C++'a.
-
Dla mnie teraz ważne, żeby to uruchomić tak jak zrobiłeś. Z akcjami jakoś to się wymyśli ;) Czy tą formę idzie przesuwać? Możesz to tu zamieścić?
-
Dla mnie teraz ważne, żeby to uruchomić tak jak zrobiłeś. Z akcjami jakoś to się wymyśli ;) Czy tą formę idzie przesuwać? Możesz to tu zamieścić?
:cry: Niestety usunąłem, ale da się przesuwac bez problemów.
-
Ja pierdykam! I to jest wniosek! Teraz już wiemy, że wszystkie programy na PPC to jedna wielka lipa, bo nie da się np. bezpośrednio czegoś kopiować z jednego folderu do drugiego w dwóch oknach. A Windows Mobile wspiera okna tak samo jak Windows CE, tylko zostały one wycofane chyba na sam pomysł Microsoftu, to jest głupota totalna, nigdy nie zrozumiem jak można bylo wpaść na tak debilny pomysł. Ale tu się da coś zrobić, spróbuj skompilować jeszcze jeden taki testowy program np. z dwoma formami i załącz tutaj.
Teraz role się odwróciły - nie wiesz czemu mi wywala byka jak już nawet skopiowałem wszystkie plik *.pp do katalogu z programem? Nawet ten Messages jest ;)
-
Nie wiem czy was zainteresuje, pod adresem http://ccrdu.de/ znajduje się lekki framework dla WinCE pod Pascala, wszystko należy wypisywać z kodu a programy zajmują ok 100kb
(http://ccrdu.de/images/miniguidemoscreen1.png)
Inną ciekawostką jest rozpoczęcie prac nad symbianową (UIQ) wersją FreePascala (a później LCL - Lazarus)
-
Hej :)
Jak postępy w programowaniu?
Muszę sobie napisać coś na iPAQa żeby w VPN pracować - ponieważ ostatnia dystrybucja zeosdb zawiera wersje dla lazarus zastanawiam się czy warto to instalować... Czy udało się coś zrobić poza formą? Mnie potrzebna jest aplikacja opreująca na MySQL...
-
Poza formą udało się, da się pisać wszystko jako aplikacje, gdzie trzeba tworzyć okna kodem źródłowym, a na zasadzie obiektowości z formami i obiektami to kwestia poprawnych ścieżek. Z bazami danych w Lazarusie nie ma problemu. Musisz po prostu spróbować skompilować Twój projekt Lazarusa pod ARM, oczywiście pod poprawnie skonfigurowanym Lazarusem.
-
wszystko należy wypisywać z kodu a programy zajmują ok 100kb
Można jeszcze spakować UPXem to będzie zajmować jeszcze mniej (tak ok. 40-60KB).
Mam czas więc spróuję tak napisać program.
-
Tak cała instalacja plików, kompilatorów, bobliotek do larazusa tak długo trwa że aż głowa może rozboleć. Narazie skołczyłem tak 2/3 roboty z instalacją całóści i moneło chyba 1.5-2h :wkurzony: Jakby nie można bylo zrobić zwykłego instalatora tylko jakieś SVNy itp.
-
Teraz ja męczę Lazarusa ale mam problem z autogeneracją procedur zdarzeń ciągle mi wyrzuca:
http://www.fotosik.pl/pokaz_obrazek/6f02a41489717644.html
Jak na sztywno wpisałem deklarację to mi tak lawinowo kolejne moduły chciał :/ ... Chyba muszę gdzieś ustawić ścieżki do tych katalogów z unitami dla platformy "arm-wince" ... tylko gdzie...
Ja siedzę w delphi ,a lazarus jako IDE w konfiguracji mnie zabija, w delphi po prostu ustawiam/dodaję "Search Path" ścieżkę do katalogu z *.pas/dcu i działa ,a Lazarus :terrified:
-
Nie wiem czy was zainteresuje, pod adresem http://ccrdu.de/ znajduje się lekki framework dla WinCE pod Pascala, wszystko należy wypisywać z kodu a programy zajmują ok 100kb
[...]
Wszystko ładnie pięknie, tylko jak to użyć ? Wymagany jest do tego lazarus czy też wystarczy FreePascal z kompilatorem dla ARM/CE ?
Zainstalowałem sobie FP w wersji 2.0.4, "zrobiłem" ppcrossarm.exe według przepisu ze strony FreePascal CE, pobrałem pliki wykorzystywanych bibliotek (pkStrings, pkWinInet) i przy próbie kompilacji dostaje błąd, że Result jest niepoprawnym identyfikatorem (dziwne...) :/
Dodam, że system, na któym pracuję (niestety) to przeżytek WinNT, a na nim Lazarus nie działa poprawnie - nie działają mi opcje w Menu :(
Jak to jest z tym FrameWorkiem ? Uruchomił go ktoś jeszcze ?
-
I jak idzie pisanie aplikacji w tym ustrojstwie?
Mógłby ktoś "łopatologicznie" opisać
jak przygotować środowisku do kompilacji na ppc?
krzysieks
-
krzychs - pobierz sobie skompilowane środowisko, poustawiaj tylko zmienne PATH jak i ścieżki do plików (wszystko jest opisane na poprzednich stronach), potem ruszy. Wzoruj się na testowej aplikacji, też została załączona. Potem wszystko już jakoś idzie ;)
-
czy to jest poprawne ?
http://www.see-cure.de/files/lazarus-arm-wince-20060707.7z
bo ja mam problem z rozpakowaniem, unpaker mi powiada ze to nie jest poprawny plik :/
-
Spróbuj Total Commanderem albo WinRar. U mnie rozpakowało normalnie.
-
czy to jest poprawne ?
http://www.see-cure.de/files/lazarus-arm-wince-20060707.7z
bo ja mam problem z rozpakowaniem, unpaker mi powiada ze to nie jest poprawny plik :/
Czy po zainstalowaniu ww. archiwum wszystko jest już prawidłowo poustawiane (aby można było kompilować
dla wince), czy trzeba jeszcze "coś" poustawiać?
AniaS
-
No nie wiem. Pliki po skompilowaniu w Lazarusie są bardzo duże, minimalny rozmiar to 5MB a dla PPC to niedopuszczalne.
-
moglby mi ktos pomoc przez gg w konfiguracji lazarusa do aplikacji na win ce, ni holere nie moge tego zrobic sam :/
albo jakby ktos powiedzial jak dodac sciezke z folderem do sciezki?
[ chodzi mi o tego tutka http://wiki.lazarus.freepascal.org/index.php/User:CCRDude gdzie koles pisze Add C:\Apps\Lazarus\pp\bin\i386-win32 and C:\apps\Lazarus\pp\bin\arm-wince to the PATH environment. ]
hilfe mi! ;P
-
No przecież masz paczkę już skonfigurowaną, wystarczy pobrać i odpalić. Potem sobie zmieniasz katalogi jak chcesz.
Fajnie by było jakby jakiemuś mózgowcowi chciało się posiedzieć nad tym Lazarusem i wszystko poprawić tak, żeby dało się kompilować normalne projekty z formami i kontrolkami (choćby tylko standardowymi), to by była potęga wtedy.
-
No przecież masz paczkę już skonfigurowaną, wystarczy pobrać i odpalić. Potem sobie zmieniasz katalogi jak chcesz.
Fajnie by było jakby jakiemuś mózgowcowi chciało się posiedzieć nad tym Lazarusem i wszystko poprawić tak, żeby dało się kompilować normalne projekty z formami i kontrolkami (choćby tylko standardowymi), to by była potęga wtedy.
Tej paczki już nie ma, ale z tego co widzę jest chyba coś lepszego :) Wystarczy z SF'a ściagnąć Lazarusa pod Windowsa i ściagnąć jeszcze odpowiadajacy tej wersji cross compiler dla arm/wce dla lazarusa (z tej samem gałęzi co lazarus):
http://sourceforge.net/project/showfiles.php?group_id=89339&package_id=105599 (http://sourceforge.net/project/showfiles.php?group_id=89339&package_id=105599)
czyli ściagamy np: Lazarus-0.9.24-fpc-2.2.0-20071114-win32.exe (http://downloads.sourceforge.net/lazarus/Lazarus-0.9.24-fpc-2.2.0-20071114-win32.exe?modtime=1195096448&big_mirror=1) po czym instalujemy i ściągamy crosscompilera Lazarus-0.9.24-fpc-2.2.0-20071105-cross-arm-wince-win32.exe (http://downloads.sourceforge.net/lazarus/Lazarus-0.9.24-fpc-2.2.0-20071105-cross-arm-wince-win32.exe?modtime=1194302893&big_mirror=1) i instalujemy. Teraz wysatrczy odpalić Lazarusa, usatwić wszystko na WinCE/ARM (tj. Widget LCL: winCE; Docelowy OS: wince; Docelowy CPU: arm) i powinno działać.
Ale kurna jak zejść z 10MB plików :| to już zagadka.
-
strip --strip-all nazwa_programu
:mrgreen:
-
Sanjuro : zrobilem wszystko wg. Twojej instrukcji , zrobilem mala forme zeby sie zmiescila na ekranie ale program wciaz odpala sie na PC a na PDA sie nie wlacza (laduje sie i laduje i koniec)