Funkcje delphi: opisy, opcje, porady i wskazówki

Delphi to autorskie środowisko programistyczne (IDE) dla języka Pascal w systemie Windows. Implementuje on obiektową wersję języka. Środowisko programistyczne oparte jest na GUI połączonym z edytorem kodu źródłowego funkcji Delphi. Język programowania zyskał popularność dzięki łatwości użycia przy tworzeniu aplikacji graficznych i bazodanowych.

Tablice są podstawą programowania

Firma Borland Software Corporation w 1995 roku wydała następcę Turbo Pascala, Delphi, zintegrowane środowisko programistyczne, które używało własnego dialektu Object Pascala do rozjaśniania aplikacji Windows. W porównaniu z IDE, funkcje Delphi miały niespotykaną dotąd obsługę baz danych, tworząc wielowymiarowe środowisko, które pozwala programistom pisać kod szybciej i z mniejszą ilością błędów niż kiedykolwiek wcześniej.

Język był wszechstronnym narzędziem do tworzenia aplikacji, zawierającym edytor kodu, wizualny projektant, który wspierał rozwój międzyplatformowy, zintegrowany debugger, mechanizm kontroli i wsparcie dla wtyczek innych firm. Edytor kodu oferował nowe funkcje dla programistów w Delphi: analizę błędów i refaktoryzację.

Pierwotnie tablica w programie Delphi była statyczna. Oznaczało to, że jego rozmiar musiał być znany w momencie pisania kodu.

Tablice są podstawą programowania

W wersji 4 do języka Delphi dodano nowe funkcje - tablice dynamiczne, które zmieniały swój rozmiar. Programista nie musiał deklarować rozmiaru podczas pisania kodu i mógł go programowo modyfikować poprzez tworzenie linku, bez faktycznego przydzielania pamięci dla zawartości.

W najnowszej wersji przed umieszczeniem danych ustawiana jest długość za pomocą wygodnej procedury SetLength. Teraz, gdy długość jest ustawiona, wykonywane jest przypisanie, podobnie jak w przypadku funkcji tablicy statycznej Delphi. Tablice dynamiczne są indeksowane przez zero.

Jeśli program wymaga zmiany rozmiaru, jest to po prostu niemożliwe z tablicami statycznymi, ale łatwe do wdrożenia z tablicami dynamicznymi. Odbywa się to poprzez wywołanie SetLength i wykorzystanie nowo przydzielonych elementów w tablicy. Po zmianie rozmiaru, oryginalne elementy są nadal obecne i żadne dane nie są tracone.

Tablice statyczne i dynamiczne

Tablice funkcji statycznych Delphi są właściwie tylko wskaźnikami do ciągłego obszaru pamięci, który został przydzielony do przechowywania wymaganej ilości danych. Kompilator wykonuje operacje matematyczne, aby przekształcić indeks we wskaźnik do pojedynczego elementu w tablicy, podczas gdy dynamiczne tablice, z drugiej strony, dodają poziom pośredniości.

Tablice statyczne & tablice dynamiczne

Tablica dynamiczna to zapis zawierający informacje o niej, w tym rozmiar, liczbę elementów oraz wskaźnik do tablicy statycznej. Po wywołaniu SetLength następuje kilka procesów:

  1. Pole rozmiaru jest aktualizowane.
  2. Przydzielana jest nowa (wewnętrzna) statyczna tablica funkcyjna Delphi 7 o nowym rozmiarze.
  3. Elementy starego statycznego są kopiowane do nowego.
  4. wskaźnik statyczny jest zmieniany na nowy.

Jeśli bieżąca pozycja wewnętrznej tablicy statycznej jest wystarczająca przestrzeń dla i jest jedna zmienna odwołująca się do tablicy, tylko krok 1 ma miejsce. Wszystko to jest realizowane przy każdej zmianie jego długości.

Jeśli istnieją inne zmienne, które odwołują się do tej samej tablicy, stara statyczna nie zostanie usunięta. Przy każdej zmianie rozmiaru tablicy dynamicznej, będzie ona kopiowana, co oznacza nadpisywanie w pamięci. Wymagany czas jest proporcjonalny do rozmiaru, np. kopiowanie z 20 elementów zajmuje więcej czasu niż z 10.

