Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00466 008264 11004460 na godz. na dobę w sumie
Delphi. Leksykon kieszonkowy - książka
Delphi. Leksykon kieszonkowy - książka
Autor: Liczba stron: 176
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-510-5 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> delphi - programowanie
Porównaj ceny (książka, ebook, audiobook).

W dobie pracy pod presją czasu coraz popularniejsze stają się wizualne środowiska programistyczne, dzięki którym autorzy aplikacji mogą szybciej i efektywniej tworzyć nowe produkty. Wśród takich środowisk zasłużonym uznaniem cieszy się Delphi. Oparte na Pascalu środowisko umożliwia szybkie tworzenie różnego rodzaju aplikacji dla systemu Windows. Zaimplementowana w Delphi wersja Pascala, nosząca nazwę Object Pascal, została znacznie rozbudowana w porównaniu z oryginałem -- posiada wiele możliwości, których nie znajdziemy w wersji standardowej. Z tego właśnie względu krótka i zwięzła 'ściąga' zawierająca opis tego języka może okazać się niezwykle przydatna programistom.

Książka 'Delphi. Leksykon kieszonkowy' jest taką właśnie ściągawką. Zawiera krótkie omówienia wszystkich klas, funkcji i procedur oferowanych przez Object Pascala oraz zwięzłe wprowadzenie do środowiska Delphi. Nie stanowi podręcznika programowania, ale raczej pomoc dla tych programistów, którzy poznali już podstawy Delphi i pogłębiają swoją wiedzę.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Delphi. Leksykon kieszonkowy Autor: Waldemar Pokuta ISBN: 83-7361-510-5 Format: B6, stron: 176 W dobie pracy pod presj¹ czasu coraz popularniejsze staj¹ siê wizualne ġrodowiska programistyczne, dziêki którym autorzy aplikacji mog¹ szybciej i efektywniej tworzyæ nowe produkty. Wġród takich ġrodowisk zas³u¿onym uznaniem cieszy siê Delphi. Oparte na Pascalu ġrodowisko umo¿liwia szybkie tworzenie ró¿nego rodzaju aplikacji dla systemu Windows. Zaimplementowana w Delphi wersja Pascala, nosz¹ca nazwê Object Pascal, zosta³a znacznie rozbudowana w porównaniu z orygina³em — posiada wiele mo¿liwoġci, których nie znajdziemy w wersji standardowej. Z tego w³aġnie wzglêdu krótka i zwiêz³a „ġci¹ga” zawieraj¹ca opis tego jêzyka mo¿e okazaæ siê niezwykle przydatna programistom. Ksi¹¿ka „Delphi. Leksykon kieszonkowy” jest tak¹ w³aġnie ġci¹gawk¹. Zawiera krótkie omówienia wszystkich klas, funkcji i procedur oferowanych przez Object Pascala oraz zwiêz³e wprowadzenie do ġrodowiska Delphi. Nie stanowi podrêcznika programowania, ale raczej pomoc dla tych programistów, którzy poznali ju¿ podstawy Delphi i pog³êbiaj¹ swoj¹ wiedzê. • Struktury danych • Konwersja i formatowanie danych • Operacje na ci¹gach tekstowych • Funkcje matematyczne • Sterowanie przebiegiem programu • Operacje wejġcia-wyjġcia • Elementy interfejsu u¿ytkownika • Obs³uga multimediów Spis treści Od Autora................................................................................. 7 Wstęp......................................................................................... 7 Rozdział 1. Język Object Pascal ......................................... 8 Struktura programu...................................................g...............................8 Struktura modułu ...................................................g..................................9 Deklaracje...................................................g..............................................10 Wyrażenia ...................................................g.............................................13 Definicje procedur...................................................g................................14 Definicje funkcji...................................................g....................................15 Instrukcje proste...................................................g...................................16 Instrukcje złożone ...................................................g................................18 Rozdział 2. Struktury danych ............................................ 25 Typy porządkowe...................................................g................................25 Typy rzeczywiste ...................................................g.................................30 Typ napisowy...................................................g.......................................33 Typy złożone ...................................................g........................................34 Typy wskaźnikowe...................................................g..............................42 Typy proceduralne ...................................................g..............................48 Typy wariantowe...................................................g.................................51 Klasy ...................................................g...................................................g...54 Rozdział 3. Konwersja i formatowanie ........................... 63 Rzutowanie typów...................................................g...............................63 Konwersje typów liczbowych ...................................................g............66 Konwersja miar kątowych ...................................................g..................68 Formatowanie napisów...................................................g.......................69 Odczytywanie napisów...................................................g.......................73 Standard Unicode ...................................................g................................74 Spis treści 3 Rozdział 4. Napisy................................................................ 75 Podstawowe operacje...................................................g..........................75 Napisy kończone zerem...................................................g......................79 Narzędzia MBCS...................................................g..................................83 Rozdział 5. Matematyka ..................................................... 85 Arytmetyka...................................................g...........................................85 Trygonometria...................................................g......................................89 Logika...................................................g...................................................g.91 Generatory liczb losowych ...................................................g.................93 Statystyka...................................................g..............................................93 Biznes i finanse...................................................g.....................................95 Rozdział 6. Sterowanie programem .................................. 98 Procedury kończące...................................................g.............................98 Wątki ...................................................g...................................................g..99 Procesy ...................................................g................................................103 Przekierowywanie programu...................................................g...........105 Zdarzenia i akcje ...................................................g................................106 Obsługa wyjątków...................................................g.............................107 Rozdział 7. Operacje wejścia-wyjścia ........................... 111 Pliki...................................................g...................................................g...111 Strumienie plikowe...................................................g............................121 Rozdział 8. Obsługa systemu........................................... 128 Środowisko ...................................................g.........................................128 Rejestr systemowy ...................................................g.............................130 Informacja o systemie...................................................g........................131 Obsługa pakietów...................................................g..............................131 Schowek systemowy...................................................g..........................132 Obiekty aplikacji ...................................................g................................133 Data i czas ...................................................g...........................................133 Obsługa myszy...................................................g...................................136 Inne ...................................................g...................................................g...136 Rozdział 9. Interfejs użytkownika.................................. 137 Okna dialogowe...................................................g.................................137 Grafika...................................................g.................................................139 Obsługa menu ...................................................g....................................144 Inne komponenty...................................................g...............................145 4 Delphi. Leksykon kieszonkowy Rozdział 10. Multimedia .................................................. 147 Mikser...................................................g..................................................147 Format wave...................................................g.......................................151 Format MIDI...................................................g.......................................156 Dżojstik...................................................g................................................160 Dodatek................................................................................. 162 Skróty klawiaturowe ...................................................g.........................162 Słowa kluczowe...................................................g..................................164 Klasy wyjątków...................................................g..................................166 Tablica znaków ASCII...................................................g.......................167 Skorowidz............................................................................. 169 Spis treści 5 Rozdział 3. Konwersja i formatowanie Przedstawione w rozdziale procedury i funkcje zawarte są w modułach: db, dbcommon, sysutils, classes i math. Rzutowanie typów Czasami potrzebne jest traktowanie wyrażeń tak, jakby należały do innego typu. Można otrzymać ten efekt przez rzutowanie typów. Np. Integer( B ) pozwala traktować znak B tak, jakby był liczbą całkowitą. Składnia rzutowania jest następująca: identyfikatorTypu(wyrazenie) Jeżeli wyrazenie jest zmienną, wynik nazywany jest zmienną rzutowaną, w innym wypadku jest on wartością rzutowaną. Wartość rzutowana W rzutowaniu wartości zarówno identyfikatorTypu jak i wyrazenie muszą należeć do typu porządkowego, albo każde z nich musi należeć do typu wskaźnikowego. Przykłady rzuto- wania wartości: Integer( B ) Char(33) Boolean(0) TColor(2) Longint(@Bufor) Wynik rzutowania otrzymywany jest poprzez obcięcie lub roz- szerzenie wartości wyrażenia, przy czym zachowywany jest znak wyrażenia (+ lub –). Rozdział 3. Konwersja i formatowanie 63 Instrukcja: I := Integer( B ); przypisuje wartość Integer( B ) — tzn. 66 — do zmiennej I. Po rzutowaniu wartości nie można dopisywać kwalifikatora (wyrażenia po kropce). Rzutowanie wartości nie może wystę- pować po lewej stronie przypisania. Zmienna rzutowana Można rzutować dowolną zmienną na dowolny typ pod warun- kiem, że ich rozmiary (zmiennej i typu) są równe i nie miesza- my typów całkowitych z rzeczywistymi (służą do tego specjalne funkcje omówione dalej). Przykłady rzutowania zmiennej: Char(I) Boolean(Liczba) TMojZdefiniowanyTyp(MojaZmienna) Rzutowanie zmiennej może występować po obydwu stronach przypisania, np.: var c: char; ... ShortInt(c) := 122; przypisuje znak o kodzie ASCII 122 (‘z’) do zmiennej c. Można też przekształcić zmienną na typ proceduralny. Na przykład mając następujące deklaracje: type Funkc = function(X: Integer): Integer; var F: Funkc; P: Pointer; L: Integer; można dokonać następujących przypisań 64 Delphi. Leksykon kieszonkowy F := Funkc(P); // Przypisuje wartość do zmiennej // proceduralnej F Funkc(P) := F; // Wartość zmiennej proceduralnej // przypisuje do P L := F(L); // Wywołuje funkcję używając // zmiennej F L := Funkc(P)(L); // Wywołuje funkcję używając // zmiennej P Po rzutowaniu zmiennej może wystąpić kwalifikator (np. pole rekordu): type TBajtRek = record Lo, Hi: Byte; end; var B: Byte; W: Word; begin W := $4321; B := TBajtRek(W).Lo; TBajtRek(W).Hi := 0; end; Rzutowanie klas Kontrolowanego rzutowania obiektów można dokonać operato- rem as. Wyrażenie: obiekt as klasa zwraca wskaźnik na obiekt, który jednak jest traktowany jako obiekt typu podanego przez klasa. W czasie działania pro- gramu obiekt musi rzeczywiście być typu podanego przez klasa (lub jego potomkiem) albo mieć wartość nil. W prze- ciwnym przypadku wywoływane jest przerwanie. Typowe za- stosowanie operatora as pokazuje przykład: Rozdział 3. Konwersja i formatowanie 65 procedure TForm1.Button1Click(Sender: TObject); begin with Sender as TButton do Caption := Naciśnięto ; end; Aby wykorzystać operator as bezpośrednio w instrukcji, należy wpisać: (Sender as TButton).Caption := Naciśnięto ; Konwersje typów liczbowych Typ Comp można konwertować na Double i Currency (lub z powrotem) za pomocą: function CompToDouble(acomp: Comp): Double; procedure DoubleToComp(adouble: Double; var result: Comp); function CompToCurrency(acomp: Comp): Currency; procedure CurrencyToComp(acurrency: Currency; var result: Comp); Aby przekształcić format BCD (każda cyfra zapisana na czte- rech bitach) na Currency (walutowy) i z powrotem, wykorzy- stuje się funkcje: function BCDToCurr(const BCD: TBcd; var Curr: Currency): Boolean; function CurrToBCD(Curr: Currency; var BCD: FMTBcd; Precision: Integer=32; Decimals: Integer=4): Boolean; Przykładowe wykorzystanie funkcji BCDToCurr: procedure TForm1.FormClick(Sender: TObject); const bcd: TBcd = (Precision: 8; SignSpecialPlaces: 128+4); // 8 cyfr, 128-liczba ujemna, 4 miejsca po przecinku var c: Currency; 66 Delphi. Leksykon kieszonkowy begin bcd.Fraction[0] := 1*16+2; // liczba 12 bcd.Fraction[1] := 3*16+4; // liczba 34 bcd.Fraction[2] := 5*16+6; // liczba 56 bcd.Fraction[3] := 7*16+8; // liczba 78 BCDToCurr(bcd, c); caption := FloatToStr(c); // wynik = -1234,5678 end; Aby przekształcić typ Extended lub Currency na dziesiętny, można wykorzystać funkcję: procedure FloatToDecimal(var DecVal: TFloatRec; const Value; ValueType: TFloatValue; Precision, Decimals: Integer); Wynik umieszczany jest w zmiennej DecVal i składa się z ta- blicy cyfr, znaku liczby i pozycji przecinka. ValueType określa, czy przekształcamy typ Extended, czy Currency. Precision i Decimals kontrolują zaokrąglanie wyniku. Typy złożone Istnieje również kilka funkcji konwertujących proste typy na złożone (np. rekordowe). Rekord (w niektórych językach nazywany strukturą) to zbiór elementów różnego typu. Każdy element nazywany jest polem. Typ TPoint definiuje pozycję na ekranie. Jest to rekord zawie- rający dwa pola — współrzędne X i Y. Definicja tego typu wygląda następująco: type TPoint = record X: Longint; Y: Longint; end; Rozdział 3. Konwersja i formatowanie 67 Aby skonwertować dwie liczby całkowite na typ TPoint, nale- ży użyć funkcji: function Point(AX, AY: Integer): TPoint; Funkcja ta służy do szybkiego wypełniania pól rekordu bez ko- nieczności przypisywania wartości każdemu polu z osobna. Można również dzięki niej pominąć deklarację typu TPoint przy wywoływaniu funkcji, które jako parametr przyjmują zmienne tego typu: Canvas.Polygon([Point(20, 20), Point(40, 20), Point(140, 40), Point(250, 130)]); Analogicznie rekord TRect zawiera współrzędne prostokąta na ekranie. Kolejne pola to współrzędne lewego górnego i prawe- go dolnego narożnika. Aby wypełnić ten rekord danymi, można użyć funkcji: function Rect(ALeft, ATop, ARight, ABottom: Integer): TRect; function Bounds(ALeft, ATop, AWidth, AHeight: Integer): TRect; Druga z funkcji zamiast współrzędnych prawego dolnego rogu oczekuje szerokości i wysokości prostokąta. Konwersja miar kątowych W Delphi większość funkcji wykorzystujących miary kątowe jako jednostki przyjmuje radiany. Jeżeli chcielibyśmy np. wyświetlić obliczony kąt w stopniach lub innych jednostkach, to istnieje kilka funkcji konwertujących te wielkości: function RadToCycle(Radians: Extended): Extended; function CycleToRad(Cycles: Extended): Extended; function RadToDeg(Radians: Extended): Extended; function DegToRad(Degrees: Extended): Extended; function RadToGrad(Radians: Extended): Extended; function GradToRad(Grads: Extended): Extended; 68 Delphi. Leksykon kieszonkowy Formatowanie napisów Liczby Aby przekształcić wartość typu rzeczywistego na napis, może- my użyć jednej z funkcji: function FloatToStr(Value: Extended): string; function CurrToStr(Value: Currency): string; Jeżeli chcemy mieć większy wpływ na format utworzonego na- pisu, można też wykorzystać: function FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer): string; function CurrToStrF(Value: Currency; Format: TFloatFormat; Digits: Integer): string; function FormatFloat(const Format: string; Value: Extended): string; function FormatCurr(const Format: string; Value: Currency): string; Aby sformatować napis do tablicy znaków, można zastosować funkcje: function FloatToText(Buffer: PChar; const Value; ValueType: TFloatValue; Format: TFloatFormat; Precision, Digits: Integer): Integer; function FloatToTextFmt(Buffer: PChar; const Value; ValueType: TFloatValue; Format: PChar): Integer; Sformatowane napisy nie są kończone zerem. Funkcja jako wy- nik zwraca liczbę znaków napisu. Liczbę całkowitą możemy przekształcić na napis reprezentujący liczbę w systemie dziesiętnym lub szesnastkowym: function IntToStr(Value: Integer): string; function IntToHex(Value: Integer; Digits: Integer): string; Rozdział 3. Konwersja i formatowanie 69 Argumentem procedury Str może być liczba typu całkowitego lub rzeczywistego: procedure Str(X [: Width [: Decimals ]]; var S); Dodatkowo można sformatować wynik określając wszystkich cyfr i liczbę cyfr po przecinku. Przykład: liczbę Str(Pi:5:6, napis); Złożone formatowanie Kilka poniższych funkcji używa jako argumentu napisu z wzor- cem formatowania. Wzorzec ten może zawierać w sobie zwykły tekst i specyfikatory formatowania. Mają one następującą formę: [index:][-][width][.prec]type Specyfikator rozpoczyna się od znaku . Na końcu musi być określenie typu. Reszta jest opcjonalna i zależna od typu. Specyfikator width określa minimalną szerokość napisu wyni- kowego. Aby to osiągnąć, do napisu mogą być dodane spacje. Domyślnie spacje są dodawane z lewej strony. Jeżeli jednak w formacie podano znak minusa (wyrównanie do lewej strony), spacje będą dodawane z prawej strony. Specyfikator prec ma różne znaczenia dla różnych typów for- matowania. Specyfikator index zmienia porządek odwołań do tablicy wartości. Na przykład funkcja: Format( d d 0:d 1:d , [10, 20]); // formatuje napis: 10 20 10 20 . Możliwe typy zostały wymienione w tabeli 3.1. 70 Delphi. Leksykon kieszonkowy Tabela 3.1. Oznaczenia typów w złożonym formatowaniu napisów Znaczenie specyfikatora prec Jeżeli podano prec, to określa on minimalną liczbę cyfr w napisie (napis będzie lewostronnie dopełniany zerami). Podobnie jak wyżej. Jeżeli podano prec, to określa on liczbę wszystkich cyfr w napisie wynikowym (domyślnie 15). Jeżeli podano prec, to określa on liczbę cyfr po przecinku w napisie wynikowym (domyślnie 2). Jeżeli podano prec, to określa on liczbę znaczących cyfr w napisie wynikowym (domyślnie 15). Jeżeli podano prec, to określa on liczbę cyfr po przecinku w napisie wynikowym (domyślnie 2). Jeżeli podano prec, to określa on liczbę cyfr po przecinku w napisie wynikowym (domyślnie 2). Typ Opis d u e f g n m Dziesiętny. Argument musi być wartością całkowitą. Wartość jest konwertowana na napis składający się z cyfr dziesiętnych. Dziesiętny bez znaku. Analogiczny jak dziesiętny, ale bez znaku. Naukowy. Argument musi być wartością zmiennoprzecinkową. Wartość jest konwertowana do napisu postaci: -d.ddd...E+ddd . Klasyczny. Argument musi być wartością zmiennoprzecinkową. Wartość jest konwertowana do napisu postaci: -ddd.ddd... . Główny. Argument musi być wartością zmiennoprzecinkową. Wartość jest konwertowana do możliwie najkrótszego napisu w formacie naukowym lub klasycznym. Numer. Argument musi być wartością zmiennoprzecinkową. Wartość jest konwertowana do napisu postaci: -d,ddd,ddd.ddd... . Formatowanie podobne do klasycznego z wyjątkiem obecności separatorów tysięcznych. Waluta. Argument musi być wartością zmiennoprzecinkową. Wartość jest konwertowana do napisu w postaci walutowej. Konwersja jest przeprowadzana z uwzględnieniem zmiennych globalnych: CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator i CurrencyDecimals. Rozdział 3. Konwersja i formatowanie 71 Tabela 3.1. Oznaczenia typów w złożonym formatowaniu napisów — ciąg dalszy Typ Opis Znaczenie specyfikatora prec p s x Wskaźnik. Argument musi być wartością wskaźnika (adres w pamięci). Wartość jest konwertowana na 8-znakowy napis składający się z cyfr szesnastkowych. Napis. Argument musi być znakiem, napisem lub wartością typu PChar. Znak lub napis są wstawiane w miejsce specyfikatora. Szesnastkowy. Argument musi być wartością typu całkowitego. Wartość jest konwertowana na napis składający się z cyfr szesnastkowych. Jeżeli podano prec, to określa on maksymalną długość w napisie wynikowym. Jeżeli podano prec, to określa on minimalną liczbę cyfr w napisie (napis będzie lewostronnie dopełniany zerami). Aby wykorzystać powyższe opcje formatowania, można użyć jednej z funkcji: function Format(const Format: string; const Args: array of const): string; function FormatBuf(var Buffer; BufLen: Cardinal; const Format; FmtLen: Cardinal; const Args: array of const): Cardinal; procedure FmtStr(var StrResult: string; const Format: string; const Args: array of const); Przykładowe wykorzystanie funkcji Format: Caption := Format( Minęło już d dni od daty twoich urodzin , [Round(Now- DateTimePicker_urodziny.Date)]); Do formatowania napisów kończonych zerem (null-terminated) można wykorzystać funkcje: function StrFmt(Buffer, Format: PChar; const Args: array of const): PChar; function StrLFmt(Buffer: PChar; MaxLen: Cardinal; Format: PChar; const Args: array of const): PChar; 72 Delphi. Leksykon kieszonkowy Odczytywanie napisów Konwertowanie napisów na liczbę nie zawsze kończy się po- wodzeniem. W przypadku wystąpienia błędu generowany jest wyjątek. Aby odczytać z napisu liczbę całkowitą (w postaci dziesiętnej lub szesnastkowej), można posłużyć się funkcjami: function StrToInt(const S: string): Integer; function StrToInt64(const S: string): Int64; Aby uniknąć generowania wyjątku w przypadku błędu, można wykorzystać funkcje: function StrToIntDef(const S: string; Default: Integer): Integer; function StrToInt64Def(const S: string; Default: Int64): Int64; Jeżeli nastąpi błąd, zwrócona będzie wartość domyślna.i W przypadku liczb zmiennoprzecinkowych można użyć funkcji: function StrToFloat(const S: string): Extended; function StrToCurr(const S: string): Currency; Dla napisów kończonych zerem użyjemy funkcji: function TextToFloat(Buffer: PChar; var Value; ValueType: TFloatValue): Boolean; Procedura: procedure Val(S; var V; var Code: Integer); może odczytywać zarówno wartości całkowite jak i zmienno- przecinkowe. Jeżeli Code przybierze wartość różną od zera, to nastąpił błąd na pozycji określonej przez Code. Patrz także Konwersje dotyczące daty i czasu znaleźć można w roz- dziale 8. „Obsługa systemu”. Rozdział 3. Konwersja i formatowanie 73 Standard Unicode Typ WideString reprezentuje napisy w formacie Unicode (każdy znak zapisany na 16 bitach). Odwołując się do funkcji COM API, często jesteśmy zmuszeni zmienić typ z Ansi- String (String) na WideString: function StringToWideChar(const Source: string; Dest: PWideChar; DestSize: Integer): PWideChar; Odwrotny efekt można uzyskać wywołując: function WideCharToString(Source: PWideChar): string; procedure WideCharToStrVar(Source: PWideChar; var Dest: string); function WideCharLenToString(Source: PWideChar; SourceLen: Integer): string; procedure WideCharLenToStrVar(Source: PWideChar; SourceLen: Integer; var Dest: string); 74 Delphi. Leksykon kieszonkowy
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Delphi. Leksykon kieszonkowy
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: