
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.173] |
![]() |
|
Сообщ.
#1
,
|
|
|
Я тут на досуге взялся подправить статьи из сайтовского FAQ, cи-разделы: FAQ раздела VC++ и FAQ раздела Borland C++ Builder (<=> рабочий вариант FAQ'а)
Большая просьба в этом топике постить сообщения на замеченные вами ошибки, неточности, опечатки и т.д - вообщем, то, что нужно, на ваш взгляд, исправить. Пример сообщения см. ниже. Лучше замечания не сливать в один пост - на каждое замечание свое сообщение В принципе, в перспективе, предполагается заняться и форумским FAQ, так что приветствуются и подобные посты для исправлений в нем. |
Сообщ.
#2
,
|
|
|
Раздел: C/C++/Visual C++
Тема: Как сделать окно прозрачным Что не так: В коде ![]() ![]() // Sets the window to 70% visibility. m_pSetLayeredWindowAttributes(m_hWnd, 0, (255 / 70) * 100, LWA_ALPHA); Цитата MSDN; SetLayeredWindowAttributes Function Следовательно, для получения 70% видимости надо передать значение 255*70/100 ( 178, а не 44, как в исходном выражении). ... Parameters ... bAlpha [in] Alpha value used to describe the opacity of the layered window. Similar to the SourceConstantAlpha member of the BLENDFUNCTION structure. When bAlpha is 0, the window is completely transparent. When bAlpha is 255, the window is opaque. ... |
Сообщ.
#3
,
|
|
|
Раздел: CBuilder
Тема: Как сформировать регион по картинке? Что не так: в функции CreateRgnFromBitmap нет удаления создаваемых временных регионов. Это приводит и к утечке памяти (впрочем, небольшой), но, что самое противное, к огромному числу "лишних" объектов GDI, а число их в системе ограничено. Для устранения этого эффекта надо после обоих вызовов CombineRgn(ResRgn, ResRgn, Rgn, RGN_OR); добавить строку DeleteObject(Rgn); |
Сообщ.
#4
,
|
|
|
Раздел: C / C++ / Visual C++
Тема: Перевод из DOS кодировки в Windows и наоборот Что не так: Забыты символы 'Ё'(240-OEM, 168-ANSI), и 'ё'(241-OEM, 184-ANSI) |
Сообщ.
#5
,
|
|
|
Раздел: CBuilder
Тема: Цвет( TColor ) - общие вопросы Что не так: В двух последних ответах ("Как имея TColor, получить ..." и "Как узнать яркость ...") применение GetRValue и т.п. прямо к объекту TColor color не совсем корректно, т.к. для констант типа clWindow, clBtnFace и т.п. эти макросы вернут неверные значения. Нужно сначала конвертировать color c с помощью int __fastcall ColorToRGB(TColor Color);, и полученное значение можно смело использовать для получения значений RGB-составляющих цвета. |
Сообщ.
#6
,
|
|
|
Раздел: CBuilder
Тема: Как сделать, чтобы в TEdit можно было вводить только числа? Что не так: Почему-то значение Key проверяется на равенство '.' или ',' и, если это так, заменяется на значение DecimalSeparator. Но DecimalSeparator в принципе может быть любым (как настроит пользователь Windows). Поэтому и сравнивать надо с DecimalSeparator. Да и вобщем код с пустыми блоками if и else if выглядит странно. На мой взгляд, так будет выглядеть лучше: ![]() ![]() if ( ((Key < '0') || (Key > '9')) // не цифры && Key!=8 // не <- (забой) && (Key!=DecimalSeparator //не разделитель целой и дробной частей || static_cast<TEdit*>(Sender)->Text.Pos(DecimalSeparator)!=0) //или разделитель, но уже есть ) Key=0; |
Сообщ.
#7
,
|
|
|
Раздел: CBuilder/Интерфейс
Тема: Как сменить цвет прогрессбара? Что не так: Вместо 0x409 лучше написать корректно PBM_SETBARCOLOR и не использовать напрямую VCL-ный тип TColor, а предварительно преобразовать в COLORREF используя ColorToRGB(TColor) из Graphics.hpp - иначе те значения TColor, в которых используется старший байт (для системных цветов) будут восприняты не верно. |
Сообщ.
#8
,
|
|
|
Ссылка "Книги по программингу" раздела "Прочее" вот с этой страницы http://www.sources.ru/cpp/faqs/index.htm битая.
|