Operatory łańcuchów

Operatory łańcuchów

Jak w każdym innym języku programowania, w Delphi zmienne pełnią rolę miejsc wykorzystywanych do przechowywania wartości. Zmienna zawierająca określoną tablicę znaków jest deklarowana jako String. Delphi posiada wysokiej jakości asortyment operatorów łańcuchów, funkcji i procedur.

Przed przypisaniem danych String do zmiennej należy poznać cztery typy String. Funkcja Shortstring w Delphi. Jest to policzalna tablica (ASCII) znaków, zawierająca do 255 znaków w wierszu. Pierwszy bajt tej tablicy przechowuje długość. Ten zasada działania był podstawowy w Delphi 1 (16-bitowe Delphi) i stworzył zmienną o nazwie small o maksymalnej długości 50 znaków.

Operatory łańcuchów

Kiedy do zmiennej Short String przypisywana jest wartość, ciąg jest obcinany. zwłaszcza jeśli przekracza maksymalną długość tego typu.

Zmienne i ich typ muszą być zadeklarowane przed użyciem. Należy wybrać typ zmiennej, która ma zawierać:

  1. Integer - są liczbami całkowitymi, na przykład 42 lub -5.
  2. Pojedynczy lub podwójny - używany jako typ oddzielony przecinkami, np. 3,3.

Operacje mogą być stosowane do zmiennych numerycznych:

  • dod;
  • odejmowanie;
  • mnożenie;
  • moduł - mógł być zastosowany tylko do liczby całkowitej;
  • char - służy do zawarcia pojedynczego znaku, np. m;
  • String - służy do zawierania zdań, takich jak Hello world;
  • wartością boolean są True i False.

Aby połączyć 2 ciągi znaków, użyj operatora "+". Przykład: Hello + world zostanie zaimplementowane jako Hello world.

Zmienne i stałe

Parametr reprezentuje informację i umożliwia wywołanie funkcji Delphi w procedurze. Zmienna jest częścią danych, która jest zadeklarowana wewnątrz funkcji i jest dostępna tylko w tej funkcji. Jest to wartość lokalna, zmień ją zgodnie z potrzebami dewelopera. Istnieją zmienne globalne dostępne w całym dpr i projekcie. Powinny być stosowane tylko w wyjątkowych przypadkach.

Kiedy zmienna jest używana, jest deklarowana we wszystkich plikach, w których jest używana. Tylko zmienne przekazywane jako parametry do funkcji i procedur Delphi nie są deklarowane w są one stosowane. Do deklaracji stosuje się słowo kluczowe var. Można je zadeklarować w .DPR lub procedury w aktach sprawy .pas.

Komponent TDBGrid w Delphi jest jednym z klejnotów VCL. Zaprojektowany, aby umożliwić użytkownikowi przeglądanie i edycję danych w siatce tabel zapewnia różne sposoby konfiguracja prezentacji danych. Na przykład, dodanie koloru do siatki bazy danych poprawi wygląd i zróżnicuje znaczenie niektórych wierszy lub kolumn w bazie danych.

Pliki Delphi

Delphi składa się z jednostek, odpowiednich plików źródłowych oraz kart indeksowych (formularzy), które definiują interfejsy graficzne. Tabela różnych plików, które mogą wymagać zmiany i ich przeznaczenia.

Rozszerzenie pliku

Opis

.DCR

Plik projektu

.DFM

Rysunek formularza zawierający właściwości komponentów graficznych

.dpr

Plik projektu jest sercem aplikacji, łączącym wszystkie różne pliki, które zawierają kod (.pas) z .DPR z funkcją daty w Delphi

.PAS

Plik źródłowy zawierający kod aplikacji

.bdsproj

Plik projektu związany z .DPR

.RC

Plik zasobów systemu Windows

Tabela plików wygenerowanych po kompilacji.

Rozszerzenie pliku

Opis

.BPG

Plik grupy projektów.

.dcu

Plik tworzony podczas kompilacji, ale nie wymagany.

.dpk

Plik pakietu źródłowego.

.dof

Plik opcji projektu.

.dsk

Preferencje IDE.

.RES

Plik zasobów systemu Windows, może zawierać ikony, bitmapy, dźwięki.

