(Часть 1) (*Закрыта*)Я начинающий, подскажите пожалуйста, как...
Если вы только начинаете осваивать среду разработки ВСВ - предлагаю возникающие вопросы размещать в данной теме. Не создавайте пожалуста отдельные темы - типа "Как мне запустить свое приложение на другом компьютере", "Как перевести String в char*" и тому подобное. Такие темы будут закрываться с отсылку в эту. Не обижайтесь.
Кроме того, не брезгуйте плиз, пользоваться поиском хотя бы, по нескольким критериям. Иногда бывает так, вопрос который возник у вас не столь оригинален - вполне возможно, кто то уже спрашивал его до вас :) Поверьте, отвечать на одни и теже вопросы тоже не всегда интересно.
Если вы задаете свой вопрос на форуме - что бы получить наиболее эффективный ответ - следуйте пожалуйста несложным правилам. Они просты:
0. Опишите чего вы хотели добиться.
1. Опишите ошибку которая у вас возникла, по возможности с текстом самой ошибки.
2. Если вы считаете это необходимым - приведите фрагмент(пожалуста не помещайте в свой вопрос весь листинг) кода, на который жалуется компилятор, коротко описав переменные которые используются, и как они инициализируются. Исходники высылайте или выкладывайте только в том случае, если вас об этом просят.
3. Если проблема связана с функцией какой либо библиотеки - не стесняйтесь залезть в хелп и найти там ее описание. То чтовы не рубите в английском, зато читаете Рабле в оригинале - отнюдь не оправдание. Людей для которых английский - родной, здесь немного. Пользуйтесь словарем, это дает результаты :)
4. Не забывайте - может быть ВСВ и имеет раширения по сравнению со стандартом - но тем не менее это С++. Не забывайте проверить, что в ваш проект подключены все необходимые заголовочные файлы, а так же файлы библиотек.
5. Если вы задали вопрос один раз - не нужно его повторять или дублировать, или размещать посты типа "Ну что никто не знает" и т.д. Вы рискуете узнать много разных путей, но так и не получить нужный вам ответ.
6. Форум - дело сугубо добровольное. Здесь ни кто НЕ ОБЯЗАН искать ответы на ваши вопросы. Если вам отвечают - то это только исключительно из любви к вам. :)
7. Исходя из выше сказанного, если вам не отвечают - ну возможно вас не любят :)
8. Для тех, кому нужно написать курсовую, программу, решить контрольную или тому подобное - существует раздел форума Студентам
Размещайте, плиз, свои посты там. Сообщения размещенные в данной теме - не будут перемещаться - они будут удаляться.
9. Если вы хотите пообщаться, обсудить тему, не связанную с ВСВ - милости просим: В "Отдохнем". Флуд в данном разделе не приветствуется.
Ну вроде все. Если что забыл - или не так - поправьте.
Удачи.
скажи лучше как происходит вот это
[QUOTE=Knopa]во второй форме Label1 принимает значение Label12(из второй формы)[/QUOTE]
Суть программы в следующем:
Есть определенные характеристики которые выбирает пользователь,
Пользователь выбирает 3 характеристики,
после этого этот запрос отправляется в БД и по этим трем хар-кам выбирается число, которое затем записывается в Label12(допустим 18)
На первой форме есть кнопка,
По нажатию этой кнопки открывается вторая форма и Я по нажатию этой кнопки хочу взять значенние из Label12(=18) на первой форме и записать в Label1 на второй форме,
в первой форме я пишу(по событию нажатие клавиши):
void __fastcall TForm1::Button3Click(TObject *Sender)
{Form2->Label1->Caption=Form1->Label12->Caption;
Form2->Show();}
во второй форме я пишу:
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
Form2->Label2->Caption=Form2->Label1->Caption;
Form2->label2->Caption=Form2->label1->Caption;}
При запуске программы происходит следующее:
на форме 2 значения становятся такими:
Label1=18
Label2=Label1
А я хочу чтоб Label2=18!и сделать это не могу;
Так ты не в конструкторе формы присваивай значения:D , а в событии OnShow!!
Не подскажете ли литературу по сетевому программированию, для начало хотелось бы сделать подобие чата.
Дайте плиз ссылочки!
Form2->Image1->Picture->Graphic - выдает Access Violation error :(
Как можно решить проблему?
Я просил литературу, а не исходники
Хотелось бы и в Builder было то же самое. Пробовал поменять слова в pas файлах и перекомпелировать типа bcc32 consts.pas но выдаются ошибки при компиляции в каждой строке consts.pas .
Помогите разобраться.
Спасибо.
Наверно установить стиль (WS_HSCROLL|WS_VSCROLL)?
Вроде для TPanel не доступны такие стили. Если это не так, подскажите как сделать.
Программа по заполнению шаблонов.В входном файле находит слова в квадратных скобках и заменяет их на то, что нужно.
Например.Шаблон: Меня зовут [name], мне [years] лет.Вводим в форме только Вася, 12, все расставляется по местам.Шаблон, а следственно, и количество слов в скобах изменяется (пользователь указывает это число в первой форме).И все вроде бы работает, НО.В выходном текстовом файле указывает то "Меня зовут Вася 12, мне Вася 12 лет", то еще какю-нибудь гадость.У меня глаз совсем замылился, так что
Прошу помочь исправить ошибку в коде!Пожалуйста.
Спасибо)
{
if (st[n] != '[')
fprintf(in, "%c", st[n]);
else
{
for(int i=0; i<=Form2->ControlCount; ++i)
{
TEdit *ctrl = dynamic_cast<TEdit *>(Form2->Controls);
if(ctrl)
{
fprintf(in, " %s ", ctrl->Text.c_str());
while( (st[n]!=']') && (st[n]!='\0') )
n++;
}} }
n++;
}
{
if (st[n] != '[')
fprintf(in, "%c", st[n]);
else
{
for(int i=0; i<=Form2->ControlCount; ++i)
{
TEdit *ctrl = dynamic_cast<TEdit *>(Form2->Controls);
if(ctrl)
{
fprintf(in, " %s ", ctrl->Text.c_str());
while( (st[n]!=']') && (st[n]!='\0') )
n++;
}} }
n++;
}
Ошибка в этой строке
Точнее это не ошибка а не правильная вложенность цикла. У тебя при нахождении шаблона происходит обработка обоих эдитов. Соответственно перебор необходимо вынести выше и проблема исчезнет.
[SIZE="3"]Прошу помочь исправить ошибку в коде!Пожалуйста.Желательно до завтрашнего вечера.[/SIZE]
не надо писать большим шрифтом и ставить сроки
Но я выносила выше, после while st[n], и ничего.
Но я выносила выше, после while st[n], и ничего.
Ну во первых, я бы организовал это так (это только пример)
{
TEdit *ctrl = dynamic_cast<TEdit *>(Form2->Controls);
if(ctrl)
{
//Здесь производится необходимая замена
...
}
}
в таком случае мы получаем последовательную обработку полей. И необходимо переработать код поиска - в такой форме как сейчас он ищет и заменяет не первый шаблон а оба. Сложного ничего нет просто писать пример нет времени.
DecodeDate(Date(),y, m, d);
переменные d, m, у не изменяются
стандартная функция DecodeDate определена так
DecodeDate(const System::TDateTime DateTime, Word &Year, Word &Month, Word &Day);
следовательно передавать надо сами переменные, а не указатели. Или я что то не так понимаю?
DecodeDate(Date(),y, m, d);
переменные d, m, у не изменяются
стандартная функция DecodeDate определена так
DecodeDate(const System::TDateTime DateTime, Word &Year, Word &Month, Word &Day);
следовательно передавать надо сами переменные, а не указатели. Или я что то не так понимаю?
Спасибо, действительно так работает. Я просто думал, что оно само преобразовывает типы при передаче
Нет преобразования не происходит. Что вобщем то правильно.
Но если вы передадите беззнаковое 16 - то все отработает. т.е.
тоже верно и нормально.
Естественно, производит - только потом в функцию передаются ссылки на приведённые объекты, которые не имеют имён. После завершения функции, эти объекты просто удаляются из стека :(.
Во избежание подобного, включите в компиляторе в настройках проекта "предупреждения" (warnings) с номерами w8028-w8032.
Тогда, при компиляции будет выведено предупреждение "Temporary used..." (использование временной переменной).
Естественно, его нужно будет исправить, указав подходящий тип данных :D
Кста иллюстрация происходящего в стеке перед выходом из функции
В стеке по адресу 12F510 - 18 расположены пременные которые переданы в функцию. Красным выделены три переменные которые содержат текущую дату.
Подскажите как лучше ето делать.
Подскажите пожалуйста, как это можно сделать.
Т.е. к примеру, чтобы добавить в Memo какой-нибудь текст можно сделать так:
Memo->Add("Text1");
Memo->Add("Text2");
Memo->Append("Text3");
в таком случае текст в Memo будет выглядеть так:
---
Text1
Text2
Text3
---
а нужно чтобы было вот так:
---
Text1Text2Text3
---
подскажите пожалуйста, как можно это сделать (для RichEdit например),
пробовал через += и Memo->Insert, но у меня вообще текст не появлялся даже!
Спасибо.
Подскажите пожалуйста, как это можно сделать.
Т.е. к примеру, чтобы добавить в Memo какой-нибудь текст можно сделать так:
Memo->Add("Text1");
Memo->Add("Text2");
Memo->Append("Text3");
в таком случае текст в Memo будет выглядеть так:
---
Text1
Text2
Text3
---
а нужно чтобы было вот так:
---
Text1Text2Text3
---
подскажите пожалуйста, как можно это сделать (для RichEdit например),
пробовал через += и Memo->Insert, но у меня вообще текст не появлялся даже!
Спасибо.
Memo1->Text = Memo1->Text+"Text2";
...
При присвоении, например, события OnResize к VT, компилятор не придирается :)
А если пытаюсь присвоить таким же способом событие, например, OnBeforeCellPaint, то возникает ошибка :(
Ошибка:
[C++ Error] Main.cpp(1049): E2034 Cannot convert 'void (_fastcall * (_closure )(TBaseVirtualTree *,TCanvas *,TVirtualNode *,int,TRect &))(TBaseVirtualTree *,TCanvas *,TVirtualNode *,int,TRect &)' to 'void (_fastcall * (_closure )(TBaseVirtualTree *,TCanvas *,TVirtualNode *,int,const TRect &))(TBaseVirtualTree *,TCanvas *,TVirtualNode *,int,const TRect &)'
Что здесь исправить?
Помогите, пожалуйста :D
При присвоении, например, события OnResize к VT, компилятор не придирается :)
А если пытаюсь присвоить таким же способом событие, например, OnBeforeCellPaint, то возникает ошибка :(
Ошибка:
[C++ Error] Main.cpp(1049): E2034 Cannot convert 'void (_fastcall * (_closure )(TBaseVirtualTree *,TCanvas *,TVirtualNode *,int,TRect &))(TBaseVirtualTree *,TCanvas *,TVirtualNode *,int,TRect &)' to 'void (_fastcall * (_closure )(TBaseVirtualTree *,TCanvas *,TVirtualNode *,int,const TRect &))(TBaseVirtualTree *,TCanvas *,TVirtualNode *,int,const TRect &)'
Что здесь исправить?
Помогите, пожалуйста :D
Скорей всего проблема в том что ты объявляешь константную ссылку.
Есть форма, в ней есть обьект TMediaPlayer *Player, есть метод который работает с этим плеером:
{
Player->FileName = nazvanie;
Player->Open();
Player->Play();
}
Если я вызываю этот метод с одной мелодией, а вслед за этим еще раз его же, но уже с другой, то поигрываеться мелодия которая была вызвана второй. Такое звучанее мне и требуеться.
Ежели я вызываю вторую мелодию через поток, у меня звучат паралельно сразу две мелодии, и первая и вторая. Видимо происходит пересоздание обьекта плеер для потока. Как этого избежать?
Заранее благодарен.
Надо текстовый файл занести в массив, что бы каждый элемент массива содержал в себе символ из файла.
Как это можно сделать?
Если можно кусок текста проги....:)
Я в програмировании новичёк. Подскажите, как оптимизировать компиляцию, а то написал программу - блокнот, а она 700kb весит.
Есть еще вариант использовать KOL (альтернативная библиотека, обсуждалась в форуме Delphi).
Совсем маленькие программы получаться на ассемблере или на С++ с использованием чистого WinAPI.
Удалите пост.
Как масштабировать HTML страничку в CppWebBrowser я нашёл код на
Delphi
WebBrowser1.OleObject.Document.Body.Style.Zoom := 0.75;
но как это изобразить на билдере ?
раньше писал только консольники большими количествами, начал разбирать как писать оконные в билдере, столкнулся с проблемой - как в компонент вида TEdit, TStaticText или TMemo с помощью виртуальной клавиатуры(компоненты TButton) вводить в одну строку символы:? у меня получается ввод по одному символу, когда каждый последующий введённый символ затирает предидущий а не записывается вторым в строку..Заранее благодарю:)