Повеселитесь, программеры!

yeziz 22.06.2004 - 12:08 | Вот такой фрагмент кода обнаружил в проекте, который уже лет 5 работает у сотен клиентов. Обратите внимание на использование bVScrollOn, например. Если бы сам такое написал, то пошел бы топиться...
yeziz 1 - 22.06.2004 - 12:10 | DllExport BOOL EXPORT MGRM :: SetScrollBars ( int iMode ) { /* PURPOSE : Set scroll bars as according to current world's state. PARAMS : 1. mode - Can be either MGR_ENABLE , MGR_DISABLE ...... */ // long dRangeXL , dRangeXR , dRangeYB , dRangeYT; int tmp1,tmp2,tmp3,tmp4; if ( pImp -> bVScrollOn == NULL ) pImp -> bVScrollOn = &tmp1; if ( pImp -> bHScrollOn == NULL ) pImp -> bHScrollOn = &tmp2; if ( pImp -> bVScrollDisabled == NULL ) pImp -> bVScrollDisabled = &tmp3; if ( pImp -> bHScrollDisabled == NULL ) pImp -> bHScrollDisabled = &tmp4; ..... if ( iMode == MGR_DISABLE ) { if ( *pImp -> bVScrollOn ) { bChangeScrollDisp = TRUE; pImp -> pVScroll -> Hide (); } if ( *pImp ->bHScrollOn ) { bChangeScrollDisp = TRUE; pImp -> pHScroll -> Hide (); } *pImp -> bVScrollOn = *pImp -> bHScrollOn = FALSE; return bChangeScrollDisp; } .... if ( bScrollsOn && (iMode == MGR_START || iMode == MGR_ENABLE) ) { pImp -> pVScroll -> Show (); pImp -> pHScroll -> Show (); bChangeScrollDisp = TRUE; *pImp -> bVScrollOn = *pImp -> bHScrollOn = TRUE; } .... if ( bScrollsOn && (iMode == MGR_START || iMode == MGR_ENABLE) ) { if ( !bDispVertBar ) { if ( *pImp -> bVScrollDisabled ) return FALSE; pImp -> pVScroll -> Disable (); *pImp -> bVScrollDisabled = TRUE; } if ( !bDispHorzBar ) { if ( *pImp -> bHScrollDisabled ) return FALSE; pImp -> pHScroll -> Disable (); *pImp -> bHScrollDisabled = TRUE; } } и так далее. Желаю приятного времяпровождения. :-)))
AndyBox 2 - 22.06.2004 - 17:14 | Главное чтобы работало. Я когда начинал была у меня только одна книжка, так я чтоб передать значение из одной формы в другую, использовал поле в базе!!! :), ну это давно было, лет 7 назад.
yeziz 3 - 22.06.2004 - 17:35 | Не-е-е, ты не понял. Этот... программист... посадил в "глобальный" указатель адрес переменной на стеке. При втором и т.д. входе в функцию он его уже не меняет. Указатель смотрит на стек, которым кто-то уже пользуется. По этому месту пишут-читают, а я потом ловлю memory leaks... :-(
As Love 4 - 22.06.2004 - 21:23 | А я вот пару лет назад такую фичу видел. Прога на delphi должна была элементарно печатать платежные поручения. Вот, прихожу на новую работу, ну мне шеф:"Разбирайся с софтом, написанным до тебя". И вот вскрываю исходники этой самой программулины: function GetStringPrice(NumPrice:Real):String begin if NumPrice=0.01 then Result:='одна копейка'; .. .. if NumPrice=15.05 then Result:='пятнадцать рублей пять копеек'; .. .. end; и т.д. :))))) дальше понятно...
Bronya 5 - 22.06.2004 - 22:49 | Тоже недавно переписывал модуль, отвечающий за округление, печать денежных сумм и преобразование валют. Модуль был размером около 5000 строк кода 8-)))) . Я просто офигел, когда ЭТО увидел. Ко всему прочему иногда вместо суммы прописью появлялись надписи ErrorErrorError и тд. И в итоговых суммах появлялись неизвестно откуда взявшиеся копейки (Вот блин клиенты удивлялись 8-). . Прогресс не стоит на месте! http://alexmylex.narod.ru/manifesto1.html

>>