Funkcja "Pos

Funkcja POS Delphi zwraca liczbę całkowitą wskazującą pozycję pierwszego wystąpienia jednego łańcucha w drugim. Tworzy się go w następujący sposób. Pos szuka pierwszego wystąpienia określonego ciągu znaków. Zazwyczaj podawane w pojedynczym cudzysłowie w źródle. Źródłem jest jakaś zmienna.

Jeśli Pos znajdzie ciąg znaków, zwraca pozycję znaku w Source i pierwszego znaku w Str jako wartość całkowitą, w przeciwnym razie funkcja Delphi zwraca 0. String i Source będą ciągami znaków. Staromodna funkcja Pos - najczęściej spotykany metoda wyszukiwania i zawsze znajduje się na początku.

Zaktualizowana funkcja Pos pomaga rozwiązać ten problem. Wyszukuje on linię s1 w s2 i zwraca jej pozycję, tak jak stary Pos. Dodatkowo można określić pozycję początkową i maksymalną długość wyszukiwania.

Funkcja Pos

Import funkcji bibliotecznych

Aby zaimportować podprogramy biblioteczne (.DLL) dołączyć dyrektywę w postaci: externalstringConstant, na końcu nagłówka funkcji i procedur, gdzie string Constant jest nazwą pliku biblioteki w cudzysłowie. Można zaimportować podprogram o innej nazwie. Oryginalna nazwa jest określona w dyrektywie zewnętrznej:

Zewnętrzna stringConstant1, namestringConstant2.

Gdzie pierwszy ciąg Constant oznacza nazwę pliku biblioteki, a drugi jest nazwą źródłową podprogramu. Poniższe polecenie importuje funkcję z user32.dll. Oryginalna nazwa funkcji to MessageBoxA. W miejsce nazwy można użyć numeru, aby zidentyfikować podprogram, który ma zostać zaimportowany:

externalstringConstantindexintegerConstant.

Gdzie integerConstant jest indeksem podprogramu w tabeli eksportu.

W deklaracji importu należy zwrócić uwagę na dokładną notację i wielkość liter nazwy podprogramu. Jednak po zaimportowaniu procedury nie ma już między nimi żadnej różnicy.

Przykład tworzenia tablicy jednowymiarowej

Załóżmy, że musimy wygenerować 3 jednowymiarowe tablice dla 50 członków oprogramowanie. Pierwsza tablica to nazwiska, druga to e-mail, a trzecia to liczba pobrań.

Każda z nich ma indeksy i kod do obsługi wszystkich 3 list synchronicznie. Oczywiście, możesz spróbować z pojedynczą tablicą. Wymaga to ciągów nazwisk i adresów e-mail oraz obciążenia liczbą całkowitą.

Na przykład, następująca deklaracja organizuje typ rekordu o nazwie REMember, który może być zastosowany w tym przypadku.

typ rekordu o nazwie REMember

W istocie, konstrukcja danych rekordowych ma możliwość mieszania i dopasowywania wszelkiego rodzaju zintegrowanych typów Delphi, w tym utworzonych. Zapisy warunkują stałe zbiory składników różnych typów. Każdy element jest podobny do zmiennej o nazwie i typie.

Typ funkcji Delphi Member obejmuje 3 pola: wartość łańcuchową Name, eMail oraz liczbę całkowitą Posts. Po ustawieniu typu rekordu można zadeklarować zmienną członkowską. Nie przydziela pamięci dla nazw, eMail i Postów. Aby praktycznie utworzyć wpis członkowski, należy zadeklarować jego zmienną.

Przykład tworzenia tablicy jednowymiarowej

Używanie komponentów OnMouseOver

Kod dla zdarzeń OnMouseMove jest tworzony w komponencie TDBGrid, abyś mógł polegało na znalezieniu wierszy i kolumn (komórek) DBGrid w miejscu, w którym znajdował się kursor myszy. Jeśli zostanie umieszczony nad siatką, zostanie wywołany handler zdarzenia OnMouseMove. Następnie użyj metody MoveBy komponentu DataSet, aby ustawić bieżący rekord do wyświetlenia.

Używanie komponentów OnMouseOver

Równoważny kod służy do pokazania, gdzie znajduje się kursor myszy i zmiany jego położenia po umieszczeniu go nad paskiem tytułowym. Dla ustawiony jako aktywny wymagany jest wpis "hack" DBGrid i uzyskać dostęp do chronionej właściwości Row. Wiersze właściwości komponentu TCustomDBGrid zawierają odniesienie do aktualnie aktywnych wierszy.

Wiele komponentów ma przydatne właściwości i metody oznaczone jako niewidoczne lub chronione przez programistów Delphi. Do takich elementów można uzyskać dostęp za pomocą prostej techniki zwanej "secure hacking".

Ten kod wybiera pozycję wyświetlaną w siatce "pod" kursorem, gdy wskaźnik myszy znajdzie się nad siatką. Nie jest konieczne klikanie na siatkę, aby zmienić istniejący wpis. Zdarzenie OnDrawColumnCell jest wykorzystywane do obsługi zapotrzebowania na niestandardową grafikę dla danych w komórkach.

Skinowanie aplikacji Delphi

Te komponenty zmieniają wygląd aplikacji poprzez dodanie motywów i powłok. Jest to prosty sposób na ulepszenie graficznego interfejsu użytkownika (GUI). VCLSkin to łatwy w użyciu komponent do tworzenia graficznego interfejsu użytkownika dla aplikacji Delphi. VCLSkin stworzy dla niego motyw lub okładkę bez żadnych zmian w kodzie źródłowym.

Biblioteka DynamicSkinForm VCL zapewnia wsparcie dla okładek formularzy, menu, tooltipów oraz wielu standardowych i niestandardowych oryginalnych kontrolek.

У Jest wiele skórek obiekty i efekty dla fajnych aplikacji jak WinAmp i iTunes. Specjalny edytor pozwala użytkownikowi na dostosowanie skórek. SkinAdapter jest komponentem DynamicSkinForm, który pozwala na tworzenie skórek aplikacji bez modyfikowania kodu źródłowego.

SUISkin oferuje automatyczną aplikację z obsługą skóry. Dzięki niemu nie są wymagane żadne modyfikacje istniejących projektów. Wystarczy przeciągnąć i upuścić komponent silnika skórki na główny formularz i ustawić kilka właściwości. Będzie on automatycznie obsługiwał wszystkie formularze i okna dialogowe. Pliki skóry mogą być kompilowane do plików EXE. Można je łatwo włączyć lub wyłączyć w czasie pracy.

Pakiet programistyczny App Face UI jest rozwiązaniem do tworzenia wizualnych graficznych interfejsów aplikacji, które mogą być używane w VC, VB.Net, Delphi, Visual Basic, C ++ Builder i Win32 SDK. Zawiera zarządzanie skórkami, wizualne narzędzia do tworzenia skórek, przykłady kodu źródłowego i podręcznik techniczny. Biblioteka Appface.Dll jest komponentem jądra i może automatycznie obsługiwać wszystkie okna utworzone w docelowej aplikacji.

Korzyści wynikające ze środowiska programistycznego

Funkcje Delphi

Delphi wyraźnie ustanowiło jako jedno z najbardziej stabilnych środowisk programistycznych, zmieniające się kształt i wielkość. Niezależnie od wszystkiego, pozostaje on tak elastyczny, jak baza kodu, z której pochodzi.

Powód, dla którego Delphi jest używane do dziś:

  1. Precyzyjna składnia, która sprawia, że kod jest tak łatwy do odczytania, jak to tylko możliwe.
  2. Mechanizm przeciągania i upuszczania implementacji, umożliwiający szybkie tworzenie oprogramowania GUI.
  3. Obsługa bazy danych SQL.
  4. Obsługa wszystkich interfejsów API Windows.
  5. Pełna-Programowanie obiektowe.
  6. Kompatybilny z C ++.
  7. Wysoce adaptowalne środowisko VCL.
  8. Wymagana minimalna konserwacja aplikacji.

U szczytu swej potęgi, ogromna społeczność opracowała szereg wysokiej jakości programów jako komponentów z procedurami i funkcjami Delphi, z których wiele jest całkowicie wolnych i otwartych. Wszystko to działa do dziś, z jednym tylko problemem - brakiem doświadczonych programistów Delphi.

Artykuły na ten temat