Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: CL | DM;

Вниз

Увеличится ли скорость в моём случае если я сделаю 2 потока?   Найти похожие ветки 

 
rolex   (2005-03-14 21:57) [80]

To Defunct:
Ууу... я страшный баг нашёл.
Когда запустите прогу, посмотрите в Диспетчере Задач скока она места в ОЗУ съедает. Ок запомнили. Потом каждый раз при нажатии кнопки "Скан", размер проги в ОЗУ всё больше и больше растёт!!!


 
Дмитрий Мыльников   (2005-03-14 22:55) [81]

Небольшое замечание по ООП в Delphi.

Во-первых, между записью

Inherited;

и

Inherited Create(False);

очень большая разница. Не помню начиная с какй версии, но в D7 точно, если написано просто Inherited, то компилятор подставляет вызов функции предка только в тех случаях, когда она в нём действительно существует. То есть, если в предке она объявлена abstract, либо не объявлено вовсе, то никакого вызова вставлено не будет. Зато если позже она перестанет быть абстрактной или появляется в предке, и в ней появится какой-то код, то вызов будет выполнен.
Если же написать с явным указанием, как во втором случае, то компилятор будет пытаться подставлять вызов всегда, в результате чего будет либо ошибка во время компиляции, либо abstract error во время выполнения (жаль только, что этот механизм не работает для функций).


 
Anatoly Podgoretsky ©   (2005-03-14 22:59) [82]

Естественно это только для методов.


 
Дмитрий Мыльников   (2005-03-14 23:06) [83]

А я бы вообще запретил использовать статические процедуры и функции. :)))
Просто недавно пришлось одну прогу переделывать, так мы там с этими статическими функциями намучались. Вроде начнается иерархия классов, всё как у взрослых, только большая часть фукнций в базовых классах объявлена abstract. А ещё чуть позже выяснилось, что в конечных классах понатыкано вызовов из статических функций, и всё это ООП тем самым "коту под хвост". Её уже не перекроешь никак, и виртуальной не объявишь. Короче, пришлось всё почти полностью переделывать...


 
Anatoly Podgoretsky ©   (2005-03-14 23:09) [84]

Ну это уровень компетентности программиста.
Молодец, наш человек - переписать все нафиг :-)


 
GuAV ©   (2005-03-14 23:13) [85]

А самое  прикольное то, что этот inherited хоть и нафиг не нужен для WM_USER + 90, ошибка компиляции вызванная его наличием IMHO указывает на ошибку при копировании кода, т.к. в message методе inherited есть вызов обработчика сообщения наследника, и не исключено что в этом и заключается причина [80].


 
Defunct ©   (2005-03-15 10:10) [86]

except
   on E:Exception do ShowMessage(E.ClassName+" " +E.Message)
end
inherited;
end;
То что жирным выделил удалил из кода. А то компилятор ругался.


точка с запятой после end потерялась.

rolex   (14.03.05 21:57) [80]

Strings := TStringList.Create;
В OnCreate формы перенесите

А в Button1Click - замените Strings := TStringList.Create; на Strings.Clear;



Страницы: 1 2 3 вся ветка

Текущий архив: 2005.03.27;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.049 c
9-1103911870
Макс
2004-12-24 21:11
2005.03.27
Dce


1-1110922632
Ji
2005-03-16 00:37
2005.03.27
Странное поведение программы. Объясните, плз.


3-1109250427
tradakad
2005-02-24 16:07
2005.03.27
проблема с ADO


1-1110853007
secher
2005-03-15 05:16
2005.03.27
читаем из файла


1-1110639306
starmaster
2005-03-12 17:55
2005.03.27
Registry -> DWORD