Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   C++ Builder 6 (http://forum.oszone.net/showthread.php?t=29575)

XCodeR 04-04-2004 17:24 204662

Приветствую всех программистов, работающих в среде C++Builder/

Полазив по разделу Программирования форума oszone - *обнаружил, что на форуме большое кол-во тем посвещенных C++ Builder'у. Возможно будет удобнеее организовать одну тему и вести в ней все обсуждения(что собствено я и сделал).

Задавайте сюда свои вопросы, предлодения. Опубликовывайте исходные коды. Предлагайте свои методы решение проблем.

<b> ПРОШУ МОДЕРАТОРА ПРИКРЕПИТЬ ЭТУ ТЕМУ </b>

надеюсь просьба будет услышана.

Хотелось бы чтобы особо была отмечена тема ООП. На мой взгялд мало кто польщуется сей мощной структурой(сам до недавнего времени игнорировал ее).

Сам не считаю себя профессионалом экстро класса(отношу себя к профессионалу - люьителю) поэтому сам буду рад услышать интересные предложения.

Для начала темы предлагаю обсудить преимущество ООП.

hasherfrog 06-04-2004 09:55 204663

C++Bulder 6
 
XCoder
Хорошее начало. Но, боюсь, одного энтузиазма мало.  Вы сами-то какие "интересные предложения" предлагаете? Раз уж Вы создали такую тему, то Вам и карты в руки.
Чтобы никто не подумал, что я просто издеваюсь, подкину Вам идею. Вот например ООП. Я плохо понимаю, что это такое. Просто пишу себе программы, не задумываясь, модульное ли у меня программирование или объектно-ориентированное. Какие задачи, по-Вашему, нельзя решить без ООП? Расскажите, мне действительно интересно.

pva 13-04-2004 09:42 204664

C++Bulder 6
 
Без ООП можно сделать всё. Любая программа C++ транслируется в C и ассемблер. Просто с ООП гораздо проще написать хорошую программу. Это - сводка правил, позволяющих писать более устойчивый к обычным ошибкам код.

telepath 13-04-2004 18:18 204665

C++Bulder 6
 
Всем здравствуйте. Никто не подскажет как обойти погрешность в float и double переменных, типа:

в таблице хранится значение 3,62

float a = table->FieldByName("sum")->Value;

после этого в a хранится значение 3.62000076 (или типа того)

Подскажите если кто знает, плиз.

Megabizon 13-04-2004 19:59 204666

C++Bulder 6
 
telepath
Случаем не денежки хранишь в таблице?

table->FieldByName("sum")->AsFloat; попробуй;
функцию RounTo попробуй.


[s]Исправлено: Megabizon, 20:19 13-04-2004[/s]

Prisoner 14-04-2004 04:03 204667

C++Bulder 6
 
Не RoundTo?

Megabizon 14-04-2004 08:50 204668

C++Bulder 6
 
Prisoner
Ага, она родимая.
Но хотелось бы сказать, что если  telepath собирается денежки хранить в базе, то для этого лучше использовать Денежный тип данных, а не float. Меньше гемора с "плавающей копейкой" будет.

telepath 14-04-2004 10:59 204669

C++Bulder 6
 
Денежки-то денежки :) Но вот только RoundTo не подойдет, ибо изначально никто не в курсе на сколько округлять (до какого знака :) А вот AsFloat не пробовал, пасиб за информацию. А чем денежный тип-то хорош, я просто им не пользовался?

Добавлено:

telepath

