(Часть 1) (*Закрыта*)Я начинающий, подскажите пожалуйста, как...
Если вы только начинаете осваивать среду разработки ВСВ - предлагаю возникающие вопросы размещать в данной теме. Не создавайте пожалуста отдельные темы - типа "Как мне запустить свое приложение на другом компьютере", "Как перевести String в char*" и тому подобное. Такие темы будут закрываться с отсылку в эту. Не обижайтесь.
Кроме того, не брезгуйте плиз, пользоваться поиском хотя бы, по нескольким критериям. Иногда бывает так, вопрос который возник у вас не столь оригинален - вполне возможно, кто то уже спрашивал его до вас :) Поверьте, отвечать на одни и теже вопросы тоже не всегда интересно.
Если вы задаете свой вопрос на форуме - что бы получить наиболее эффективный ответ - следуйте пожалуйста несложным правилам. Они просты:
0. Опишите чего вы хотели добиться.
1. Опишите ошибку которая у вас возникла, по возможности с текстом самой ошибки.
2. Если вы считаете это необходимым - приведите фрагмент(пожалуста не помещайте в свой вопрос весь листинг) кода, на который жалуется компилятор, коротко описав переменные которые используются, и как они инициализируются. Исходники высылайте или выкладывайте только в том случае, если вас об этом просят.
3. Если проблема связана с функцией какой либо библиотеки - не стесняйтесь залезть в хелп и найти там ее описание. То чтовы не рубите в английском, зато читаете Рабле в оригинале - отнюдь не оправдание. Людей для которых английский - родной, здесь немного. Пользуйтесь словарем, это дает результаты :)
4. Не забывайте - может быть ВСВ и имеет раширения по сравнению со стандартом - но тем не менее это С++. Не забывайте проверить, что в ваш проект подключены все необходимые заголовочные файлы, а так же файлы библиотек.
5. Если вы задали вопрос один раз - не нужно его повторять или дублировать, или размещать посты типа "Ну что никто не знает" и т.д. Вы рискуете узнать много разных путей, но так и не получить нужный вам ответ.
6. Форум - дело сугубо добровольное. Здесь ни кто НЕ ОБЯЗАН искать ответы на ваши вопросы. Если вам отвечают - то это только исключительно из любви к вам. :)
7. Исходя из выше сказанного, если вам не отвечают - ну возможно вас не любят :)
8. Для тех, кому нужно написать курсовую, программу, решить контрольную или тому подобное - существует раздел форума Студентам
Размещайте, плиз, свои посты там. Сообщения размещенные в данной теме - не будут перемещаться - они будут удаляться.
9. Если вы хотите пообщаться, обсудить тему, не связанную с ВСВ - милости просим: В "Отдохнем". Флуд в данном разделе не приветствуется.
Ну вроде все. Если что забыл - или не так - поправьте.
Удачи.
По поводу QueryPerfomanceFrequency сотоварищи хочу вот что сказать.
В MSDN есть описание этих функций, но ни в C++ Builder 6, ни в M$ Visual C++ 2005 прототипы этих функций не описаны ни в одном .h-файле.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
LARGE_INTEGER freq, begin, end;
HINSTANCE lib = LoadLibrary("kernel32.dll");
getfrecprototype QueryPerfomanceFrequency = (getfrecprototype)
GetProcAddress(lib, "QueryPerfomanceFrequency");
...
}
:cool:
Так что придётся пользоваться GetTickCount() или Clock().
буковку r забыли в QueryPerformanceFrequency.
String doc("mailto:vasypupkin@mail.ru");
ShellExecute(Handle, NULL, doc.c_str(), NULL, NULL, SW_SHOW);
Программа рисовала график, сохраняла в BMP, открывала MS Word и с коментариями сохраняла полученный график.
*/ - от этого прищлось отказатся
Теперь нужно тоже самое сделать с WordPad т.е. *.rtf. или
OpenOffice Writer или вообще в какой нибудь документ, где можно посмотреть картинку с текстом.
чем HTML не подходит?
По ходу работы в Borland Disigner Studio наткнулся на следующую э-э-э... особенность. Частенько Студио требует для работы либо для компеляции различные файлы, т.е. попросту не может их найти в моем случае это UPDOWN.res, PERFGRAP.RES и парочка .hpp. Решается проблема на удивление просто: тупо копируешь эти файлы из обычного билдера и работаешь дальше.
Отсюда вопрос. Может я установил чего не так? Подскажите?:D
DBGrid у тя должен быть завязан на каком-нить DataSet.
Так что:
DataSet1->First();
for ( int i = 0; i < DataSet1->RecordCount; i++ )
{
col_arr = DataSet1->FieldByName("IntField")->AsInteger;
DataSet1->Next;
}
..
delete[] col_arr;
Есть также готовые решения. К примеру, компонент TsWebLabel от AlphaSkins. Такая ссылка на e-mail работает и ведет себя точно также, как она вела бы себя будучи отображенной в web-браузере.
Задача такова - обеспечить авторизацию пользователя в программе. Данные аккаунта хранятся в sql пишу:
String temp2 = autorz702->Edit1->Text;
char *base = temp.c_str();
char *pass = temp2.c_str();
if (strcmp(base,pass) !=0) блаблабла;
else ShowMessage("Пароль набран неверно");
проблема в том, что строчки сравниваються некорректно :(
ещё пробовал так
String temp2 = autorz702->Edit1->Text;
char *base = temp.c_str();
char *pass = temp2.c_str();
if (base == pass) блаблабла;
else ShowMessage("Пароль набран неверно");
и вот так if (base != pass) блаблабла;
Подскажите пожалуйста как правильно сформулировать :confused:
Задача такова - обеспечить авторизацию пользователя в программе. Данные аккаунта хранятся в sql пишу:
String temp2 = autorz702->Edit1->Text;
char *base = temp.c_str();
char *pass = temp2.c_str();
if (strcmp(base,pass) !=0) блаблабла;
else ShowMessage("Пароль набран неверно");
проблема в том, что строчки сравниваються некорректно :(
ещё пробовал так
String temp2 = autorz702->Edit1->Text;
char *base = temp.c_str();
char *pass = temp2.c_str();
if (base == pass) блаблабла;
else ShowMessage("Пароль набран неверно");
и вот так if (base != pass) блаблабла;
Подскажите пожалуйста как правильно сформулировать :confused:
а что у AnsiString не работает оператор == ?
а проблемка решена - дело было в нулевых символах при запросе строки из базы решилось так
goto ok;
else ShowMessage("Пароль набран неверно");
Для сравнения двух char[] есть функция strcmp(). Описание живёт в string.h.
Ещё есть функции AnsiCompareStr и AnsiCompareText, выполняющие аналогичные действия
Не подскажите как получить номер выделенной строки в DBGrid?
При объявлении в тексте программы обработчика события GetEditText (впрочем и SetEditText, и DrawCell, и OnSetEditText):
{
//здесь обработка события
}
Builder ругается:
Подскажите куда копать.
...
__property TStrings* Text={read=FText, write=SetText};
...
FText - поле типа TStrings*; SetText - метод, вызываемый при записи в свойство.
Реализация метода SetText примерно такая:
if (Ftext!=value){
delete FText;
FText=value;
Invalidate();
}
}
В конструкторе компонента поле FText инициализируется и в него записывается некоторая строка по-умолчанию:
FText=new TStringList;
FText->Add("Some string");
....
В деструкторе, естественно, delete FText.
Проблема состоит в том, что при попытке изменить значение свойства Text компонента из дизайнера форм (если вручную, то, естественно, без проблем), возникает ошибка
"Access voilation at address XXX. Write at address YYY".
Как решить эту проблему?
delete FText;
FText=value;
// написал
FText->Clear;
FText->AddStrings(value);
Однако, странно, почему же присваивание указателя не сработало...
При объявлении в тексте программы обработчика события GetEditText (впрочем и SetEditText, и DrawCell, и OnSetEditText):
{
//здесь обработка события
}
Builder ругается:
Подскажите куда копать.
У тебя нет соответствующей строки в заголовочном файле, т.е. строки "void __fastcall TForm1::StringGrid1GetEditText(TObject *Sender, int ACol, int ARow, AnsiString &Value);" в файле "Analiz.h". Либо она не создалась, либо ты ее удалил...
Имеем: 2 MS SQL базы территориально удалённых
Нужно организовать одностороннюю синхронизацию через тхт
Решил следующим образом через ADO подключился к текстовику и сделал выгрузку :
exp->QueryTXT->Append();
exp->QueryTXT->FieldByName("ID")->Value=exp->QuerySQL->FieldByName("ID")->Value;
exp->QueryTXT->FieldByName("NLSA")->Value=exp->QuerySQL->FieldByName("NLSA")->Value;
........................
exp->QueryTXT->Post();
exp->QuerySQL->Next();
}
Загрузка из тхт в SQL на другой стороне осуществляется аналогичным кодом но происходит раза в 3 быстрее почему?
ifstream file(odFile->FileName.c_str());
char buff[512];
while(!file.eof()){
file.getline(buff,512);
Memo1->Lines->Add(buff);
}
file.close();
А как в гриде центрировать значение ячейки по вертикали?
А как в гриде центрировать значение ячейки по вертикали?
это что?
Нашол ответ (может коунить ещё пригодитца): http://rsdn.ru/article/files/classes/selfcheck.xml
В двух словах: в опциях проэкта на вкладке advanced linker ставим галочку calculate checksum, в проэкте используем функцию MapFileAndCheckSum
в общем есть переменные
char cA[7] = "A = ";
нужно их слить, что бы в сA получилось "A = 30"
Я никак понять не могу как к char int присобачить...
и у меня почему то не работает конструкция
char * B = "World!";
strcat(A, B);
в общем есть переменные
char cA[7] = "A = ";
нужно их слить, что бы в сA получилось "A = 30"
Я никак понять не могу как к char int присобачить...
и у меня почему то не работает конструкция
char * B = "World!";
strcat(A, B);
Как вариант. Проверил работает.
char cA[7] = "A = ";
strcat(cA, (AnsiString(iA)).c_str());
А зачем ты тогда задавал вопрос в топике Borland C++ Builder?
тогда используй std::string вместо AnsiString.