Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» FAQ по Borland C++ Builder

Автор: RuKamikadze
Дата сообщения: 02.04.2007 23:19

Цитата:
Имхо, при использовании "<<" в ofstream всегда будет текст, если ты не переопределишь под себя "<<"...


Т.е. "<<" изначально, поумолчанию определяет режим загрузки информации в файл в виде набора "чаровских" символов или 8-битных пакетов. А любые данные другого типа, не "чаровского" с помощью оператора "<<" записать в файл не получится?

Еще раз благодарю за разъяснения Garrett.
Автор: Garrett
Дата сообщения: 02.04.2007 23:26

Цитата:
А любые данные другого типа, не "чаровского" с помощью оператора "<<" записать в файл не получится?

Я ж написал, если ты не переопределишь под себя "<<".
На мой взгляд, чем изобретать велосипед, лучше написать write, тем более, что по отношению ко всему коду программы, таких операторов много не будет
Автор: RuKamikadze
Дата сообщения: 02.04.2007 23:30
Garrett

Цитата:
Исправь в проекте пути к этому компоненту.


А где эти пути править, в каком файле? Я их собственноручно нигде и не прописывал.
Автор: Garrett
Дата сообщения: 02.04.2007 23:41

Цитата:
А где эти пути править, в каком файле? Я их собственноручно нигде и не прописывал.

В свойствах проекта или свойствах среды.
Просто я предполагаю, что твой компонент установлен в разные папки на этих двух компах.
Автор: RuKamikadze
Дата сообщения: 02.04.2007 23:51
Ты прав, я разобрался - все работает!!!!
Блин, спасибо Garrett, очень помог, я столько с этим...
Если хочешь, пивом проставлюсь=)
Автор: monsoon
Дата сообщения: 03.04.2007 15:05
получил проект с исходниками на BCB5, строящий отчет в Excel. Перекомпилировал в BCB6.
Выдается ошибка EOleSYSError "неверный тип переменной".
Сравнивал #pragma link в cpp и #include в h для BCB5 и BCB6 после компиляции - одинаковы.


Код: AnsiString Cell_mas1[]={"E","G","I","K","N","P","R","T","V","X","Z","AB","AD","AF"}
...
WS.OlePropertyGet("Range",Cell_mas1[i]+"3:"+Cell_mas1[i]+"3").OlePropertyGet("Interior").OlePropertySet("ColorIndex",40);
Автор: afiget
Дата сообщения: 04.04.2007 12:21

Цитата:
Почему в BCB5 происходит автоматическое привидение типа, а в BCB6 возникает ошибка?

Вроде как используются разные версии библиотеки-обертки для офисных компонент. В 5-ке обертка требовала один тип, в 6-ке тип изменили или в библиотеке убрали (по каким-то соображениям) принудительное приведение типа.
Автор: Larry
Дата сообщения: 15.04.2007 10:57
Подскажите, как реализовать перенос программы, написанной на С++Builder (из Borland Studio 2006) на другие компьютеры без файлов *.bpl. В частности, делая по аналогии с указанием:

Цитата:
Чтобы перенести прогу на комп без билдера, и если ты работаешь только со стандартными компонентами и не пользуешь базы данных, по в свойствах проекта тыкни Release (Compiler), сними галочку с Build with Runtime Packages (Packages), сними галочку Use dynamic RTL (Linker) и прихвати в папочку программы borlndmm.dll и cc3260mt.dll из папки bin билдера.


Не нашел опции Build with Runtime Packages (Packages) в разделе Compiler.

Заранее благодарен за помощь...
Автор: Garrett
Дата сообщения: 15.04.2007 11:13
Larry
У меня в Turbo C++ так:
Project Options / Linker / Linking / надо снять галочку с "Use dinamic RTL"
Project Options / Packages / надо снять галочку с "Build with runtime packages"
Автор: bandyn
Дата сообщения: 15.04.2007 13:19
Пожта подскажите. Нужно сделать так чтобы прога запускалась с определенным приоритетом процессора например: ниже-среднего.
1. Как проекту (программе) задать приоритет процессора?
2. Как узнать колличество доступных процессоров в системе?
3. Как задать соответствие процессоров (например программа должны выполняться только на 2-м процессоре) ?

Среда разработки: BCB 6 (Update 4).
Спасибо.
Автор: Abs62
Дата сообщения: 15.04.2007 14:16
bandyn

Цитата:
1. Как проекту (программе) задать приоритет процессора?

SetPriorityClass, SetThreadPriority.

Цитата:
2. Как узнать колличество доступных процессоров в системе?

GetSystemInfo, GetProcessAffinityMask.

Цитата:
3. Как задать соответствие процессоров (например программа должны выполняться только на 2-м процессоре) ?

SetThreadAffinityMask.
Автор: bolt90
Дата сообщения: 15.04.2007 17:06
Как можно сохранить параметры(цвета, шрифт и т.д) програмы в ini файл, а потом загрузить.
Автор: Jokerjar
Дата сообщения: 16.04.2007 13:32
bolt90, это позволит сделать класс TIniFile. Посмотри в хелпе
Автор: bolt90
Дата сообщения: 16.04.2007 16:53
Jokerjar, сенк нашол, но при запуске програмы выдает ошыбку
[C++ Error] Unit1.cpp(15): E2451 Undefined symbol 'TIniFile'
[C++ Error] Unit1.cpp(15): E2451 Undefined symbol 'ini'
[C++ Error] Unit1.cpp(16): E2303 Type name expected
[C++ Error] Unit1.cpp(16): E2379 Statement missing ;
[C++ Error] Unit1.cpp(24): E2158 Operand of 'delete' must be non-const pointer
Автор: dyr farot
Дата сообщения: 16.04.2007 18:53
при "запуске" или при сборке?
смотри справку на предмет необходимых для TIniFile заголовков.
Автор: bolt90
Дата сообщения: 16.04.2007 19:18
Уже разобрался, все работает отлично. всем спасибо )
Автор: markess
Дата сообщения: 17.04.2007 10:50
хотел спросить - уменя есть фрагмент кода dll, которая использует другую dll, хочу на С++билдре вставить, что б можно было использовать, вот код

Function InitPort(ComName:Ansistring):boolean;stdcall;
var Succes:boolean;
begin
{
LibHandle:=0;
LibHandle:=LoadLibrary('dllcl.dll');
if LibHandle=0 then begin
result:=-1000;
exit
end;
// Получаю входной адрес для процедуры
finitcom:=GetProcAddress(LibHandle,'initcom');
if finitcom=nil then begin
result:=-4000;
exit
end;
}
// Инициализирую порт}
//tinitcom(finitcom)(ComName,9600,Succes);
initcom(ComName,9600,Succes);
result:=Succes
end;
Автор: Tantos
Дата сообщения: 18.04.2007 10:02

Код:
bool InitPort(Ansistring ComName)
{
bool Succes = false;
typedef bool (*LPINITCOM) (AnsiString, unsigned, bool&);
LPINITCOM InitCom;
HINSTANCE LibHandle;

LibHandle = LoadLibrary("dllcl.dll");
if( LibHandle )
{
InitCom = GetProcAddress(LibHandle,"initcom");
if( InitCom )
{
InitCom(ComName,9600,Succes);
FreeLibrary(LibHandle);
}
else {
FreeLibrary(LibHandle);
return -1000;
}
}
else return -1000;
return Succes;
}
Автор: fidgik
Дата сообщения: 01.05.2007 17:03
Скажите плиз где прочитать или как правильно подключить
библиотеку lib скомпиленого из ВС
и можно прогить без заголовочного файла?
Автор: Graw_Moe
Дата сообщения: 15.05.2007 20:50
совсем недавно общаюсь с BCB.. и вопрос такой:
как сделать, чтобы не закрывалось окно консольного приложения после компиляции и запуска? (имеется ввиду запуск в самом Билдере, конечно)
Автор: Garrett
Дата сообщения: 15.05.2007 21:36
Graw_Moe
getch();
Автор: Graw_Moe
Дата сообщения: 15.05.2007 22:02
ага, спасибо, помогло.
..А есть способ без лишнего кода? Какая-нить галка в опциях?)
Не то чтоб это было критично, но все же)

Вот как в VC++, по умолчанию, окно консоли не закрывается.
Автор: Garrett
Дата сообщения: 15.05.2007 22:35
Graw_Moe
Можно точку останова поставить на финальный "return 0;"...
Автор: ib9782x
Дата сообщения: 15.06.2007 02:38
Люди, как сделать чтобы после компиляции на C++ программа не требовала BORLNDMM.DLL & CC3260MT.DLL
Автор: Tantos
Дата сообщения: 15.06.2007 04:56
Как сделать чтобы моя программа работала на другом компе ?
Отключить CodeGuard в Project->Options.
Автор: Zyava
Дата сообщения: 15.06.2007 11:00

Цитата:
Люди, как сделать чтобы после компиляции на C++ программа не требовала BORLNDMM.DLL & CC3260MT.DLL


Project->Options вкалдка Linker снять галочку Use dynamic RTL, об этом уже писали сто сорок восемь раз, юзай поиск
Автор: Mayskii
Дата сообщения: 21.06.2007 01:31
Извиняюсь за дублирование сообщений.
Мне ответили в другой теме но к сожалению я так и не понял.


Как создать обработчик событий для динамически созданной кнопки?

Вот код:


Код:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{

if (Key==VK_CONTROL)
{
TButton *MyButton = new TButton (Form1);
MyButton->Parent = Form1;
MyButton->Top = 0;
MyButton->Left = i;
}

}
Автор: Tantos
Дата сообщения: 21.06.2007 06:13
Ну и создавай обычный обработчик:

Код:
//main.h
void __fastcall ButtonPressed(TObject *Sender);
//main.cpp
void __fastcall TForm1::ButtonPressed(TObject *Sender)
{
ShowMessage("Clicked!");
}
//-------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{

if (Key==VK_CONTROL)
{
//...
MyButton->OnClick = &ButtonPressed;
//...
}
}
Автор: Mayskii
Дата сообщения: 21.06.2007 15:41
Ой всё спасибо большое разобрался, ниже можно не читать.

Я забыл уточнить, тот код который я привёл отлично работает. Просто я хочу для созданной кнопки сделать обработчик обработчик.
Автор: Mayskii
Дата сообщения: 22.06.2007 03:53
Ещё вопрос как сделать так что бы при нажатии на кнопку она удалялась, пробовал
так :


Код:
void __fastcall TForm1::ButtonPressed(TObject *Sender)
{
MyButton->Free();
}

Страницы: 12345678910111213141516171819202122232425262728

Предыдущая тема: ms exchange


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.