09-III-2000.

Нашао сам фајл под именом "VB diary.doc". То сам покушавао да завирим у вижуел бејсик (вб6, најновији алат за новог Хосија) и да видим могу ли да га користим. Требало би да ради на објекте, а ја сам се понадао да је ООП... овде сам, очигледно, покушавао да направим alert.prg у овом комаду... Мајкрософтове мудрости.

Четвртак, 9. март 2000.

ВБ нема функције min() и max(). Браво. Мораћу и њих да напишем, или да нагађам да ли их има у нечем што је некад купљено, и погађам где је то.

За димензије низова иду константе. Мора да има неки трик за динамичке димензије, али... ово нисам видео од Паскала још. Сви интерпретирани језици су имали динамичке низове, па су чак и строго компајлирани језици имали неке обилазнице. А, ево га:

„Можете да користите и Dim наредбу са празним заградама да објавите динамички низ. Након објаве динамичког низа, користите наредбу ReDim у процедури да дефинише број димензија и чланова низа. Ако поново објавите димензије за низовну променљиву чија је величина изричито наведена у наредби Private, Public или Dim, долази до грешке.“

Ето још једне бриге.

Дугме нема особине за фонт... чудно, осим ако се мисли на само системске дугмиће. Па бар ти дугмићи немају, тј они из Тулбар АктивИкса (које сам одабрао јер основни ВБ нема групе дугмића). Можеш да се играш појединачним дугмићима, истина, и да их некако поређаш. Нормално командно дугме има особину Фонт, али то нема како да се групише у неки објекат на који би могао да се ослониш, а да то сад сам правим, не бих још. Мада, можда бих и могао. Ако може да се уради Dim на збирци дугмића, можда би то било лакше него да се играм са Тулбар АИксом. Ма и тај АИкс је сувише видљив.

Уређивач текста ме излуђује. Табови не остају табови осим понекад. Ако га бришеш улево, таб је; ако га бришеш у месту, иде размак по размак. Ако обележиш неколико редова и играш се табом и контратабом, неће их узупчити како сам их узупчио јуче. А нема улепшивача да ти то уради. Посебно мрзим што у прозору за код не ради точкић на мишу. Очекивало би се да Мајкрософтово омиљено чедо буде опремљено свим најновијим (ајде бре стварно, то је само још једна особина прозора, то је само још један Пенџеријев пенџер... дотерајте, прекомпајлирајте, молићу). Кад бојадише синтаксу нема опције да боји стрингове, што би баш добро дошло да се провери упаривање наводника. Кад то имаш ни не провераваш више, видиш да се стринг не завршава где очекујеш.

И функцију Between ћу морати да напишем. Јес једноредна, али згодна. Питам се како да направим заједнички модул са функцијама, или библиотеку, која би била заједничка за пројекте. Виђао сам ВБА модуле са функцијама које се позивају којегде ал' са префиксом, тј мора да се инстанцира vba објекат негде, значи да се све оне учитају џумле, или да се све укључе (па и оне што ми не требају)... што га више знам, то га мање мрзим.

Дибагер. Е то је већ нешто. Има све прозоре - осматрачки, локални, чак и непосредни (али због нечег је модалан и не ради док трчи код, али дебагер објекат може да у њега шаље излаз, што му дође онда као DebugOut прозор). Има тулбар, отприлике исти као у остатку ВС света, са истим тастерима (Ф5 за старт, Ф8 за корак), можеш да поставиш прекиде где хоћеш - осим што ми форму покаже пре него што треб, а код у Sub Main канда не трчи. Можда и позива моју alert() функцију, откуд знам. Нема прозора за праћење, а кад гледам у прозор са кодом, немам појма који се ред сад извршава. Након једног КоракУ, засиви све у дебаг менију и тулбару. Ајд мало РТФМ. Ево шта каже Мајкрософтова пропаганда:

„Док угађате своје пројекте, ВБ обезбеђује сав потребан алат за развој апликације која трчи без застоја. Ево линкова ка информацијама о саветима и алатима које можете да користите да трчи савршено.“

А ево и нечег чему сам се увек дивио: „ВБ такође има посебне одлике за дебаговање, као што је способност за преправи-и-настави“. Свака част.

Још увек не успевам да га терам корак по корак. Каже да КоракУ и КоракПреко раде само у прекидном начину. Добро. Али онда кад кликнем на КоракУ, врати ме назад у непрекидни.

Било који дибагерски прозор може да се отвори дугметом са тулбара, али не и затвори. Мора да се кликне на његов иксић у углу. „Можете помоћу КоракУ да извршавате код наредбу по наредбу. (Ово је познато и као корачно извршавање.) Након корака кроз сваку наредбу, можете да видите њене ефекте гледајући у форме своје апликације или дебагујуће прозоре.“ Значи ли ово да не видиш код кроз који корачаш?

Не, видиш га - трик је нешто друго: Sub Main није аутоматски полазна тачка пројекта, него прва форма. У прозору Пројектна Група нигде не каже шта је полазна тачка, није име замашћено у том прозору. Дакле још један погрешан дифолт, поживео нам Мали мекани.

Функција Split() (изгледа врло згодно) ми је дала грешку несложивог типа кад сам задао димензије низа који треба да врати. Кад сам пустио да га, по дифолту, аутоматски направи, радила је. Питам се шта би било да сам објаве ставио за обавезне?

Проблем је што су по дифолту променљиве локалне.. што значи да бих неке објаве морао да преместим на ниво модула. Што и није лоше, само је дифолт другачији, и покушај да направим alert.prg је само обелоданио да је то чудо написано пре 6 година у фоксу за Дос, скроз процедурално.

Писање кода. Притиснем Home и врати ме на почетак реда... па, замало. До првог не-размака у реду. Још једном да оде скроз лево. Ако притискам још, врда између та два места. Размацима на крају реда не придаје толику пажњу.

Празна збирка (у мом случају, дугмићи у Тулбар АИксу) има Count=0 и 256 празних чланова. Згодно да се погледа у локалном прозору.

Дибагер. Контроле типа дрвета у осматрачком и локалном прозору се шире и скупљају само на миша. Плус, минус, звездица, стрелице - не раде. Ради на ентер, кад си у раширивом реду. Али ентер је ту најпогрешнији, јер су сви навикли да ентер затвара прозор. Никад не знаш да ли си у модалном дијалогу или ниси. Згодно у дибагеру је што видиш класу (или бар порекло) објекта и контекст где је дефинисан.

С обзиром на историју наредби Lset, Rset и Set у бејсику уопште, доделио сам референцу неком објекту без тога. Вратио ми је уврнуту грешку - као неки With блок или Set наредба са недефинисаним објектом. Оно јесте било унутар With блока, па сам мислио да је због тога. Патио сам се пола сата док нисам сконтао да ипак мора Set наредба, просто додељивање не ради. Тј ради за обичне променљиве, за објекте не.

Вести од куће, са сезама (који ми је до даљњег недоступан, али сам касније добио архиве, прилично комплетне): У Пожаревцу (одакле је Слоба), независни радио Бум 93 је затворен. Наводно нису платили коришћење фреквенције, а они тврде да никакав рачун нису ни добили. Такође је забрањен и Голф радио (спортски!) због ко зна чега, а њихову фреквенцију преузела станица неког турбо фолк певача.

На једном од сервера се (опет) игра Квејк.

Брља јавља како стоје ствари у Аваију - раде плате за Комедију, Свемикс закачио вирус па им се доста тога сјебало, и сви су јуче изљубили Цицу за осми март.


Спомиње се: alert.prg, Аваи, Горан Стаковић (Брља), Зорана Урдуљ (Цица), Мајкрософт (Мали мекани), Свемикс, сезам, фокс, Хоси, на енглеском