Ze strony www.xharbour.com
ściągnąłem wersję demonstracyjną Visual Xharbour. Zacząłem testy próbnych
programów z podkatalogu samples.
System kopiuje te programy do katalogu Moje Dokumenty\Visual xHarbour
Projects .
Ujawniły sie błędy podczas testów. System uporczywie psuje plik XDB.rc z
podkatalogu resources. Wyskakują komunikaty błędu Number
expected i Begin expected , i trzeba ten plik
nadpisywać oryginalnym plikiem ze źródeł.
9 września 2008. W programie xdb wersja 3.0 poprawiłem błąd
działania przy funkcji Apppend. Występowało przesunięcie pól o 1 i
przy ostatnim polu występował błąd wykonania z przekroczenia tablicy.
Wystąpił następny błąd przy edycji pola numerycznego, który usunąłem
wprowadzając konwersję przy pomocy funkcji val().
Ujawniła się dwuznaczność w definicji pola numerycznego przy pomocy Visual Foxpro literą "I" ,podczas gdy program XDB wstawia oznaczenie
literą "N".
Uzupełniłem program o możliwość rozpoznania także oznaczenia "I"
jako taki sam typ numeryczny jak dla litery "N".
Poprawiony plik źródłowy można ściągnąć stąd:
xdb3_1.zip
10 września 2008. W programie otwierającym bazę danych instrukcja use
podczas testowania z poziomu kompilatora program nie znajduje bazy danych,
natomiast przy testowaniu w oknie komend program znajduje bazę danych
umieszczoną w swoim katalogu.
12 września 2008. Program XBuilder aktualizuje nazwy procedur po
zmianie nazwy przycisku (obiekt button). Ale się myli i zmienia nazwę
przycisku we wszystkich formach ,w których wystąpiła ta nazwa. I potem jest błąd
kompilacji. Brak procedury ONClick w drugiej formie.
Utworzyłem prosty program skarb do pracy z tabelą dochodów z najmu.
Przegląda on określoną tabelę z możliwością dopisywania, edycji, kasowania i
przywracania rekordów. zródła:skarb.zip
.
13 września 2008. Okazało się, że XBuilder wyrzuca na błąd
AMBIGUOUS REFERENCE nazwę pola w instrukcji poprawnej w starym
Clipperze.
Trzeba użyć postaci nazwa_Aliasu->Nazwa_pola , to błąd kompilacji
zniknie..
Przykład kodu: USE Customers alias klienci
INDEX ON Upper( klienci->LastName) TO Cust01
15 września 2008. Utworzyłem drugi program do edycji tabeli z fakturami
kosztów uzyskania przychodów. Program edytuje dwie tabele rachunki i pozycje
rachunków. Źródła: Skarb2.zip
17 września 2008. Udało mi sie przy pomocy XHarbour Project Builder
(demo) skompilować program wielonakładkowy
Solid. Program dał się uruchomić. Były
drobne różnice odnośnie wymagań językowych.
W plikach źródłowych występują dyrektywy PUBLIC. Kompilator zgłaszał
błędy ,że są one na zewnątrz procedur. Aby te błędy zlikwidować, wstawiałem na
początku plików źródłowych deklaracje Procedure z inną nazwą niż główna
część nazwy pliku źródłowego.
Zmieniłem zapis file('&baza'+'.mem') na file(baza+'.mem'),
ponieważ w nowym programie wynikowym źle działała instrukcja if
file('&baza'+'.mem') i niesłusznie sygnalizowała brak pliku. Utworzony
plik [projektu solid.exe.xbp
18 września 2008. Podczas prac nad przeróbką na Clipper XHarbour (przy
pomocy XHarbour Project Builder demo) swojej aplikacji Finanse
stwierdziłem, że Instrukcja SET FORMAT TO nazwa_procedury
nie jest obsługiwana w XHarbour. Trzeba przerobić kod z
jej użyciem.
20 września 2008. Wykonałem testy na obsługę drukowania w Clipperze Xharbour.
Programy utworzyłem z kodu przykładowego z manuala.
Funkcja GetPrinters() zwraca tablicę z nazwami drukarek dostępnych
w systemie.
Funkcja GetDefaultPrinter() zwraca kod domyślnej drukarki. Te
nazwy można podstawiać do instrukcji Set Printer To, aby wybrać
drukarkę do drukowania.
Archiwum kodów tych programów drukarz.zip.
22 września 2008. Wykonałem testy kilku programów z manuala do obsługi
myszy.
W manualu "xHarbour Language Reference Guide.chm" zadałem zapytanie
Mouse
i skompilowałem przykłady kodów dla kilku tematów inkey(), lastkey(),
hitcode, mrow(), menu, SET EVENTMASK, achoice,dbedit,TBrowse,TopBarMenu. Pliki źródłowe umieściłem w archiwum
mysz.zip.
Dla programu mysz_menu1.prg wprowadziłem przed wywołaniem instrukcji
MENU TO instrukcje SET EVENTMASK to INKEY_ALL.
Spowodowało to reagowanie instrukcji MENU TO na kliknięcie myszy.
Ponieważ powstawało zaburzenie działania instrukcji BROWSE , to w
obsłudze menu wyłączyłem działanie myszy przez instrukcję: SET EVENTMASK TO
INKEY_KEYBOARD.
Podobnie aktywowałem mysz w programie mysz_achoice1.prg. Ale tam
nie było zaburzeń instrukcji memoedit, więc nie wyłączam myszy w funkcji
obsługi instrukcji achoice.
25 września 2008. Doprowadziłem do końca kompilację przy pomocy
XHArbour Project Builder mojego wielonakładkowego programu Finanse.
Podczas linkowania wyszły dwie sprawy: podprogramy ze starszej biblioteki
IDL -linker nie znajdował ich w bibliotece.
Makroinstrukcja #translate d_kwoty przy podstawieniu tylko pierwszych
czterech z sześciu parametrów spowodowała błąd linkowania tej funkcji i
program finanse.exe nie został utworzony.
W przypadku Clippera 5.2 jest też błąd linkowania, ale program
finanse.exe został utworzony i może źle działać.
26 września 2008. Utworzyłem symulację menu w programie
mysz_inkey2.prg.
Wmontowałem instrukcje SET EVENTMASK to INKEY_ALL
w programach wielonakładkowych Solid i Finansedo instrukcji MENU TO.
Aby nie zaburzać innych funkcji wyłączam tę opcję po wybraniu pozycji Menu
myszą
przez instrukcję SET EVENTMASK TO
INKEY_KEYBOARD.
27 września 2008. Skompilowałem pod XHarbour program Sklep.
Tylko szukam zamienników funkcji z biblioteki IDL.
Podaję tabelę zamienników.
funkcja IDL | funkcja XHArbour |
F_Rename() | FRename( <cOldFile>, <cNewFile> ) --> nSuccess |
F_Write |
FWrite( <nFileHandle>, ; <cBuffer> , ; [<nBytes>] , ; [<nOffset>] ) --> nBytesWritten |
F_PROT ,F()_Unprot() | SetFAttr( <cFileName>, [<nAttributes>] ) --> nErrorCode |
F_COUNT |
ADir( [<cFileMask>], ; [<aName>] , ; [<aSize>] , ; [<aDate>] , ; [<aTime>] , ; [<aAttr>] ) --> nDirEnries |
cur_drive() | CurDrive( [<cNewDrive>] ) --> cOldDrive |
chdir() | DirChange( <cDirectory> ) --> nOSError |
mkdir | MakeDir( <cDirectory> ) --> nOSError |
Clock() | ShowTime( [<nRow>] , ; [<nCol>] , ; [<lHideSecs>], ; [<cColor>] , ; [<l12h>] , ; [<lAmPm>] ) --> cNull |
Będzie z tym więcej roboty. Trzeba szukać w manualu File Functions.
1 października 2008. Przekompilowałem program wielonakładkowy
wpr_fak.exe do faktur wewnętrznych.
4 października 2008. W programie Finanse wprowadziłem obsługę
myszy dla instrukcji menu i achoice. Dla ostrożności wyłączam mysz po
zakończeniu tej instrukcji.
Wprowadziłem też składowanie danych z bazy Access do formatu DBF.
5 października 2008. W moim pliku definicji dla PSPAD FOXPRO.def
wprowadziłem definicje dla instrukcji obsługi myszy w Clipperze. Patrz:Mój
Pspad
Linki
Data aktualizacji strony: 2009-03-22
Licznik odwiedzin