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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monsoon
Ну, я не настолько крут, чтобы еще и динамически экземпляры СМС-ок создавать (да и незачем мне),
но компонента таки скомпилировалась - с пачкой вышеупомянутых ошибок...
Киньте мне в ПМ адресок - я просто заархивирую каталог проекта и послезавтра отошлю, ОК ?

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



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

Цитата:
Киньте мне в ПМ адресок  

адресок кинул
 

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

повторю свой вопрос с предыдущей страницы - как исправили?

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monsoon
Да это была просто грамматическая ошибка в моем собственном исходнике...
Некорректно сначала инициализировал дерево, но потом разобрался...
З.Ы. Адресок в ПМ получил...

Всего записей: 1837 | Зарегистр. 14-12-2005 | Отправлено: 18:42 22-06-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monsoon
Архивчик выложен в сеть, адрес и сопроводиловка - в ПМ...

Всего записей: 1837 | Зарегистр. 14-12-2005 | Отправлено: 10:47 23-06-2011
XCV81



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
здравствуйте, у меня следующая проблема, во время создания формы создаются кнопки таки образом:
Код:
TButton *Button;
  int i;
  for (i = 1; i < kolbutton; i++) {
    Button=new TButton(this);
    Button->Parent=this;
    Button->Height=30;
    Button->Width=320;
    Button->Top=40*i+35;
    Button->Left=20;
 AnsiString secname="Edit"+IntToStr(i); // определяем имя секции
 Button->Caption= ini->ReadString(secname,"name","langfile undefined"); // определяем имя кнопки
 }
количество кнопок заранее не известно, оно зависит от количества секций в обрабатываемом программой ini файле, вопрос в следующем, как для каждой кнопки сделать обработчик OnClick?
при нажатии кнопки должно выполняться
Код:
AnsiString a=ini->ReadString(secname,"patch","langfile undefined")+" "+ParamStr(1); //получаем строку котрую надо выполнить
WinExec (a.c_str(), SW_SHOWNORMAL ); // выполнение задачи
(secname - определяется при создании кнопки)

Всего записей: 430 | Зарегистр. 03-10-2007 | Отправлено: 13:00 18-07-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XCV81
Коллега, попробуйте дать запрос в Гугл такого вида :
"builder динамическое создание кнопок"
и он Вам выдаст совершенно немерянное количество ссылок прямо с исходниками...
Я только что лично проверил - на любой вкус есть...
З.Ы.  А в обработчике поиграйтесь с параметром Sender...

Всего записей: 1837 | Зарегистр. 14-12-2005 | Отправлено: 22:17 18-07-2011 | Исправлено: vkramnik, 22:18 18-07-2011
XCV81



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
кучу ссылок уже перечитал, как сделать обработчик разобрался, но у меня получается один и тот же обработчик для всех кнопок (тот который должен быть у последней. сделал так:
Код:
public:
    __fastcall TForm1(TComponent* Owner);
AnsiString a;
};


Код:
 
  int i;
  for (i = 1; i < kolbutton; i++) {
    Button=new TButton(this);
    Button->Parent=this;
    Button->Height=30;
    Button->Width=320;
    Button->Top=40*i+35;
    Button->Left=20;
 AnsiString secname="Edit"+IntToStr(i); // определяем имя секции
 Button->Caption= ini->ReadString(secname,"name","langfile undefined"); // определяем имя кнопки
a=ini->ReadString(secname,"patch","langfile undefined")+" "+ParamStr(1); //получаем строку котрую надо выполнить
Button->OnClick = LeftFunction;
  }

Код:
void __fastcall TForm1::LeftFunction(TObject *Sender){
 WinExec (a.c_str(), SW_SHOWNORMAL ); // выполнение задачи
 }
В принципе логично, ведь прога сначала "строит форму" и естественно пересчитывает а и в итоге получаем в значении то которое должно быть для последней кнопки, а вот как сделать его разным для каждой кнопки.... чет никаких мыслей не возникает, может подскажете в какую сторону копать дальше?

Всего записей: 430 | Зарегистр. 03-10-2007 | Отправлено: 09:57 19-07-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XCV81
А попробовать одновременно с кнопками создавать некий строковый массив
и туда писать нужные строки для каждой кнопки и потом выбирать по номеру ?

Всего записей: 1837 | Зарегистр. 14-12-2005 | Отправлено: 11:24 19-07-2011
XCV81



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

