>Parametry, ktere jsou typu jenz se fyzicky predava jako pointer (tedy AnsiString, dynamicka pole, recordy ...) >se zasadne predavaji jako const, tedy const Caption: string. Tento "drobny detail" ma totiz vliv na rychlost >behu kodu, protoze se tak zabrani vytvoreni lokalni kopie uvnitr dane metody/procedury.
Obavam se, ze v techto pripadech k zadnemu vyznamnemu zrychleni nedojde. AnsiString a dynamicka pole (promenne pouzivajici reference counting) se vzdy predaji jako pointer a zadna kopie se automaticky pri vstupu do funkce nevytvari (pouze se zvysi reference counter na to stringo). Ovsem k vytvoreni kopie dojde, jakmile menim hodnotu promenne (stringa), protoze reference counter poukazuje na to, ze hodnota stringa je pouzita jeste v jine casti kodu. Pokud tedy nemenim hodnotu promenne, k zadnemu zpomaleni by dojit nemelo.
Zrejme si to pletes s promennymy typu ShortString, array, Record, atd - ty se pri volani bez CONST vzdy kopiruji do stacku (a to kopirovani muze trvat relativne dlouho) aby se zajistilo, ze funkce ma svoji vlastni lokalni kopii bufferu se kterou si muze delat co chce aniz by ovlivnila puvodni buffer. Pri pouziti CONST (nebo VAR) se predava pouze pointer, coz vede k tomu zrychleni ...