Náhodné výkřiky 50

vložil Radek Červinka 21. května 2015 23:53

Dneska se bude řešit System.Copy, epesní nová komponenta na editaci textu, herní engine pro FireMonkey, změna podmínek aktualizace pro XE8 a nějaké odkazy.

Případ System.Copy

Všichni známe Copy, ne? Pokud ne, tak je Copy je kompilátorem generovaná funkce, která kopíruje od pozice X, Y prvků. Píši prvků a ne znaků, protože Copy funguje i na prvky dynamického pole.

  function Copy(S: <string or dynamic array>; Index: Integer; Count: Integer): string;

Pár zajímavostí: pokud je Count > zbytek od Indexu do konce, je počet ošetřen a vrácen jen zbývající počet prvků. Dříve jsem jako trubka pokaždé dopočítával zbytek (a sem tam jsem se sekl o 1), později jsem se na to vykašlal a dával jako parametr Length řetězce. Jedná se o deklarované chování, ušetřím si problémy se špatnou délkou.

Později jsem si v helpu přečetl, že pokud se jedná o dynamické pole, mohou se dva parametry vypustit. Přišel jsem na to, že v případě řetězce se dá vypustit poslední parametr a kompilátor tam doplní MaxInt.

Project7.dpr.14: writeln(Copy(s, 3));
0041C4C5 8D45EC           lea eax,[ebp-$14]
0041C4C8 50               push eax
0041C4C9 B9FFFFFF7F       mov ecx,$7fffffff   <--------------
0041C4CE BA03000000       mov edx,$00000003
0041C4D3 A1BC3E4200       mov eax,[$00423ebc]
0041C4D8 E8DBADFEFF       call @UStrCopy
0041C4DD 8B55EC           mov edx,[ebp-$14]
0041C4E0 A18CE64100       mov eax,[$0041e68c]
0041C4E5 E8EA87FEFF       call @Write0UString
0041C4EA E8E588FEFF       call @WriteLn
0041C4EF E8907CFEFF       call @_IOTest

Změna podmínek aktualizací u XE8

U uvedení XE8 jsem smutně napsal, že podle nových podmínek nemá uživatel nárok na opravy pokud nemá předplatné (subscription). Naštěstí EMBT pochopilo, že to není optimální a aktualizovalo podmínky embarcadero.com/products/rad-studio/update-subscription. Ve zkratce: kritické opravy a další podobné případy budou dostupné všem.

Nová opensource komponenta pro editaci textu

A není to žádné ořezávátko - TBCEditor (Delphi XE4-XE8), backport pro XE - tbceditorxe.

Mezi zajímavé vlastnosti patří:

  • code folding
  • vnořené pravidla pro zvýrazňování (JS v HTML)
  • atd.

TBCEditor

Jedná se o zajímavou variantu pro SynEdit a zejména code folding - hmm.

Odkazy

Beacons

EMBT.CZ začalo nabízet Beacons - HW "majáčky", které jsou na západě hrozně v kurzu a samozřejmě mají podporu v XE8. Na uvedeném odkazu je o tom povídání ohledně různých odvětví.

Box2D součástí XE8

Dema pro použití jsou v C:\Users\Public\Documents\Embarcadero\Studio\16.0\Samples\Object Pascal\Mobile Samples\Physics.

Tagy: , , , , , , , ,

Komponenty

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců