А можно немного поподробнее? Чем такой способ плох? Хотелось бы не просто знать, а знать почему именно. Я пару раз так делал, все вполне хорошо себе работало. И если такой способ плох, то чем его лучше заменить?Хакер писал(а):Однако если автор хочет таким способом сделать что-то вроде таблицы или списка элементов, он должен немедленно отказаться от затеи сделать это с помощью клонируемых контролов.
ger_kar писал(а):Чем такой способ плох?
Странно, а в чем противоречие то? Наоборот смысл же ООП в том, что-бы можно было создать или используя готовый контрол, создать столько его экземпляров, сколько потребуется. Как может создание множества объектов одного типа противоречить ООП? С другой стороны, какой смысл создавать свой контрол, тратить на это кучу времени и писать кучу кода, а потом сделать его в одном экземпляре, вместо того, что-бы просто породить нужное количество стандартных готовых контролов или их комбинаций. По крайней мере я именно так и рассуждаю.Qwertiy писал(а):К тому же, противоречит принципам ООП
ger_kar писал(а):Странно, а в чем противоречие то? Наоборот смысл же ООП в том, что-бы можно было создать или используя готовый контрол, создать столько его экземпляров, сколько потребуется. Как может создание множества объектов одного типа противоречить ООП? С другой стороны, какой смысл создавать свой контрол, тратить на это кучу времени и писать кучу кода, а потом сделать его в одном экземпляре, вместо того, что-бы просто породить нужное количество стандартных готовых контролов или их комбинаций. По крайней мере я именно так и рассуждаю.Qwertiy писал(а):К тому же, противоречит принципам ООП
ger_kar писал(а):А можно немного поподробнее? Чем такой способ плох? Хотелось бы не просто знать, а знать почему именно. Я пару раз так делал, все вполне хорошо себе работало. И если такой способ плох, то чем его лучше заменить?
Не факт. Допустим, нужно вывести надпись с форматированием на неизвестном тебе языке. Например, на иврите, арабском, или санскрите. И неизвестно, на сколько корректной при таком подходе получится надпись: в том ли направлении, правильны ли всякие надстрочные и подстрочные закорючки и пр.Хакер писал(а):Есть например ещё такая шиза. Для отображения форматированного текста используют контрол RichEditBox. Правда заключается в том, что для отображения форматированного текста ничуть не сложнее, а в добавок ещё и в 1000 раз быстрее — отрисовывать форматированный текст вручную.
arthur2 писал(а):Не факт. Допустим, нужно вывести надпись с форматированием на неизвестном тебе языке. Например, на иврите, арабском, или санскрите. И неизвестно, на сколько корректной при таком подходе получится надпись: в том ли направлении, правильны ли всякие надстрочные и подстрочные закорючки и пр.
А я именно так кстати и думал, в том смысле, что состоят из массивов контролов-строк.Хакер писал(а):Контролы-таблицы не состоят из массивов контролов-строк
Оно конечно хорошо и с точки зрения расходов ресурсов и производительности, но с другой стороны это и самый трудоемкий и затратный (по количеству времени потраченного программистом) метод и исходя из этого, такой метод тоже наверное не всегда оправдан. А многие даже и когда оправдан не очень то его и используют. Почему-то принцип лени в отношении программиста срабатывает гораздо чаще, чем принцип лени в отношении творения программиста.Хакер писал(а):Основное правило: чем большая часть врутренностей контрола отрисовывается вручную на белом холсте, то есть с нуля, методами GDI, тем лучше.Причина в том, что окна (например те же кнопки и эдитбоксы), и плюс создаваемая на каждое (любое) окно пара DC — дорогой ресурс. Не настолько дорогой, чтобы вообще отказаться от окон внутри окон своих приложений, но невероятно дорогой, чтобы использовать массивы контролов для отображения повторяющихся элементов внутри других контролов
И еще лучше это проделать на стареньком дохленьком компьютере, современные то стоят далеко не у всехХакер писал(а):Простой пример того, как проверить тупизну вашего GUI в не самых лучших для него условиях — откройте кучу всего, включая несколько экземпляров вашего приложения и измените workarea.
Ну я такое точно никогда не делал , хотя и до идеи перестановки первого/последнего контрола тоже не додумался, я просто менял содержимое.Хакер писал(а):Тупость состоит в том, что если нужно создать свой собственный контрол ListBox, в котором будет содержаться всего 500 строчек, хотя одновременно отображаться могут только 23 (больше не влазит в габариты бокса), глупые программисты будут плодить 500 копий контролов
Ну наверное имелось ввиду то, что если названия переменных можно написать и на русском, то возможно и на других языках в том числе с какими нибудь надстрочными или подстрочными символами или иными языковыми наворотамиХакер писал(а):И что? Как это влияет на подсказку об аргументах?
ger_kar писал(а):Оно конечно хорошо и с точки зрения расходов ресурсов и производительности, но с другой стороны это и самый трудоемкий и затратный (по количеству времени потраченного программистом) метод и исходя из этого, такой метод тоже наверное не всегда оправдан.
ger_kar писал(а):Ну наверное имелось ввиду то, что если названия переменных можно написать и на русском, то возможно и на других языках в том числе с какими нибудь надстрочными или подстрочными символами или иными языковыми наворотами
Хакер писал(а):Я буду спрашивать «ну и что», пока кто-нибудь не скажет, что же такое надо написать в коде, чтобы тултип, сделанный как я показал, сломался бы.
Qwertiy писал(а):Почему не может? А если он на арабском? IDE чем-то отличается от текстового редактора?
Хакер писал(а):Это не недоработка. Никто не сможет ясно сказать, по каким правилам должен отображаться код, который представляет собой кашу из LTR и RTL текста.
Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 72