SON>Если знать технику, то все нормально получается, ты зря, кстати софт не скачал, там ничего не моргает, над интерфесом очень долго бились там у нас даже диалоги все точь в точь по стандарту. Про моргание, мне что нравится в VCL, там у каждого контрола, который представляет собой окно, есть свойство DoubleBuffered, если его поставить в тру, то моргать он уже никогда не будет, а еще инетерсней его реализация, я когда посмотрел в исходниках, у себя в проге на MFC такое же замутил, переписал большинство контролов, чтобы у них тоже было свойство DoubleBuffered. А по поводу гор кода, это было бы страшно, если бы этот код был не ООП, а если следовать ООП, то по идее глюков должно быть меньше. Очень часто, у начинающих кодеров на Delphi есть одна глобальная (так сказать extern) проблема: не понимание ООП, из за этого, часто случаются косяки, потому что VCL рассчитана прежде всего на ООП, SON> пример ламаковского кода: SON> ... SON> ShowInformationBoxInCenter(Form1, 'Message'); SON> ... SON> пример правильного кода: SON> ... SON> ShowInformationBoxInCenter(self, 'Message'); SON> ...
t.e. po vashemu OOP zakluchaetsya v upotreblenii "self"? Vot kak delphi uchit "chto takoe OOP?"
Nastoyaschiy OOPshnik sdelal bi ShowInformationBoxInCenter virtualnim methodom obschego predka vseh svoih "form" proekta i napisal bii
ShowInformationBoxInCenter('Message');
Voobsche osnovnaya beta etih delphey — chto OOP fakticheski tam predstavleno tolko tem chto VCL razbita na classi. "Programmeri" na delphi schitaut chto OOP — eto kogda u tebya v nazvanii funkcii est simvol '.' A chto takoe i zachem nado polimorphizm, nasledovanie, virtualnie methodi etc. oni daavno zabili po sdache v VUZe zacheta/examena po programmuhe..
Samie prodvinutie delphyatniki kotorie ya vstrechal dazhe ponyali chto exzemplyarov TForm2 mozhet bit v programme srazu mnogo... No ya esche ne videl ni odnogo "korennogo" delphyatnika (ludey kotorie odinakovo horosho pishut na delphi/C++/Java proshu ne bespokoitsya ) kto dodumalsya hotyabi otnasledovatsya ot TForm, sdelat chtoto tipa TAnyDocumentForm, a ot nee otnasledovat TBmpDocumentForm, TTextDocumentForm a ot TTextDocumentForm — THtmlDocumentForm i vse eto zauzat v svoem kode, v kotorom netu ni odnogo upominanya o TBmpDocumentForm, TTextDocumentForm i THtmlDocumentForm, — a core logica rabotaet tolko s objectami tipa TAnyDocumentForm. A tomo cherez polgoda chtobi mona bilo bistro sest i otnasledovat ot TBmpDocumentForm kakoy nit TGifDocumentForm, napisat 1 "unit", ne trogaya ostalnogo koda i dobavit v progu novy funkcional. I estestvenno bez primenenia copy-paste... Obichny delhyatnik, schitauschy za OOP funkcii tipa OnButton1Click skazhet — "eto ideal i nedostizhimo", a ved takoy podhod, imya kotoromu OOP, vpolne uspeshno primenyaetsa na praktike. Prosto Delphi iznachalno priuchivaet k kakoy-to ubogo-izvraschennoy forme OOP. Nemnogie nahodyat v sebe sily vzglyanut dalshe etogo, bolshinstvo tak i prodolzhaut cherez copy-paste copirovat procedury renderinga kartinki iz svoey TBmpForm v TGifForm...