PDAclub.pl - Forum użytkowników technologii mobilnych
Pozostałe platformy => Oprogramowanie Palm OS => Palm OS => Perły z lamusa => Palm OS (dev) => Wątek zaczęty przez: isthar w Lipiec 23, 2001, 15:31:00
-
potrzebuje w moim programiku na palmos dynamicznie zmieniac stan
roznych widgetow (np. list) aby to osiagnac potrzebuje wyciagnac
z bazy danych strukture objektu ktory sie zmienia. I tu napotkalem
na pierwszy problem.
w wiekszosci przykladow jest definicja:
a potem w jakiejs funkcji instrukcje otwarcia bazy resource'ow
DmOpenRef dbrp;
dbrp = DmOpenDatabaseByTypeCreator ('rsrc', appFileCreator, dmModeReadWrite);
z tego co zauwazyle to definicja appFileCreator nie nadaje mi
identyfikatora dla mojego programu i moja baza danych nie otwiera sie.
interface zrobilem sobie w *prcui* prubowalem nadac sobie id
takze w taki sposob:
APPLICATION ID MojProgram 'xyz1'
tak by byly takie same jak w definicji ale i to nie pomaga.
-
Po pierwsze: sciagnij sobie xPDB:
http://www.geocities.com/SiliconValley/Circuit/2090
xPDB to aplikacja windowsowa do dumpowania baz danych, czyli do podgladu jej naglowka i poszczegolnych rekordow.
-
Po drugie: Czy Ty chcesz otworzyc baze zasobow, ktore sa umieszczone razem z kodem binarnym w pliku .prc? Jestes pewien, ze CreatorID Twojej aplikacji + string 'rsrc' (oznaczajacy typ bazy) maja Ci dac dostep do zasobow? Moze to inny string, a 'rscr' byl tylko przykladem.
Definicje wszystkich typow znajduja sie w SDK w pliku
sdk\include\Core\System\SystemResources.h
-
W podreczniku O\'Relly (PDF) napisane jest tak:
--
A resource is a relocatable block marked with a four-byte type (usually represented as four characters, like
CODE or tSTR) and a two-byte ID. Resources are stored in a resource database (on the desktop, these files
end in the extension .PRC).
An application is a resource database. One of the resources in this database contains code, another resource
contains the application\'s name, another the application\'s icon, and the rest contain the forms, alerts, menus,
strings, and other elements of the application. The Palm OS uses these resources directly from the storage
heap (after locking them) via the Resource Manager.
--
Byc moze wiec zamiast \'rsrc\' powinienes wstawiac typ konkretnego zasobu. Kody zasobow znajduja sie w:
sdk\\include\\Core\\UI\\UIResources.h
Sam nigdy tego nie robilem, wiec moze byc tak, ze myle pewne pojecia..
-
Chyba jednak zle mowie - typ zasobu i typ bazy to dwie rozne rzeczy..
-
Oczywiscie, ze namieszalem. Potrzebujesz otworzyc baze pliku .prc. Jej typ to 'appl'. Zasoby sa rekordami tej bazy. Zasoby sa roznych typow. Typ zasobu musisz znac do operacji z rodziny DmBlaBlaResourceBlaBla();
wiec powinienes zaczac od:
dbrp = DmOpenDatabaseByTypeCreator ('appl', appFileCreator, dmModeReadWrite);
a potem na przyklad:
DmNewResource(dbrp, 'tSTR', 0, sizeof(iles_tam));
Jak cos sie uda zrobic to sie podziel spotrzezeniami, ok?!
-
na razie sie nie da ...
mam cos takiego
int * dbrp;
dbrp = DmOpenDatabaseByTypeCreator('appl',appFileCreator, dmModeReadWrite);
if (dbrp) {
WinDrawChars("Cool",4,10,10);
}
else{
WinDrawChars("Disaster",8,10,10);
}
no i wyswietla mi sie disaster :
-
Hmm.. Proba otwarcia bazy moze skonczyc sie pomyslnie lub z bledem. Typow bledow jest mnostwo. Moze warto by zobaczyc, ktory z tych bledow jest zwracany?
Przy okazji.. Brakowalo mi czegos takiego jak WinDrawChars() do szybkiego debugowania - dzieki za pomysl :)
-
Przy okazji.. Brakowalo mi czegos takiego jak WinDrawChars() do szybkiego debugowania - dzieki za pomysl :)
W prc-tools jest printf() :) Ale najlepsze moim zdaniem jest polaczenie Emulatora z PalmReporter oraz funkcji HostTraceOutputBlaBla()