![]() |
Приветствую всех программистов, работающих в среде C++Builder/
Полазив по разделу Программирования форума oszone - *обнаружил, что на форуме большое кол-во тем посвещенных C++ Builder'у. Возможно будет удобнеее организовать одну тему и вести в ней все обсуждения(что собствено я и сделал). Задавайте сюда свои вопросы, предлодения. Опубликовывайте исходные коды. Предлагайте свои методы решение проблем. <b> ПРОШУ МОДЕРАТОРА ПРИКРЕПИТЬ ЭТУ ТЕМУ </b> надеюсь просьба будет услышана. Хотелось бы чтобы особо была отмечена тема ООП. На мой взгялд мало кто польщуется сей мощной структурой(сам до недавнего времени игнорировал ее). Сам не считаю себя профессионалом экстро класса(отношу себя к профессионалу - люьителю) поэтому сам буду рад услышать интересные предложения. Для начала темы предлагаю обсудить преимущество ООП. |
C++Bulder 6
XCoder
Хорошее начало. Но, боюсь, одного энтузиазма мало. Вы сами-то какие "интересные предложения" предлагаете? Раз уж Вы создали такую тему, то Вам и карты в руки. Чтобы никто не подумал, что я просто издеваюсь, подкину Вам идею. Вот например ООП. Я плохо понимаю, что это такое. Просто пишу себе программы, не задумываясь, модульное ли у меня программирование или объектно-ориентированное. Какие задачи, по-Вашему, нельзя решить без ООП? Расскажите, мне действительно интересно. |
C++Bulder 6
Без ООП можно сделать всё. Любая программа C++ транслируется в C и ассемблер. Просто с ООП гораздо проще написать хорошую программу. Это - сводка правил, позволяющих писать более устойчивый к обычным ошибкам код.
|
C++Bulder 6
Всем здравствуйте. Никто не подскажет как обойти погрешность в float и double переменных, типа:
в таблице хранится значение 3,62 float a = table->FieldByName("sum")->Value; после этого в a хранится значение 3.62000076 (или типа того) Подскажите если кто знает, плиз. |
C++Bulder 6
telepath
Случаем не денежки хранишь в таблице? table->FieldByName("sum")->AsFloat; попробуй; функцию RounTo попробуй. [s]Исправлено: Megabizon, 20:19 13-04-2004[/s] |
C++Bulder 6
Не RoundTo?
|
C++Bulder 6
Prisoner
Ага, она родимая. Но хотелось бы сказать, что если telepath собирается денежки хранить в базе, то для этого лучше использовать Денежный тип данных, а не float. Меньше гемора с "плавающей копейкой" будет. |
C++Bulder 6
Денежки-то денежки :) Но вот только RoundTo не подойдет, ибо изначально никто не в курсе на сколько округлять (до какого знака :) А вот AsFloat не пробовал, пасиб за информацию. А чем денежный тип-то хорош, я просто им не пользовался?
Добавлено: telepath AsFloat не срабатывает :( |
C++Bulder 6
Цитата:
Цитата:
|
C++Bulder 6
Господа! Какая дискретность у генератора случайных чисел в C++Builder 6?
|
C++Bulder 6
telepath
Кстати double корректно работает... С ним ничего не надо делать. Странно. |
C++Bulder 6
Еще вопросик, как в TStringGrid покрасить одну колонку?
|
C++Bulder 6
telepath
double и будет работать. А насчет float, так у него точность представления 7 значащих цифр. По какому формату выводишь (ну типа: %15.10f), он столько и показывает, т.к. приводит float к double. |
C++Bulder 6
Как в C++Builder6 сделать так чтобы действия контекстного меню (PopupMenu) относились только к выделеной строчке StringGrid.
Спасибо. |
C++Bulder 6
Есть такая проблема... нада скопировать папку с ее содержимым с одного места в другое. Что нада накорябать в билдере, чтоб это произошло, заранее благодарен за ответы
|
C++Bulder 6
Fialochka
Запоминайте выделенные строчки до вызова меню Добавлено: AroX Исли хотите вовремя копирования еще что-то с ними делать, то можно через FileOpen FileWrite А так вроде есть какие-то стандартные api - функции виндов, честно говоря не помню, попробую посмотреть |
C++Bulder 6
char *From = "C:\\*.*\0";
char *To * = "C:\\0"; SHFILEOPSTRUCT op; ZeroMemory(&op, sizeof(op)); op.hwnd *= Handle; op.wFunc = FO_MOVE;//FO_COPY; op.pFrom = From; op.pTo * = To; op.fFlags= 0; SHFileOperation( &op); Вот, нашел.... Есть теперь другоу вопрос, как из проги запустить архиватор, или еще какую прогу [s]Исправлено: AroX, 12:04 20-04-2004[/s] |
C++Bulder 6
Цитата:
|
C++Bulder 6
Господа!
Может кто-то знает где скачать полный хелп к 6-му Бидлеру? А то у нас пиратики его на дисках обрезают, буду благодарен! |
|
telepath
Чтоб Вы знали все ХОРОШИЕ программы для днежного типа используют копейки!!! И нету там гемороя с округлением! |
Подскажите пожалуйста, как в среде C++ Builder 6.0 создавать окна, а то я умею работать только с формами, а окна - это жэ совсем другие возможности, подкажите плз.. начинающему програмисту.....
|
Подскажите пожалуйста, как в среде C++ Builder 6.0 создавать окна, а то я только с формами умею работать.......... научите пожалуйста..................:lol:
|
Marker
Форма - тоже окно. Диалог - тоже окно. MDI - тоже окна. В принципе, любой виджет может стать самостоятельным окном. Вы о чём говорите? Не работаю я с C++ Builder 6.0, ну нет у меня его... Но подозреваю, что в меню "Файл" есть пункт "Создать.." или "Новый..." А дальше визард, как в MVS |
Я имел ввиду окна_Win32.............. спасибо за ваш отзыв, я прошарил немного форум, и уже нарыл необходимую мне инфу на firststeps.ru:up:
|
Никто не знает, как подключиться по сети к BDE? Какой для этого нужен компонент или связка компонентов?
|
Вот пишу курсовой по методам оптимизации... Столкнулся казалось бы с пустяковой проблемой - рисование графиков и областей на канве. Если рисовать по-пиксельно, то ооочень геморно получается: во-первых долго, а во-вторых при частой перерисовке пожирается оперативка. Если знаете какие-то еффективные алгоритмы построения графиков пожалуйста подскажите - осталось две недели!
|
_LucID
Во-первых, не надо размножаться по темам. Во-вторых, ну не может программа, отображающая график (2D) использовать 300+ Мб ОЗУ. Можно посчитать: 1600*8 байт уйдёт в массив под значения функции + около 3-4 Мб на разные библиотеки + размер EXE и всех внешних ресурсов. В-третьих, "по-пиксельно" рисовать как минимум некрасиво (есть MoveTo и LineTo, а также еще много чего в GDI). Ну и в-четвёртых, канва - это такая х/б ткань, графики на ней рисуются с помощью линейки, кисточки и красок. |
Всем привет. Вот пишу курсовик Обнаруживается ошибка [C++ Предупреждение] Unit1.cpp(60): W8018 Assigning unsigned long to TColor
void __fastcall TForm1::ProcessingClick(TObject *Sender) { int J,JH,I,IH,mr,mg,mb; IH=Image1->Picture->Bitmap->Height; JH=Image1->Picture->Bitmap->Width; Image2->Picture->Bitmap->Height=IH; Image2->Picture->Bitmap->Width=JH; for(I = 0; I <IH; I++) for(J = 0; J < JH; J++) { // попиксельное чтение mr=GetRValue(Image1->Canvas->Pixels[J][i]); mg=GetGValue(Image1->Canvas->Pixels[J][i]); mb=GetBValue(Image1->Canvas->Pixels[J][i]); mr=1.5*mr; mg=1.5*mg; mb=1.5*mb; if (mr>255) mr=255; else mr=mr; if (mr<0) mr=0; else mr=mr; if (mg>255) mg=255; else mg=mg; if (mg<0) mg=0; else mg=mg; if (mb>255) mb=255; else mb=mb; if (mb<0) mb=0; else mb=mb; Image2->Picture->Bitmap->Canvas->Pixels[J][i] = RGB(mr, mg, mb); Ошибка вот тут ProgressBar1->Position = I*100/IH; } } |
Андрей_Рыбаков@vk, не соответствие типов. RGB MSDN попробуйте привести передаваемый аргумент к типу byte.
|
Время: 08:16. |
Время: 08:16.
© OSzone.net 2001-