(Часть 1) (*Закрыта*)Я начинающий, подскажите пожалуйста, как...
Если вы только начинаете осваивать среду разработки ВСВ - предлагаю возникающие вопросы размещать в данной теме. Не создавайте пожалуста отдельные темы - типа "Как мне запустить свое приложение на другом компьютере", "Как перевести String в char*" и тому подобное. Такие темы будут закрываться с отсылку в эту. Не обижайтесь.
Кроме того, не брезгуйте плиз, пользоваться поиском хотя бы, по нескольким критериям. Иногда бывает так, вопрос который возник у вас не столь оригинален - вполне возможно, кто то уже спрашивал его до вас :) Поверьте, отвечать на одни и теже вопросы тоже не всегда интересно.
Если вы задаете свой вопрос на форуме - что бы получить наиболее эффективный ответ - следуйте пожалуйста несложным правилам. Они просты:
0. Опишите чего вы хотели добиться.
1. Опишите ошибку которая у вас возникла, по возможности с текстом самой ошибки.
2. Если вы считаете это необходимым - приведите фрагмент(пожалуста не помещайте в свой вопрос весь листинг) кода, на который жалуется компилятор, коротко описав переменные которые используются, и как они инициализируются. Исходники высылайте или выкладывайте только в том случае, если вас об этом просят.
3. Если проблема связана с функцией какой либо библиотеки - не стесняйтесь залезть в хелп и найти там ее описание. То чтовы не рубите в английском, зато читаете Рабле в оригинале - отнюдь не оправдание. Людей для которых английский - родной, здесь немного. Пользуйтесь словарем, это дает результаты :)
4. Не забывайте - может быть ВСВ и имеет раширения по сравнению со стандартом - но тем не менее это С++. Не забывайте проверить, что в ваш проект подключены все необходимые заголовочные файлы, а так же файлы библиотек.
5. Если вы задали вопрос один раз - не нужно его повторять или дублировать, или размещать посты типа "Ну что никто не знает" и т.д. Вы рискуете узнать много разных путей, но так и не получить нужный вам ответ.
6. Форум - дело сугубо добровольное. Здесь ни кто НЕ ОБЯЗАН искать ответы на ваши вопросы. Если вам отвечают - то это только исключительно из любви к вам. :)
7. Исходя из выше сказанного, если вам не отвечают - ну возможно вас не любят :)
8. Для тех, кому нужно написать курсовую, программу, решить контрольную или тому подобное - существует раздел форума Студентам
Размещайте, плиз, свои посты там. Сообщения размещенные в данной теме - не будут перемещаться - они будут удаляться.
9. Если вы хотите пообщаться, обсудить тему, не связанную с ВСВ - милости просим: В "Отдохнем". Флуд в данном разделе не приветствуется.
Ну вроде все. Если что забыл - или не так - поправьте.
Удачи.
Сформулируй свои вопросы более внятно. Что мешает тебе разместить панель - на ней 3-4-5-6 кнопок и написать обработчик клика?
Я хотел сделать компонент как navigator, чтобы каждый раз на разных формах не прописывать клики,
а использовать компонент. Но думаю, что моих знаний пока еще мало.
Я наверное, что-то не понимаю. У меня в .срр
Variant toExcel(Variant App,const char *Exc, int off, String data)
{
try {
App.OlePropertyGet("Range", Exc).OlePropertyGet("Offset", off).OlePropertySet("Value", data.c_str());
} catch(...) { ; }
}/* toExcel() */
- это же определение?
а в .h - Variant toExcel(Variant App,const char *Exc, AnsiString data)-это прототип?
в этом же срр я вызываю - toExcel(App,"Номер",DataM->TovNakl->FieldByName("NAZVANIE")->AsString);
?
Нет - это не прототип, ты пытаешься использовать функцию как член класса, по крайней мере об этом говорит сообщение о ошибке. А в коде, который ты привел, нет идентификаторов пространства имен класса. Т.е. толи функция объявлена не верно, то ли неверно обращение к ней.
*Ошибка Project Name raised exeption class EOLESysError with message Операция недоступна*
появляется,
когда я пытаюсь выполнить код:
// устанавливаем путь к файлу шаблона
AnsiString sFile = GetCurrentDir()+"My.xlt";
// инициализируем Excel, открываем этот шаблон
try {
App=Variant::GetActiveObject("Excel.Application");
} catch(...) {
try { App=Variant::CreateObject("Excel.Application"); }
catch (...) {
Application->MessageBox("Невозможно открыть Microsoft Excel!"
" Возможно этого приложения на компьютере не установлено.","Ошибка",MB_OK+MB_ICONERROR);
}}
try {
App.OlePropertyGet("WorkBooks").OleProcedure("Open",sFile.c_str(),0,false,1);
Sh=App.OlePropertyGet("WorkSheets",1);
} catch(...) {
Application->MessageBox("Ошибка открытия книги Microsoft Excel!","Ошибка",MB_OK+MB_ICONERROR);
}
Причем когда я продолжаю компиляцию файл открывается.
И не знаете как можно изменить Exel-й рабочий каталог программно? Чтобы сохранять файлы шаблона в нужном месте. Или может есть другой способ.
Большое спасибо.
*Ошибка Project Name raised exeption class EOLESysError with message Операция недоступна*
появляется,
когда я пытаюсь выполнить код:
// устанавливаем путь к файлу шаблона
AnsiString sFile = GetCurrentDir()+"My.xlt";
// инициализируем Excel, открываем этот шаблон
try {
App=Variant::GetActiveObject("Excel.Application");
} catch(...) {
try { App=Variant::CreateObject("Excel.Application"); }
catch (...) {
Application->MessageBox("Невозможно открыть Microsoft Excel!"
" Возможно этого приложения на компьютере не установлено.","Ошибка",MB_OK+MB_ICONERROR);
}}
try {
App.OlePropertyGet("WorkBooks").OleProcedure("Open",sFile.c_str(),0,false,1);
Sh=App.OlePropertyGet("WorkSheets",1);
} catch(...) {
Application->MessageBox("Ошибка открытия книги Microsoft Excel!","Ошибка",MB_OK+MB_ICONERROR);
}
Причем когда я продолжаю компиляцию файл открывается.
И не знаете как можно изменить Exel-й рабочий каталог программно? Чтобы сохранять файлы шаблона в нужном месте. Или может есть другой способ.
Большое спасибо.
Стоит пользоваться дебагером и проверять какие переменные ты передаешь.
Вопрос.
Скажите, пожалуйста, как можно изменить в DbGrid цвет текста строки,а не всей сетки
:-?
Спасибо.
[QUOTE]Originally posted by kot_
Вопрос.
Скажите, пожалуйста, как можно изменить в DbGrid цвет текста строки,а не всей сетки
:-?
Спасибо.
const TRect &Rect, TField *Field, TGridDrawState State)
{
if (Table1->FieldByName("Size")->AsFloat > 10)
DBGrid1->Canvas->Font->Color = clRed;
DBGrid1->DefaultDrawDataCell(Rect, Field, State);
}
Винда скинула все драйверы, и заодно в билдере что-то поломалось, так например пришлось загружать vcl-компоненты. Но никак не могу и не пойму как устранить такой косяк. При галочке на "встроенной отладке" пишет такую фразу - "Debugger Kernel bordbk41.dll is missing or not registered". Но встроенной отладка все-таки нужна. Прошу помощь
Попробуй для начала зарегистрировать длл в системе повторно -
если это проблемы не решит - возможно будет проще переустановить билдер или использовать режим восстановления.
Но, к сожалению,не помогло.
Пишет "LoadLibrary failed".
Придется переустановить.. :(
cin>>aut;
cout<< titlebk;
cin>>tit;
cout<< yearbk;
cin>>yer;
можно и так
scanf("%s", &aut);
printf(titlebk);
scanf("%s", &tit);
printf(yearbk);
scanf("%s", &yer);
Собственно ввожу поочередно автора книги, затем название книги и год издания.
Основная проблема заключается в том что при вводе автора типа Имя Фамелия, вместо пробела компилятор делает типа ентер и в итоге Фамелия записывается в следующую переменную "tit".
Как это исправить, с учетом что в переменную "aut" неизвестно в каком формате будет сделана запись. Толи просто Имя, толи Имя фамелия, толи Имя Фамелия Отчество.
Я надеюсь что ясно изложил суть. Очень надеюсь на Вашу помощь.
День добрый. Проблема: есть код:
...
Я надеюсь что ясно изложил суть. Очень надеюсь на Вашу помощь.
cin >> ws;
cin.getline(buffer,256);
cout << buffer;
З.Ы. Если на языке С++ ты пишешь примерно так же как и на русском - то вобщем то и не удивительно, что компилятор на тебя обиделся :)
void __fastcall TForm1:BGrid1DrawDataCell(TObject *Sender,
const TRect &Rect, TField *Field, TGridDrawState State)
{
if (Table1->FieldByName("Size")->AsFloat > 10)
DBGrid1->Canvas->Font->Color = clRed;
DBGrid1->DefaultDrawDataCell(Rect, Field, State);
}
Не пойму, Field-это столбец, rect- как я понял размеры ячейки. Какие значения принимает State? Как правильно задавать Rect? Спасибо
code:--------------------------------------------------------------------------------
void __fastcall TForm1:BGrid1DrawDataCell(TObject *Sender,
const TRect &Rect, TField *Field, TGridDrawState State)
{
if (Table1->FieldByName("Size")->AsFloat > 10)
DBGrid1->Canvas->Font->Color = clRed;
DBGrid1->DefaultDrawDataCell(Rect, Field, State);
}
Не пойму, Field-это столбец, rect- как я понял размеры ячейки. Какие значения принимает State? Как правильно задавать Rect? Спасибо
Использовать помощь религия не позволяет?
The Rect parameter indicates the location of the cell on the canvas
....
TGridDrawState represents information that is useful when rendering the cell of a grid
З.Ы. Если на языке С++ ты пишешь примерно так же как и на русском - то вобщем то и не удивительно, что компилятор на тебя обиделся :)
Ну елки палки, не всем же быть великими кодописателями, так же как и не всем дано ясно излогать свои мысли.
Вобщем так: Огромное спасибо, помогло на все 100 (а ктоб сомневался).
Ну елки палки, не всем же быть великими кодописателями, так же как и не всем дано ясно излогать свои мысли.
да ладно не бери в голову :)
Как определить сколько строк в тексте в файле?
Посчитать :)
-----------------------------------------------
Смотрел я помощь,до того как написать-искал пример как эти параметры правильно задать, но безуспешно.
Если надоел вопросами-так и скажите.
Использовать помощь религия не позволяет.
-----------------------------------------------
Смотрел я помощь,до того как написать-искал пример как эти параметры правильно задать, но безуспешно.
Если надоел вопросами-так и скажите.
Если бы ты смотрел - у тебя бы не возник вопрос как их задать - потому как там это написано. Надоели не вопросы, надоели люди - которые ждут от форума откровений и что за них все сделают и все расскажут и покажут. А если говорят что надо свои силы приложить - МАЛО прочесть помощь - надо еще и попробовать то что в помощи написано, и параметры поменять и посмотреть что получится - губки бантиком - "если надоел.... :( :{ ".
Не надоел - но какие вопросы - такие и ответы.
1) Как прописать, например, изменение картинки при каком-либо событии, для всех сразу, а не для каждого в отдельности?
2) Можно ли как-нибудь объединить их в двумерный массив?
есть массив из string'ов
в цикле при
все прекрасно пишет а дальше идет строчка
...//начало цикла
fprintf (del,"%s, '%s', %s\n", mass.Sautor, mass.Stitle, mass.Syear);
и вс трандец в файл записывается только mass.Sautor а остальные 2 в виде (null).
Вот он
Ляля-фафа, '', (null)(null)
Типа-опа, '', (null)(null)
Не знаю уж что делать искренне надеюсь на помощ
Функция fprintf () категорически отказывается воспринимать данные типа string. Поэтому, чтобы все было ОК надо string перевести в char.
А делается это просто:
char Y[100];
strcpy(Y, X.c_str());
Т.к. на этом форуме я так и не нашел вразумительного объяснения действия функции X.c_str());, то привел его в виде "для чайников".
Надеюсь этим я кому-то помог! ;) (пожалуйста).
char Y[100];
strcpy(Y, X.c_str());
Т.к. на этом форуме я так и не нашел вразумительного объяснения действия функции X.c_str());, то привел его в виде "для чайников".
Надеюсь этим я кому-то помог! ;) (пожалуйста).
На форуме не нужно искать описание функций - для этого есть справка. На проблему с этим кодом тебе уже указали в другой теме. А я от себя добавлю - на форуме запрещен кросспостинг - в том числе и в таком виде. В следующий раз предупреждением ограничиваться не буду.
Подскажите существует ли способ редактирования библиотеки *.lib?
Существует.
Есть 100 ImageBox'ов и 2 вопроса:
1) Как прописать, например, изменение картинки при каком-либо событии, для всех сразу, а не для каждого в отдельности?
2) Можно ли как-нибудь объединить их в двумерный массив?
1.
а). Создать функцию и вызывать ее в событии.
б). Создать событие и назначить его всем.
в). Создать Action
2. Их можно объединить не как-нибудь а создать двумерный массив. Правда не понятно - почему собственно двумерный?
Существует.
Хотелось бы по подробнее..
Как визуально реализовать выбор одного элемента из списка всех элементов таблицы Менделеева? Думаю сделать это через ComboBox, но пугает перспектива разбираться в столь длинном списке элементов, тем более, что изначально в списке будет не вся таблица, а пополняться список будет без какой-либо очереди.
Используй два комбобокса - один для выбора категории - например типа "Редкоземельные элементы", "Металлы", ну и так далее. Не забудь так же предоставить выбор - "Все". А во втором - список элементов. Как вариант.
Как визуально реализовать выбор одного элемента из списка всех элементов таблицы Менделеева? Думаю сделать это через ComboBox, но пугает перспектива разбираться в столь длинном списке элементов, тем более, что изначально в списке будет не вся таблица, а пополняться список будет без какой-либо очереди.
А почему в ComboBox-е? Если Менделеева это таблица, то не логичнее в TStringGrid?
Подскажите пожалуйста, как с помощью сокетов передать данные из одной проги в другую (с использованием ip и порта, проги могут быть запущены на разных компах). Вот есть одна прога с текстовым полем и кнопкой отправить, есть другая прога с текстовым полем. Как сделать чтобы при нажатии на кнопку отправить текст из эдита появился в другой проге? Мне нужен самый элементарный пример, без всяких проверок на правильность и т.д. А то иногда присылают целую прогу и разбирайся в ней, когда надо разобраться в нескольких строчках. Если можно, то напишите еще комментарии.
Сетевую карточную игру надо мне написать. Подскажете так же, как удобнее организовать передачу данных от клиента на сервер и т.д.
Всем спасибо
"текст + CTRL+Z", вопрос: как послать комбинацию клавиш :(
Всем привет.
Подскажите пожалуйста, как с помощью сокетов передать данные из одной проги в другую (с использованием ip и порта, проги могут быть запущены на разных компах). Вот есть одна прога с текстовым полем и кнопкой отправить, есть другая прога с текстовым полем. Как сделать чтобы при нажатии на кнопку отправить текст из эдита появился в другой проге? Мне нужен самый элементарный пример, без всяких проверок на правильность и т.д. А то иногда присылают целую прогу и разбирайся в ней, когда надо разобраться в нескольких строчках. Если можно, то напишите еще комментарии.
Сетевую карточную игру надо мне написать. Подскажете так же, как удобнее организовать передачу данных от клиента на сервер и т.д.
Всем спасибо
$(BCB)\Examples\FastNet
И все же я просил не целую прогу а лишь самый элементарный пример передачи данных. Пожалуйста, очень надо
Не нашел я там ничего про сокеты или их там переименовали, специально, чтоб никто не догадался.
И все же я просил не целую прогу а лишь самый элементарный пример передачи данных. Пожалуйста, очень надо
Если не нашел - значит не судьба. Тебе надо - проблемы твои. Еще раз повторяю для тех кто в танке - ваши проблемы - проблемы только ваши - как говорил один из лучших преподавателей - высшие образование у нас не обязательно. Знания программиста тоже не являются обязательными для целого ряда профессий. Если нет желания учится и копать код - нет проблем - копай землю или занимайся чем то другим, что тебе нравится.
1. Интересует возможность редактирования записей в компоненте IBTable. Работает также, как и Table?
2. Может ли компонент IBTable отображать таблицу, если в ней есть поля содержащие "ссылки" на другие таблицы? Т.е. в данном поле хранятся лишь индексы каких-то данных, которые, соответственно, хранятся в другой таблице. Или же необходимо использовать IBQuery и потом обрабатывать самостоятельно, в том числе и редактирование. Как еще варианты?
Спасибо.
Здравствуйте. Прошу направить меня по правильному пути при использовании компонентов IBxxx (InterBase):
1. Интересует возможность редактирования записей в компоненте IBTable. Работает также, как и Table?
2. Может ли компонент IBTable отображать таблицу, если в ней есть поля содержащие "ссылки" на другие таблицы? Т.е. в данном поле хранятся лишь индексы каких-то данных, которые, соответственно, хранятся в другой таблице. Или же необходимо использовать IBQuery и потом обрабатывать самостоятельно, в том числе и редактирование. Как еще варианты?
Спасибо.
Если на правильный путь :) то лучше использовать TIBStoredProc. Не очень хорошим решением, как правило, является использование прямого доступа к таблицам.
Для отображения данных в связанных таблицах прийдется использовать два IBTable соединенных по данному полю (Master-Detail).
Помимо этого, есть вариант использовать FIBS - набор компонентов сторонних разработчиков предоставляющих гораздо больше возможностей чем стандартный, но и здесь наиболее оптимальным является доступ к данным через хранимые процедуры.
Программа по раздвижным дверям. На нескольких последовательных формах вводятся данные по двери. В конце выводится отчёт(печатная форма) с внесёнными данными и распечатывается заказчику.
На этом отчёте надо внести надпись. Просто надпись.
Открываю проект. Там имеются формы, которые есть в этой проге и где вводятся данные. Также есть форма настройки, о программе и т.п. . Самой формы отчёта в списке форм нет.
Где находится форма этого печатного отчёта? Как открыть её? Это отдельный файл или он находится в общем проекте? Может этот отчёт находится кусками в различных файлах других форм?
Андрей
Есть программа скомпилированная и исходники. Написана на C++ Builder 5.
Программа по раздвижным дверям. На нескольких последовательных формах вводятся данные по двери. В конце выводится отчёт(печатная форма) с внесёнными данными и распечатывается заказчику.
На этом отчёте надо внести надпись. Просто надпись.
Открываю проект. Там имеются формы, которые есть в этой проге и где вводятся данные. Также есть форма настройки, о программе и т.п. . Самой формы отчёта в списке форм нет.
Где находится форма этого печатного отчёта? Как открыть её? Это отдельный файл или он находится в общем проекте? Может этот отчёт находится кусками в различных файлах других форм?
Андрей
Возможно - форма отчета загружается динамически, возможно - форма как таковая вообще не используется.
Возможно ты просто кинул человека, который делал проект, решив что сможешь разобраться сам? Иначе не понятна проблема - проще всего спросить у автора - чтобы он показал - чем заниматься гаданием на кофейной гуще.
Смотрю снифером, соед. вроде устанваливается, а вот запрос GET....не проходит, ума не приложу что за дела, может что не так делаю?
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WebConn->Host = "ya.ru";
WebConn->Port = 80;
WebConn->Open();
Button1->Enabled = False;
Button2->Enabled = True;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WebConnConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Connection Established");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WebConnDisconnect(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Connection Closed");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
WebConn->Close();
Button1->Enabled=True;
Button2->Enabled=False;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WebConnError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
Memo1->Lines->Add("Connection Error"+IntToStr(ErrorCode));
return;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WebConnWrite(TObject *Sender,
TCustomWinSocket *Socket)
{
Socket->SendText("GET http://www.ya.ru/ HTTP/1.1\nAccept: */*\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)\nHost: ya.ru\nConnection: Keep-Alive\n");
Memo2->Lines->Add("Request Sended....");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WebbConnRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo2->Lines->Add(Socket->ReceiveText());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------