Obsah / Utility / TEXT / TextResize
Zdrojový kód: INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM
TextResize - Změna velikosti dat textového řetězce
Funkce TextResize změní velikost dat textového řetězce. Jedná se o interní funkci, která je volána ostatními funkcemi obsluhy textů. Funkce nekontroluje referenční čítač, proměnná textového řetězce by měla být jediným vlastníkem dat textového řetězce. K přivlastnění dat textového řetězce lze použít funkci TextCopyWrite.
|
Na vstupu funkce obsahuje registr EAX požadovanou novou velikost textu v datovém bufferu (v bajtech, bez hlavičky dat textového řetězce) a registr EBX obsahuje ukazatel na textovou proměnnou TEXT. V případě chyby nedostatku paměti je navrácen příznak chyby CY, v tom případě není obsah proměnné textového řetězce změněn.
|
Do funkce EDX si funkce připraví starou adresu datového bufferu a do registru EAX novou velikost datového bufferu, tj. velikost textu včetně hlavičky dat textové proměnné. Pomocí makra TEXTBUFRESIZE je realokován datový buffer. V případě chyby paměti je funkce ukončena s navrácením chybového příznaku CY.
|
Nová adresa datového bufferu je uložena do proměnné textového řetězce [EBX]. Do datové struktury textového řetězce se uloží nová délka textu.
Obsah / Utility / TEXT / TextResize