Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Objektově orientované programování - cvičení 1. Práce s řetězci DELPHI (1) Napište jednoduchý program, který má 2 globální řetězce, Str1 a Str2. Po stisknutí.

Podobné prezentace


Prezentace na téma: "Objektově orientované programování - cvičení 1. Práce s řetězci DELPHI (1) Napište jednoduchý program, který má 2 globální řetězce, Str1 a Str2. Po stisknutí."— Transkript prezentace:

1 Objektově orientované programování - cvičení 1

2 Práce s řetězci DELPHI (1) Napište jednoduchý program, který má 2 globální řetězce, Str1 a Str2. Po stisknutí tlačítka do Str1 zapíše ‘AHOJ’ a do Str2 nakopíruje hodnotu Str1. Druhé tlačítko změní hodnotu jednoho z řetězců. Po každém přiřazení vypište stav řetězců

3 …pokračování... K zobrazení stavu řetězců si napíšeme funkci StringStatus. Řetězec se do ní musí předávat jako VAR nebo CONST, aby se předával odkazem a nikoliv hodnotou (kopírováním). Nedokumentované pomůcky: na offsetu -8 je ReferenceCount, na offsetu -4 je délka stringu.

4 …pokračování... Ukázka řešení je v souboru demo1.exe (je to samozrobalovací komprimovaný soubor)demo1.exe Všechny ukázky jsou určeny k rozbalení v adresáři C:\WINDOWS\TEMP

5 …pokračování...

6

7 Práce s řetězci DELPHI (2) Jako ukázku předávání stringů mezi Delphi a Windows volejte funkce API (Windows) pro název okna: (1) jméno okna přeneste do Delphi, (2) z Delphi změňte jméno okna. Řešený příklad je zdezde

8 …pokračování...

9

10

11 …pokračování Ale pozor na zradu! Kdybychom zapsali Edit1.Text := PomocnyString + ‘ je nadpis’; tak by se ten konec vůbec nezobrazil! Důvodem je, že Windows nenastavují délku stringu tak, jako to potřebují Delphi. Proto musíme použít S1:=String(PChar(S1)) nebo SetLength(S1, StrLen(PChar(S1)))

12 Dynamická (otevřená) pole Vytvořte funkci Sum, kterou můžete volat s libovolným počtem parametrů integer, real, nebo string. Výsledkem je součet všech hodnot parametrů (stringy obsahují textový zápis čísel). Vyřešený příklad je zdezde

13 …pokračování... Řešením je otevřené pole netypované: function Sum(const X: array of const): real;

14 …pokračování...

15

16 …pokračování

17 Datový typ VARIANT Změřte, kolikrát jsou operace s datovým typem VARIANT pomalejší než stejné operace s celočíselnými typy. Příklad řešení je zdezde

18 …pokračování...

19

20 …pokračování

21 Procedurální a funkcionální typy Vytvořte funkcionální typ. Bude to funkce typu „real“ s jedním parametrem „string“. S jeho pomocí provádějte výpočty tří různých funkcí, přičemž druh funkční závislosti se stanoví až za běhu programu. Vzorové řešení je zdezde

22 …příklad...

23 …pokračování...

24 …pokračování

25 Otázky ke zkoušce 1 (ke všem uveďte příklady) Řetězce, jejich reprezentace a práce s nimi Dynamická a otevřená pole Datový typ Variant Parametry s default hodnotou Procedurální a funkcionální typy

26 Otázky ke zkoušce 2 (ke všem uveďte příklady) Přetypování Typované konstanty Vyjmenujte a popište 3 (4) základní principy OOP


Stáhnout ppt "Objektově orientované programování - cvičení 1. Práce s řetězci DELPHI (1) Napište jednoduchý program, který má 2 globální řetězce, Str1 a Str2. Po stisknutí."

Podobné prezentace


Reklamy Google