Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Открыть новую тему     Написать ответ в эту тему

Basur



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеем:

Цитата:
 
TMemoryStream *MS = new TMemoryStream;
...
MS->Position = 0;
MS->SaveToFile("C:\\1.txt");
char * tmp = new char[MS->Size];
MS->ReadBuffer((void *)tmp,MS->Size);
AnsiString str = String(tmp);
 

В файл сохраняет правильное содержимое (то что я пишу в MS).
А вот в str еще несколько лишних символов в конце.
 
Как из TMemoryStream получить AnsiString?

----------
Ничто не свободно так, как мысль человека. (Девид Юм)

Всего записей: 359 | Зарегистр. 15-04-2006 | Отправлено: 13:21 24-11-2010 | Исправлено: Basur, 18:06 24-11-2010
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Basur

Код:
char * tmp = new char[MS->Size+1];  
MS->ReadBuffer((void *)tmp,MS->Size);  
tmp[MS->Size]=0;  
AnsiString str = String(tmp);


----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 19:12 24-11-2010
ruslrusl



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как передать переменную между формами??
объявляю в первом Unit1
int a;
Проделываю всякие процедуры, в результате чего a=некое число
 
во втором Unit2 пишу
extern int a;
Так вот, по идее, a должно равняться некому числу, но a всегда выводиться нулем. Так в чем косяк?? Почему не работает extern??

Всего записей: 305 | Зарегистр. 14-10-2009 | Отправлено: 21:33 02-12-2010
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ruslrusl
надо в первом Unit1
public int a;
 
А в форме 2
frm1.a = 3;
 
либо передовать через конструктор формы.

Всего записей: 2736 | Зарегистр. 16-10-2003 | Отправлено: 19:53 03-12-2010
MedvedevDM



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто подскажет, как включить в экзешник ресурсы?
Нужно включить несколько jpg

Всего записей: 114 | Зарегистр. 03-11-2010 | Отправлено: 22:25 09-12-2010
konungster



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь работал с Crystal reports ?
подкиньте пример LogOnServerEx для сервера mssql.

Код:
 
r = CreateOleObject("CrystalRuntime.Application");
rep = CreateOleObject("CrystalRuntime.Report");
rep = r.OleFunction("LogOnServerEx","crdb_ado.dll","ip_addr","db_mane","login_name","password","Provider=SQLOLEDB;Password=password;Persist Security Info=True;User ID=login_name;Initial Catalog=db_name;Data Source=ip_addr;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False");
 

код выше не хочет работать

разобрался

Всего записей: 959 | Зарегистр. 31-10-2005 | Отправлено: 20:55 02-01-2011 | Исправлено: konungster, 13:17 18-01-2011
ruslrusl



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня есть 4 формы. По нажатию на кнопку из первой формы переходишь на вторую, из вторую в третью и т.д.

Код:
 
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Form1->Visible = false;
Form2->Visible = true;
Form2->Enabled = true;        
}
 

 
Проблема в том, что когда нахожусь во второй форме или в третьей, если завершить программу (по нажатию на крестик), то процесс программы не завершается, а висит в диспетчере задач. Как завершить процесс? Пытался уже во всех формах написать  

Код:
 
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
exit(0);
}
 

 
не помогает

Всего записей: 305 | Зарегистр. 14-10-2009 | Отправлено: 17:27 20-01-2011
konungster



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ruslrusl
Form1->Close();

Всего записей: 959 | Зарегистр. 31-10-2005 | Отправлено: 19:30 20-01-2011
ruslrusl



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ruslrusl  
Form1->Close();

konungster
не помогло... все равно висит в диспетчере задач

Всего записей: 305 | Зарегистр. 14-10-2009 | Отправлено: 16:19 21-01-2011
konungster



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Application->Terminate();
но это не правильно. ищи, почему программа не закрывается. так ли нужно использовать несколько форм?

Всего записей: 959 | Зарегистр. 31-10-2005 | Отправлено: 18:36 21-01-2011
ruslrusl



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
konungster