AsFloat не срабатывает :(

Megabizon 14-04-2004 13:42 204670

C++Bulder 6
 
Цитата:

ибо изначально никто не в курсе на сколько округлять (до какого знака
И как ты собираешься делать если не знаешь.
Цитата:

А чем денежный тип-то хорош, я просто им не пользовался?
Я тебе говорил чем хорош, см. выше. плюс к этому с округление маятся не будешь. Это только по началу он окажется страшным, а когда начнешь с ним работать все просто.

Guest 15-04-2004 00:47 204671

C++Bulder 6
 
Господа! Какая дискретность у генератора случайных чисел в C++Builder 6?

telepath 15-04-2004 10:27 204672

C++Bulder 6
 
telepath

Кстати double корректно работает... С ним ничего не надо делать. Странно.

telepath 15-04-2004 16:19 204673

C++Bulder 6
 
Еще вопросик, как в TStringGrid покрасить одну колонку?

shurikan 16-04-2004 06:33 204674

C++Bulder 6
 
telepath
double и будет работать. А насчет float, так у него точность представления 7 значащих цифр. По какому формату выводишь (ну типа: %15.10f), он столько и показывает, т.к. приводит float к double.

Fialka 19-04-2004 08:29 204675

C++Bulder 6
 
Как в C++Builder6 сделать так чтобы действия контекстного меню (PopupMenu) относились только к выделеной строчке StringGrid.

Спасибо.

AroX 19-04-2004 18:22 204676

C++Bulder 6
 
Есть такая проблема... нада скопировать папку с ее содержимым с одного места в другое. Что нада накорябать в билдере, чтоб это произошло, заранее благодарен за ответы

telepath 20-04-2004 10:26 204677

C++Bulder 6
 
Fialochka

Запоминайте выделенные строчки до вызова меню

Добавлено:

AroX

Исли хотите вовремя копирования еще что-то с ними делать, то можно через FileOpen FileWrite
А так вроде есть какие-то стандартные api - функции виндов, честно говоря не помню, попробую посмотреть

AroX 20-04-2004 12:02 204678

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]

Megabizon 20-04-2004 14:29 204679

C++Bulder 6
 
Цитата:

Есть теперь другоу вопрос, как из проги запустить архиватор, или еще какую прогу
Смотри в сторону ShellExecute

AlexGor 21-04-2004 22:34 204680

C++Bulder 6
 
Господа!

Может кто-то знает где скачать полный хелп к 6-му Бидлеру?
А то у нас пиратики его на дисках обрезают, буду благодарен!

telepath 23-04-2004 10:46 204681

AlexGor

Посмотри на http://сbuilder.ru или http://borland.xportal.ru/

DYURIK 29-04-2004 16:26 204682

telepath
Чтоб Вы знали все ХОРОШИЕ программы для днежного типа используют копейки!!! И нету там гемороя с округлением!

Marker 14-05-2004 14:49 204683

Подскажите пожалуйста, как в среде C++ Builder 6.0 создавать окна, а то я умею работать только с формами, а окна - это жэ совсем другие возможности, подкажите плз.. начинающему програмисту.....

Marker 20-05-2004 18:34 204684

Подскажите пожалуйста, как в среде C++ Builder 6.0 создавать окна, а то я только с формами умею работать.......... научите пожалуйста..................:lol:

hasherfrog 21-05-2004 09:33 204685

Marker
Форма - тоже окно. Диалог - тоже окно. MDI - тоже окна. В принципе, любой виджет может стать самостоятельным окном. Вы о чём говорите?
Не работаю я с C++ Builder 6.0, ну нет у меня его... Но подозреваю, что в меню "Файл" есть пункт "Создать.." или "Новый..." А дальше визард, как в MVS

Marker 21-05-2004 15:50 204686

Я имел ввиду окна_Win32.............. спасибо за ваш отзыв, я прошарил немного форум, и уже нарыл необходимую мне инфу на firststeps.ru:up:

Guest 23-07-2004 13:33 204687

Никто не знает, как подключиться по сети к BDE? Какой для этого нужен компонент или связка компонентов?

_LucID 24-04-2005 19:19 318724

Вот пишу курсовой по методам оптимизации... Столкнулся казалось бы с пустяковой проблемой - рисование графиков и областей на канве. Если рисовать по-пиксельно, то ооочень геморно получается: во-первых долго, а во-вторых при частой перерисовке пожирается оперативка. Если знаете какие-то еффективные алгоритмы построения графиков пожалуйста подскажите - осталось две недели!

Savant 25-04-2005 22:37 319143

_LucID
Во-первых, не надо размножаться по темам. Во-вторых, ну не может программа, отображающая график (2D) использовать 300+ Мб ОЗУ. Можно посчитать: 1600*8 байт уйдёт в массив под значения функции + около 3-4 Мб на разные библиотеки + размер EXE и всех внешних ресурсов. В-третьих, "по-пиксельно" рисовать как минимум некрасиво (есть MoveTo и LineTo, а также еще много чего в GDI). Ну и в-четвёртых, канва - это такая х/б ткань, графики на ней рисуются с помощью линейки, кисточки и красок.

Андрей_Рыбаков@vk 26-04-2013 11:49 2139862

Всем привет. Вот пишу курсовик Обнаруживается ошибка [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;
}
}

lxa85 27-04-2013 09:54 2140368

Андрей_Рыбаков@vk, не соответствие типов. RGB MSDN попробуйте привести передаваемый аргумент к типу byte.


Время: 08:16.

Время: 08:16.
© OSzone.net 2001-