Цитата:
потом выбирать по номеру ?

вы считаете что определить номер кнопки для которой будет выполняться функция проще? при таком раскладе мне надо каким-то чудом передать из цикла создания кнопок текущее (для каждой кнопки свое)i в функцию, не вижу разницы что передавать либо текущее i, а потом по нем из масива выдирать а, или сразу передать а, или есть другой вариант и я вас не понял?

Всего записей: 430 | Зарегистр. 03-10-2007 | Отправлено: 11:55 19-07-2011
XCV81



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
все вопрос решен, передал i в функцию через tag

Всего записей: 430 | Зарегистр. 03-10-2007 | Отправлено: 14:37 19-07-2011 | Исправлено: XCV81, 09:56 20-07-2011
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, помогите решить такую проблему:
http://narod.ru/disk/23740445001/task.rar.html
Здесь два проекта по созданию DLL взятых из книги Архангельского "Программирование в C++ Builder". В папке \arh пример непосредственно с диска к книге - он компилится и успешно выполняется. В папке \me мой пример, набранный вручную, но он не компилится - ругается линковщик. Коды исходных и заголовочных файлов идентичны, но мой проект сообщает:

Цитата:
[Linker Error] Error: Unresolved external '_Code_Dec' referenced from C:\USERS\DMITRY\DOCUMENTS\BORLAND STUDIO PROJECTS\MYDLL3\UTESTDLL.OBJ

Посмотрите, пожалуйста, на досуге эти два проекта, они небольшие, но я уже три часа ломаю голову. Уже и опции проекта сверил и выставил одинаково - не пашет, и не могу понять почему... Буду очень признателен!

Всего записей: 3003 | Зарегистр. 29-09-2005 | Отправлено: 00:53 02-09-2011 | Исправлено: DmitryKz, 00:54 02-09-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
У меня, правда, Билдер-"шестерка", но в аналогичных ситуациях (ненахождения функции)
мне обычно помогает вот такое :
1) грохнуть ВСЕ obj/tds/res файлы
2) полная пересборка - Build
3) иногда - смена порядка следования строк #include в исходниках
З.Ы.  Или даже попробуйте пересоздать проект заново, "с нуля", следуя Вашей логике, по порядку форм...

Всего записей: 1837 | Зарегистр. 14-12-2005 | Отправлено: 08:13 02-09-2011 | Исправлено: vkramnik, 08:30 02-09-2011
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vkramnik
Три часа, упомянутых мною - не метафора Я действительно после трёх часов компиляций туда-сюда в 1-м часу ночи выдохся и запостил вопрос. Это была уже 3-я попытка создания нового проекта с нуля. Дошло до того, что я снял скриншоты каждой страницы опций проекта примера (\arh) и ввёл эти данные в мой проект, а сами исходные и заголовычные файла тупо скопипастил из тех же файлов примера - ничего не поменялось.
Заметил ещё такую вещь: проект MyDLL примера Архангельского компилится дольше, чем мой, на секуну-парочку, а мой мгновенно; и файлы дллки и либы получаются 12 и 11 против моих 15 и 6 [соответственно]... Это при идентичных опциях обоих проектов MyDLL.
 
Добавлено:
Дело в файле 1-го проекта группы, MyDLL. Я заменил только его из примера Архангельского и всё успешно скомпилировалось и тестирующее приложение запустилось. Вернул прежний - и ошибка вернулась... Только как среди всех этих опций искать ведущую к ошибке... Если опции проектов выставлены одинаково, то где ещё могут содержаться опции, влияющие на проект в целом???

Всего записей: 3003 | Зарегистр. 29-09-2005 | Отправлено: 09:51 02-09-2011 | Исправлено: DmitryKz, 10:36 02-09-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
Сочувствую Вам, коллега, но Вашей версии BDS у меня нет (только ВСВ6),
поэтому я не могу воспроизвести ситуацию...
Попробовал визуально сравнить проекты - Архангельского и Ваш :
результаты лежат тут - http://zalil.ru/31639035.
Различий в опциях много - выделено цветом (как именно - см.справа внизу на картинках)
Посмотрите - может, что-то и наведет на мысль...
Удачи !

Всего записей: 1837 | Зарегистр. 14-12-2005 | Отправлено: 14:44 02-09-2011 | Исправлено: vkramnik, 14:45 02-09-2011
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, я уже Beyond Compare сравнил файлы проекта. Различия, конечно, есть, но ощущение, что они все вместе влияют на ситуацию. Попробовал отдельные опции копипастить в проблемный проект - проблема не решается. Чуть позже ещё поэкспериментирую - отсутствующие опции из проблемного проекта удалить...
Спасибо за сочувствие, удачи и Вам!
 
Добавлено:
Нашёл я всё-таки эту проблемную опцию проекта:

Код:
          <property category="win32.*.win32b.bcc32" name="option.tW.enabled" value="0"/>
          <property category="win32.*.win32b.bcc32" name="option.tWC.enabled" value="0"/>
          <property category="win32.*.win32b.bcc32" name="option.tWD.enabled" value="1"/>
          <property category="win32.*.win32b.bcc32" name="option.tWM.enabled" value="1"/>
 

О параметре -tW командная строка bcc32 говорит следующее:
 

Цитата:
  -tC     Target is a console application
  -tCDR   Target is a console .DLL that uses the dynamic RTL
  -tCDV   ... that uses the VCL
  -tW     Target is a Windows application
  -tWC    Target is a console application
  -tWCDR  Target is a console .DLL that uses the dynamic RTL
  -tWCDV  ... that uses the VCL
  -tWD    Target is a .DLL, or dynamic link library
  -tWDR   Target is a Windows .DLL that uses the dynamic RTL
  -tWDV   ... that uses the VCL
  -tWM    Target is a 32-bit multi-threaded target
  -tWP    Target is an application that uses Delphi packages
  -tWR    Target uses the dynamic RTL
  -tWU    Generate a Unicode application
  -tWV    Target uses the VCL GUI framework

 
В-общем, ситуация более ясной не стала. С одной стороны, вроде бы похоже на баг, так как изменение значения с 0 на 1 результата положительного не даёт - тестирующее приложение по-прежнему не компилится и помогает только полное удаление этой строки. С другой стороны... а не знаю, что с другой стороны: у меня версия BDS 2006 Turbo, если в ней и была бага, то в следующих версиях её наверняка поправили.

Всего записей: 3003 | Зарегистр. 29-09-2005 | Отправлено: 14:55 02-09-2011 | Исправлено: DmitryKz, 15:58 02-09-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
Вот именно по причине глючности BDS 200x, я до сих пор и сижу на проверенном BCB6...
Собираюсь уходить уже сразу на Emb.RAD 2011 или ХЕ, чего и Вам желаю...
З.Ы.  А я для сравнения файлов пользуюсь ExamDiff Pro 5 - что-то он мне больше глянулся...

Всего записей: 1837 | Зарегистр. 14-12-2005 | Отправлено: 19:20 02-09-2011 | Исправлено: vkramnik, 19:22 02-09-2011
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну, я пользуюсь Турбо 2006 (и VS Express) , по причине её бесплатности. На полноценную студию денег пока, увы, не заработал... Ну а раньше да, когда вопрос легитимности особо не волновал, программировал на 2009 и 2010 (уже совсем мало), использовал Дельфи...
Насчёт глючности не вполне согласен - критических глюков пока не встречалось, да и некритических особо много не было. Имхо, для индивидуального разработчика 2006-я Турбо это вполне полноценная среда разработки, которую отдали даром...
В-общем, не холивара ради это замечание

Всего записей: 3003 | Зарегистр. 29-09-2005 | Отправлено: 19:53 02-09-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
так у тебя длл'ка не собирается?
 
попробуй из командной строки
 
bcc32 -tWD -l-Gi UMyDll.cpp

Всего записей: 18310 | Зарегистр. 06-12-2002 | Отправлено: 07:05 04-09-2011
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Дык, из командной-то строки и так собирается...
Насколько я понял, у коллеги вопрос именно в том, какие именно опции RAD
у него не те - т.е., не позволяют склепать ДЛЛ-ку из среды, аналогично Архангельскому...
З.Ы.  Кстати, интересно, а ускорители среды типа Bcc32Pch IDE Plugin могут повлиять ?

Всего записей: 1837 | Зарегистр. 14-12-2005 | Отправлено: 12:58 04-09-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vkramnik
понятия не имею, вообще не знаю чтО это такое...
 
Архангельский, фигангельский,  они -- истина в последних инстанциях, ошибиться не могут?
где там у них вообще линкуется импортируемая библиотека?

Всего записей: 18310 | Зарегистр. 06-12-2002 | Отправлено: 17:32 04-09-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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru