[ Pobierz całość w formacie PDF ]
.Przydzia³ pamiêci odbywa siê ca³kowicieautomatycznie.U¿ywanie przez to tego typu jest bardzo ³atwe.W odró¿nieniu od ³añcucha shortstring d³ugi ³añcuch nie posiada zerowegoelementu, tak wiêc jego d³ugoœæ odczytaæ mo¿na jedynie za pomoc¹ funkcjiLength.Przydzielenie ³añcuchowi wystarczaj¹cej pamiêci odbywa siêautomatycznie przy przypisaniu mu wartoœci, choæ mo¿e byæ wykonane równie¿ zapomoc¹ procedury SetLength (co konieczne jest wtedy, gdy chcemy operowaæ najego poszczególnych elementach – na sposób tablicowy – przyp.red.)£añcuchy WideStringTyp ten u¿ywany jest w po³¹czeniu z funkcjami Windows API operuj¹cymi naznakach 2-bajtowych (Unicode).Podobnie jak dla d³ugie ³añcuchy, ³añcuchyWidestring maj¹ d³ugoœæ ograniczon¹ jedynie dostêpn¹ pamiêci¹ i s¹ tak¿ealokowane dynamicznie.Nie bêdê siê nad nimi rozwodzi³, poniewa¿ ich u¿ycieogranicza siê praktycznie do stosowania w funkcjach OLE.£añcuchy z zerowym ogranicznikiem: PChar i Array of CharW odró¿nieniu od Object Pascala, jêzyki C i C++ nie posiadaj¹ w³aœciwieprawdziwych typów ³añcuchowych.W tych jêzykach ³añcuchy zaimplementowane s¹jako ci¹gi znaków zakoñczone znakiem NULL (tj.znakiem o kodzie zero).Tabliceznaków nie maj¹ bajtu okreœlaj¹cego d³ugoœæ, wiêc do okreœlenia koñca ci¹guu¿ywany jest znak NULL.Poniewa¿ Windows by³o napisane w C, wiele funkcjiWindows API wymaga tablic znaków jako parametrów.Poniewa¿ Pascalowe ³añcuchynie s¹ tablicami znaków, trzeba by³o znaleŸæ jakiœ sposób, aby umo¿liwiæwykorzystywanie w Pascalu funkcji Windows API.Typ PChar spe³nia tê funkcjê.Mo¿e byæ u¿ywany wszêdzie tam, gdzie wymagane s¹ tablice znaków.Przyk³ademmo¿e byæ funkcja Windows MessageBox.Funkcja ta, która wyœwietla na ekraniestandardowe okienko informacyjne, posiada nastêpuj¹c¹ deklaracjê:function MessageBox(hWnd: HWND; lpText, lpCaption: PChar;uType: UINT) : Integer;Drugi i trzeci parametr jest wskaŸnikiem na tablicê znaków (drugi na tekstumieszczany w okienku, trzeci na tytu³ okienka).Aby wywo³aæ tê funkcjê zpoziomu programu Delphi, trzeba u¿yæ typu PChar nastêpuj¹co:varTekst : string;Tytul : string;beginTekst := 'To jest test.';Tytul := 'Komunikat testowy.';MessageBox(0, PChar(Tekst), PChar(Tytul), 0);end;Powy¿szy przyk³ad pokazuje zastosowanie typu PChar do konwersji d³ugiego³añcucha do ³añcucha z zerowym ogranicznikiem [1 Zarówno d³ugie ³añcuchy, jak i³añcuchy Widestring posiadaj¹ zerowy ogranicznik – wyjaœnia to, dlaczego d³ugi³añcuch mo¿e byæ traktowany jako tablica znaków zakoñczona znakiem NULL (przyp.red.)].Mo¿na te¿ typu PChar u¿ywaæ wprost:varTekst : PChar;beginTekst := 'To jest test.';MessageBox(0, Tekst, 'Uwaga', 0);end;Poniewa¿ ca³a si³a typów ³añcuchowych w Pascalu le¿y w ³atwoœci operowanianimi, prawdopodobnie nie bêdziesz czêsto u¿ywa³ typu PChar.Prawdopodobniejedynym jego zastosowaniem bêdzie konwersja d³ugiego ³añcucha na ³añcuch typunull-terminated.Zwróæ uwagê, ¿e tam gdzie funkcja Windows spodziewa siêparametru typu PChar, mo¿na zastosowaæ wprost tekst objêty apostrofami.Mo¿na ostatecznie u¿yæ zamiast typu PChar tablicy znaków:varTekst : array[0.20] of Char;beginTekst := 'To jest test.';MessageBox(0, Tekst, 'Uwaga', 0);end;Nie ma w³aœciwie znaczenia, której metody z przedstawionych powy¿ej u¿yjesz.Pamiêtaj tylko o tym, ¿e nie mo¿esz zastosowaæ typu shortstring (pochodz¹cego zPascala) jako parametru wywo³ania funkcji Windows API, który to parametr musibyæ ³añcuchem z zerowym ogranicznikiem.W tych przypadkach musisz u¿yæ typuPChar lub tablicy znaków.Operacje na ³añcuchachTypy ³añcuchowe w Pascalu maj¹ kilka wspólnych elementów.Poni¿sze sekcjeopisuj¹ ogólne operacje na ³añcuchach wspólne dla wszystkich ich typów.£¹czenie ³añcuchów z u¿yciem operatora +Czêsto spotykanym zadaniem jest konkatenacja (z³¹czenie, dodanie do siebie)dwóch lub wiêcej ³añcuchów.Mo¿na to ³atwo zrobiæ u¿ywaj¹c operatora +, naprzyk³ad:varS1 : string;S2 : string;beginS1 := 'To jest';S2 := 'test.';Label1.Caption := S1 + ' ' + S2;end;Kod ten dodaje do siebie 3 ³añcuchy (zmienn¹ S1, spacjê i zmienn¹ S2) iumieszcza wynik we w³aœciwoœci Caption etykiety [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • orla.opx.pl