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

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

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

Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
diaz85
Навскидку: пробегаем по столбцуи ищем строчку с максимальной длиной. В пикселях узнаем ее ширину с помощью TextWidth (TextWidth(const AnsiString Text)). Ну а дальше TStringGrid::ColWidths[] устанавливаешь необходимую ширину.

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 04:08 19-05-2008
psys6



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

Извиняюсь, что сюда вопрос задаю, куда его задать просто уже не знаю
 
решил освоить, C++, для этого поставил не BCB, а Visual Studio 2008.
Вот в билдере существовали компоненты, которые очень удобно было использовать, например TMS.
А для Visual Studio такое впечатление что ничего такого не бывает.
 
понимаю что бредово, но может кто даст ссылку поясняющую вопрос про VS и компоненты?

Всего записей: 319 | Зарегистр. 26-04-2002 | Отправлено: 02:03 20-05-2008
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну, можешь в Варезнике посмотреть компоненты для .NET - Крякнутые компоненты для .NET

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 07:05 20-05-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
psys6
VS C++ - большая страна, надо уточнить на какой технологии работаешь, Win API, MFC, ATL/WTL, MC++...

Всего записей: 2730 | Зарегистр. 16-10-2003 | Отправлено: 08:00 20-05-2008 | Исправлено: Garrett, 08:03 20-05-2008
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет ВСЕМ!
 
Нашёл на просторах инета статью "Уменьшаем Exe, удаляя релоки без сторонних утилит." (http://www.delphilab.ru/content/view/32/66/). Это для Делфи. Но так как Билдер похож (и я нашел релоки), то может кто то подскажет как это сделать в Билдере?
 
Спасибо!

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 07:38 27-05-2008
bandyn



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите плиз, как копировать файлы с инета http (Например: http://www.site.ru/text.txt) ?

Всего записей: 394 | Зарегистр. 18-11-2004 | Отправлено: 15:28 07-06-2008
Kott



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
точно так же. установив данную опцию в свойствах проекта. Не понятно правда чего ее считают "недокументированной"  - во вторых  - новости данной как минимум  два года минуло.
http://hallvards.blogspot.com/2006/09/hack12-create-smaller-exe-files.html
 

Всего записей: 161 | Зарегистр. 12-12-2003 | Отправлено: 17:10 07-06-2008
Barabek

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, прошу совета!
Начал изучать программирование и на одном из тестовых заданий возникла такая проблема: пользователь вводит с клавиатуры строку символов и задает одиночный символ. программа должна сосчитать количество вхождений данного символа в строку и вывести результат на экран. Разработанное консольное приложение отлично справляется с поставленной задачей. Но я еще пытаюсь написать визуальное приложение - помещаю два компонента Edit, компоненты Label1 и Button на форму и пишу следующий код для Button по событию OnClick:
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
char text[80], symb;
int num = 0;
text = LabeledEdit1 -> Text;
symb = LabeledEdit2 -> Text;
for (int i=0; text[i]!='\0'; i++)
{
    if (text[i]==symb) num++;
}
Label1 -> Caption = IntToStr(num);
}
 
Т.е. по идее создается символьный массив text и символьная переменная symb. Счетчик вхождения n устанавливается 0. Дале, заношу в массив данные из строки ввода LabeledEdit1, а в переменную symb - данные из строки LabeledEdit2. Далее в цикле проверяется вся строка и выводится количество вхождений символа. Но при компиляции вываливается ошибка "E2277 Lvalue required" на строке text = LabelEdit1..... Не могу понять - что неправильно и как исправить.

Всего записей: 239 | Зарегистр. 27-04-2007 | Отправлено: 22:53 12-07-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Barabek
strcpy(text, LabeledEdit1 -> Text);  

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 23:34 12-07-2008
Barabek

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
 
nтеперь появились такие ошибки на той же строке
E2034 Cannot convert 'AnsiString' to 'const char *'
E2342 Type mismatch in parameter '__src' (wanted 'const char *', got 'AnsiString')
 
когда задаю в первоначальном коде вместо
 
char text[80], symb;
 
AnsiString text, symb;
 
то ошибок компиляции не возникает, но в процессе выполнения (введенном тексте и нажатии на Button) намертво зависает, приходится перегружать Borland.
 
Тяжело идут первые проги.
 
Добавлено:
Так, вроде разобрался - нужно было написать вместо  
 
strcpy(text, LabeledEdit1 -> Text);
 
strcpy(text, LabeledEdit1 -> Text.c_str());
 
но теперь выдает аналогичныые ошибки на строке считывания одиночного символа
 
strcpy(symb, LabeledEdit2 -> Text.c_str());
 
E2034 Cannot convert 'int' to 'char *'
E2342 Type mismatch in parameter '__dest' (wanted 'char *', got 'char')
 
Я ведь объявил переменную symb типа char, при чем здесь int?

Всего записей: 239 | Зарегистр. 27-04-2007 | Отправлено: 23:45 12-07-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
strcpy(&symb, LabeledEdit2 -> Text.c_str());
 
только всё равно это неправильно...
тебе наверняка нужно что-то типа
 
symb = LabeledEdit2 -> Text[pos_of_symbol]

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 15:30 13-07-2008
Barabek

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
 
Действительно круто, теперь все работает. Спасибо за помощь!

Всего записей: 239 | Зарегистр. 27-04-2007 | Отправлено: 11:18 14-07-2008
U2nexpecte2D

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет, у меня есть такой вопрос...
 
Res->Text = strcat(Res->Text.c_str(),"7");
 
после 3-4 прибавления семёрки выдаёт эррор
 
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 01193C16. Write of address 0092AD6C'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help    
---------------------------
 
в чём причина?

Всего записей: 2 | Зарегистр. 20-07-2008 | Отправлено: 16:44 20-07-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U2nexpecte2D
а место-то есть, куда прибавлять?

Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 18:27 20-07-2008
vidic777



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
U2nexpecte2D
Что за res такой, как объявлен, проинициализирован ли и данные какого типа хранить должен, можно подробней ?  

Всего записей: 1313 | Зарегистр. 16-02-2005 | Отправлено: 18:33 20-07-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U2nexpecte2D
c_str() возвращает временный указатель на строку с нулем в конце.
Сделано для передачи в указателя на строку в функции, гдле требуется указатель, но не для того ЧТОБЫ МЕНЯТЬ ЭТУ строку.
Что тебе мешает написать
Res->Text += "7";
А?

Всего записей: 2730 | Зарегистр. 16-10-2003 | Отправлено: 18:36 20-07-2008
SSchumi

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я как понял, Res - это label. А если это так, то писать:  

Цитата:
Res->Text += "7"

мешает то, что это свойство, а не просто String.
U2nexpecte2D, не мучайся, зачем перемешивать *char и string. Или создавай временную string или пиши: Res->Text = Res->Text + "7".

Всего записей: 752 | Зарегистр. 06-04-2006 | Отправлено: 09:19 21-07-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SSchumi
Нет у метки свойства Text, и выше я немного ошибся (с +=).
Вот так всё работает:
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Label1->Caption = Label1->Caption + "7";
    Memo1->Text = Memo1->Text + "7";    
}

Всего записей: 2730 | Зарегистр. 16-10-2003 | Отправлено: 10:46 21-07-2008
vidic777



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

Цитата:
Я как понял, Res - это label

Garrett верно говорит, Text есть у компонент TEdit, хотя какой смысл гадать, путь U2nexpecte2D приведет кусок текста программы где у него объявлен Res.
 

Всего записей: 1313 | Зарегистр. 16-02-2005 | Отправлено: 01:35 22-07-2008
U2nexpecte2D

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сорри, не было доступа к инету...
 
в общем, Res - это компонента Edit , туда я просто записываю данные...
в общем чтоб было понятнее - хо написать жалкое подобие калькулятора... и чтоб при нажатии на кнопки с цифрами они само собой добавлялись в Edit->Text
 
спс Garrett, пробовал +=, оно ошибки не выдаёт но и не прибавляет, поэтому подумал что так нельзя))) терь норм....  
 
спасибо всем)

Всего записей: 2 | Зарегистр. 20-07-2008 | Отправлено: 00:58 25-07-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 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