Цитата:
так ли нужно использовать несколько форм?  

 
можно конечно в одну форму накидать все кнопочки, все лэйблы и мемо и делать их когда надо visible, но выглядит будет это отвратительно.... так что использование форм обязательно

Всего записей: 305 | Зарегистр. 14-10-2009 | Отправлено: 21:49 21-01-2011
konungster



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ruslrusl
посмотри компонент TPageControl

Всего записей: 959 | Зарегистр. 31-10-2005 | Отправлено: 22:11 21-01-2011
Red Planet



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день! Как на C++Builder 2010 отключить автодобавление при написании циклов, условий?
 

Всего записей: 215 | Зарегистр. 18-06-2009 | Отправлено: 15:21 14-02-2011 | Исправлено: Red Planet, 15:21 14-02-2011
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Red Planet
Смотрите настройки.

Всего записей: 2736 | Зарегистр. 16-10-2003 | Отправлено: 16:58 14-02-2011
monsoon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скачал компонент http://www.torry.net/vcl/comms/cellular/SMSMessage.zip  
Компонент маленький (архив 14 Kb) с исходниками для D6 и D7.  
 
Программой dpk2bpk создал bpk. Инсталлировалось без ошибок.  
 
При создании проекта кинул компонент на форму и сразу же попробовал сохранить. При сохранении ошибка: "Access violation at address 00000000. Read of address 00000000.  
Save anyway?"  
Компиляция проекта не проходит из-за этой же ошибки.  
Может кто-нибудь глянуть в чем дело?

Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 13:08 14-03-2011
yres45

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AHlHbD

Всего записей: 4 | Зарегистр. 19-06-2011 | Отправлено: 08:43 19-06-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monsoon
Коллега, а при чем тут bpk-файл ???
Это же просто описание ключей компилятора, путей к либам и т.п.
Для Дельфи и Билдера они практически одинаковы...
Попробуйте (сделав копию bpk) установить свойства проекта при компиляции
нужного Вам компонента примерно такими же, как и для других используемых Вами
компонент... Можете даже поставить их (свойства) по-своему, например, в части
использования памяти, оптимизации и т.п.
Уверяю Вас, все проходит на ура - не бойтесь поэкспериментировать...
Да, ес-сно, грохните перед перекомпиляцией свежесозданные hpp, obj и т.д.

Всего записей: 1850 | Зарегистр. 14-12-2005 | Отправлено: 13:19 19-06-2011 | Исправлено: vkramnik, 13:21 19-06-2011
monsoon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vkramnik
Задавал вопрос по данному компоненту вам в личку 13-03-2011 23:36 "Тема: компонент Delphi".  
Вопрос остался без ответа. После задал в этой теме.
 

Цитата:
Коллега, а при чем тут bpk-файл ???  

Если мне не изменяет память, программа dpk2bpk не создаст bpk, если не хватает каких-либо библиотек или исходников для компиляции. Также наличие bpk не всегда приводит к успешной инсталляции компоненты.
В данном случае все прошло успешно.
 
Спустя 3 месяца вопрос уже неактуален, на тот компонент забил...
Но если вы "не боитесь экспериментировать" и обладаете необходимым запасом знаний, ковырните компонент (вышеприведенная ссылка актуальна).
Возможно, это поможет понять была ли где-то моя оплошность, да и компонент может пригодиться другим "строителям".

Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 11:06 20-06-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monsoon
Коллега, я прошу прощения, но по поводу SMSMessage Вашего письма я не нашел... Про Dpk2Bpk и т.п. - есть, а этого, увы, нет...
Компоненту скачал, попробую сегодня поставить - отпишусь, ОК ?
 
добавлено
Не утерпел, поставил...
Выдало точно ту же ошибку, что и у Вас...
После игрищ с опциями уже билдеровского проекта (установки их примерно, как в моих проектах), компилятор
выдал несколько ошибок в модуле uSMSMessaging.pas в следующей процедуре на строку 398 :
 
390: /////////////////////////////////////////////////////////////////////////////////
391: // This method will Interrogate the parameter status set the status to it's
392: // relevant status and fire off the the statusChange event of the component
393: /////////////////////////////////////////////////////////////////////////////////
394: procedure TSMSMessaging.SetResponse(Status: Int64);
395: var loStatus : TSMSState;
396: begin
397:    case Status of
398:      TRANSCEIVER_BOUND, TRANSMITTER_BOUND, RECIEVER_BOUND : loStatus := ssBound;
399:      ENQUIRE_RESP   : loStatus := ssEnquire;
400:      SUBMIT_SM_RESP : loStatus := ssSMSSent;
401:   else  loStatus   := ssError;
402:   end;
403:   FState := [loStatus];
404:   if Assigned( FStatusChange) then
405:     FStatusChange(self,loStatus );
400: end;
 
Честно говоря, я в SMS-ках мало понимаю, и какие параметры там устанавливаются и проверяются - фиг знает...
Могу только предположить, что где-то вместо реального указателя читается нуль (судя по оператору в строке 404).
Аналогичная ошибка с Assigned у меня была буквально пару дней назад с компонентой VirtualStringTree - при
адаптации ее с Дельфи на Билдер. Свою ошибку я нашел и исправил. Скорее всего, тут нечто аналогичное...
 
Я ответил на Ваш вопрос ?

Всего записей: 1850 | Зарегистр. 14-12-2005 | Отправлено: 08:01 21-06-2011 | Исправлено: vkramnik, 08:39 21-06-2011
monsoon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vkramnik

Цитата:
После игрищ с опциями уже билдеровского проекта (установки их примерно, как в моих проектах), компилятор  
выдал несколько ошибок в модуле uSMSMessaging.pas в следующей процедуре на строку 398 :

нашел тот проект  
Т.е. вы добавили компонент на форму, паскалевские файлы в проект не добавляли и "после игрищ с опциями компилятора" удалось запустить компиляцию?
Очень интересует, какие опции для этого нужно выставить.
 
У меня 3 месяца назад откомпировать получилось только когда компонент  не помещался на форму, а создавался его экземпляр SMSMessage1 = new TSMSMessaging(this), а в проект были добавлены (Add to Project) паскалевские файлы.  
 
Какая ошибка у вас выдается?
У меня выдается не ошибка, а предупреждение компилятора: "(408) Constant expression violates subrange bounds".
Переписал тогда так:

Код:
procedure TSMSMessaging.SetResponse(Status: Int64);
var loStatus : TSMSState;
begin
 
   begin
    if (Status = TRANSCEIVER_BOUND) or (Status = TRANSMITTER_BOUND) or (Status = RECIEVER_BOUND) then
      loStatus := ssBound
    else if Status = ENQUIRE_RESP then
      loStatus := ssEnquire
    else if Status = SUBMIT_SM_RESP then
      loStatus := ssSMSSent
    else
      loStatus   := ssError;
   end;
 
   FState := [loStatus];
   if Assigned( FStatusChange) then
     FStatusChange(self,loStatus );
 
end;

и оно заткнулось.
В этом случае проект сохраняется, ошибок нет, но при запуске никаких сообщений не выдается.
При пошаговом запуске также выяснилось, что некоторым свойствам почему-то не присваиваются значения, например  SMSMessage1->IPAddress, SMSMessage1->PhoneNumber.
 
Но все должно работать при простом размещении компоненты на форме.
Интересно поведение данного компонента при использовании в дельфи. И если в ней все нормально, можно сделать вывод, что не всегда легко и просто использовать компонент дельфи в билдере, хоть и при наличии исходников.
 

Цитата:
Аналогичная ошибка с Assigned у меня была буквально пару дней назад с компонентой VirtualStringTree - при  
адаптации ее с Дельфи на Билдер. Свою ошибку я нашел и исправил.

на будущее интересно, что именно и как исправили.

Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 13:12 21-06-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru