Na nějakou chybu s ReDim Preserve jsem narazil též, ale nevím jestli mi to blblo když nebyly řádně natypované druhy proměnných, nebo jestli mě překvapilo že mi to vynulovalo pole a pro zachování bylo potřeba zadávat konkrétní počet prvků
dim p()
p=array("a","b","c")
redim preserve p(2) 'zachová pole
redim preserve p() 'vynuluje pole
Od nějaké 7.x verze (již nevím které) se musí v některých případech striktně dodržovat typ proměnných. Dříve si to automaticky přetypovalo, pak již ne. Jestli někde máte definici pole s konkrétními typem proměnných např. dim p(2) as long, tak poté může zablbnout třeba redim preserve p(2) as variant. Přitom dříve to něco takového umožnilo.
Já vím že jsem měl vytvořené pole polí (dim p(2), p(0)=array(...), p(1)=array(...), p2=array(...)) a právě začalo blbnout když jsem mu měnil nějaké položky -> p(1)=něcoJiného. Dříve mi to fungovalo, ale od nějaké té verze 7.x to najednou začalo házet chyby, a nepřišel jsem na to jako to udělat v tom jednom poli, ale musel jsem pro to využít druhé pomocné pole p2=něcoJiného.
Je to již několik měsíců co se to objevilo, chtěl jsem to nahlásit, ale za tu dobu jsem se k tomu abych to detailněji prozkoumal a co nejjednodušeji reprodukoval ještě nedostal. Vím že jsem to nějak zkoušel jednoduše reprodukovat, ale to se chovalo v pořádku. Tak jsem si říkal že to holt musím postupně dostat z nějakých těch smyček, ale nechtělo se mi do toho. A teď už jsem zapomněl jak se to vlastně konkrétně chovalo - a v těch makrech kde jsem na to narážel jsem si to neokomentoval, takže už nevím jak se k té chybě dostat. A navíc se mi do toho stále strašně nechce.
Vím také, že v dřívějších verzích šlo třeba pro ztučnění písma vlastnost kurzoru CharWeight nastavit přes proměnnou string (oCur.CharWeight="150"), ale pak začalo být potřebné ji zadávat jako číslo, jinak to nebralo (oCur.charWeight=150).