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....")
(Часть 1) (*Закрыта*)Я начинающий, подскажите пожалуйста, как...
Если вы только начинаете осваивать среду разработки ВСВ - предлагаю возникающие вопросы размещать в данной теме. Не создавайте пожалуста отдельные темы - типа "Как мне запустить свое приложение на другом компьютере", "Как перевести String в char*" и тому подобное. Такие темы будут закрываться с отсылку в эту. Не обижайтесь.
Кроме того, не брезгуйте плиз, пользоваться поиском хотя бы, по нескольким критериям. Иногда бывает так, вопрос который возник у вас не столь оригинален - вполне возможно, кто то уже спрашивал его до вас :) Поверьте, отвечать на одни и теже вопросы тоже не всегда интересно.
Если вы задаете свой вопрос на форуме - что бы получить наиболее эффективный ответ - следуйте пожалуйста несложным правилам. Они просты:
0. Опишите чего вы хотели добиться.
1. Опишите ошибку которая у вас возникла, по возможности с текстом самой ошибки.
2. Если вы считаете это необходимым - приведите фрагмент(пожалуста не помещайте в свой вопрос весь листинг) кода, на который жалуется компилятор, коротко описав переменные которые используются, и как они инициализируются. Исходники высылайте или выкладывайте только в том случае, если вас об этом просят.
3. Если проблема связана с функцией какой либо библиотеки - не стесняйтесь залезть в хелп и найти там ее описание. То чтовы не рубите в английском, зато читаете Рабле в оригинале - отнюдь не оправдание. Людей для которых английский - родной, здесь немного. Пользуйтесь словарем, это дает результаты :)
4. Не забывайте - может быть ВСВ и имеет раширения по сравнению со стандартом - но тем не менее это С++. Не забывайте проверить, что в ваш проект подключены все необходимые заголовочные файлы, а так же файлы библиотек.
5. Если вы задали вопрос один раз - не нужно его повторять или дублировать, или размещать посты типа "Ну что никто не знает" и т.д. Вы рискуете узнать много разных путей, но так и не получить нужный вам ответ.
6. Форум - дело сугубо добровольное. Здесь ни кто НЕ ОБЯЗАН искать ответы на ваши вопросы. Если вам отвечают - то это только исключительно из любви к вам. :)
7. Исходя из выше сказанного, если вам не отвечают - ну возможно вас не любят :)
8. Для тех, кому нужно написать курсовую, программу, решить контрольную или тому подобное - существует раздел форума Студентам
Размещайте, плиз, свои посты там. Сообщения размещенные в данной теме - не будут перемещаться - они будут удаляться.
9. Если вы хотите пообщаться, обсудить тему, не связанную с ВСВ - милости просим: В "Отдохнем". Флуд в данном разделе не приветствуется.
Ну вроде все. Если что забыл - или не так - поправьте.
Удачи.
При работе с базой данных (InterBase, Builder C++) использую IBDataSet у которых имеются свойства SelectSQL и InsertSQL. Эти запросы используют параметры (:param), причем наборы параметров в этих SQL запросах различаются. С SelectSQL проблем не возникает - послушно работает, а вот когда пытаюсь присвоить значение для параметров из InsertSQL, вылазит сообщение, что такой параметр не известен. Что-то ещё нужно подкрутить? Где-то нужно указать, что скоро будет использоваться InsertSQL и сделать его "активным"?
Верен ли следующий алгоритм вставки:
1.IBDataSet.InsertSQL = ".. :param .. " - записали запрос
2.IBDataSet.Prepare() - проверили правильность запроса
3.IBDataSet.ParamByName("param") = ...
4.IBDataSet.Open
5.IBDataSet.Insert.
И еще. У IBDataSet есть поле GeneratorField, в котором заданный генератор привязывается к указанному полю по различным событиям, в том числе и по добавлению новых строчек. Эта связка нужна для того, чтобы не заморачиваться при вставке новых записей на задание параметра по указанию значения ключевого поля? Т.е. в InsertSQL не нужно указывать поле к которому привязан генератор?
Спасибо.
Ошибка:
Код:
перенес в TForm1::WebConnConnect и в запросе "GET ......\n\n, а меня было "GET......\n"
Может в HTTP запросе длину указать или что-нить такое? Подскажите?
#include <iostream>
using namespace std;
И Borland C++ 5 (понимаю, древний, но все таки!) ругается на вторую строчку ошибкой "Namespace name expected". Что за ерунда, совершенно обычное указание пространства имен...
Проект создан как консольное Win32 приложение.
Как запретить запуск приложения если оно уже запущено, и имеет место скрытая форма работы программы, т.е. без отображения окна?
Код:
CreateMutex(NULL,true,"SingleApplication");
int iError = GetLastError();
if(iError == ERROR_ALREADY_EXISTS){
Application->Terminate();
....
}
int iError = GetLastError();
if(iError == ERROR_ALREADY_EXISTS){
Application->Terminate();
....
}
#include <iostream>
using namespace std;
И Borland C++ 5 (понимаю, древний, но все таки!) ругается на вторую строчку ошибкой "Namespace name expected". Что за ерунда, совершенно обычное указание пространства имен...
Проект создан как консольное Win32 приложение.[/QUOTE]
Для данной версии это указание пространства имен не является обычным. По крайней мере на то время когда я использовал данный компилятор подобные конструкции не поддерживались необходимо было задавать стандартную форму инклюда:
Код:
#include <iostream.h>
Как сделать чтобы в statusbare при подключенном интернете выводилась надпись Подключен,
а при отключенном Отключен.
Код:
#include "cipthread.h"
class FolderAddThread : public TThread
{
private:
...
void __fastcall SetActiveCaption();
void __fastcall SetActiveCaption1();
void __fastcall StringGridUpdate();
protected:
void __fastcall Execute();
public:
__fastcall FolderAddThread(bool CreateSuspended,int count,TStrings * flist,AnsiString dir,CipherFiles * listfil,AnsiString pass);
};
class FolderAddThread : public TThread
{
private:
...
void __fastcall SetActiveCaption();
void __fastcall SetActiveCaption1();
void __fastcall StringGridUpdate();
protected:
void __fastcall Execute();
public:
__fastcall FolderAddThread(bool CreateSuspended,int count,TStrings * flist,AnsiString dir,CipherFiles * listfil,AnsiString pass);
};
Код:
void __fastcall FolderAddThread::Execute()
{
...
CipherThread * mt;
for (i=0;i<mycount;i++){
...
mt=new CipherThread(true,asd,t1,t,mylistfiles,true);
mt->FreeOnTerminate=true;
mt->Resume();
int res;
res=mt->WaitFor();
}
}
{
...
CipherThread * mt;
for (i=0;i<mycount;i++){
...
mt=new CipherThread(true,asd,t1,t,mylistfiles,true);
mt->FreeOnTerminate=true;
mt->Resume();
int res;
res=mt->WaitFor();
}
}
Второй поток:
Код:
class CipherThread : public TThread
{
private:
void __fastcall MyCipherExec();
protected:
void __fastcall Execute();
public:
__fastcall CipherThread(bool CreateSuspended,unsigned char * key1,AnsiString t1,AnsiString t2,CipherFiles * whatcode,bool operation);
};
{
private:
void __fastcall MyCipherExec();
protected:
void __fastcall Execute();
public:
__fastcall CipherThread(bool CreateSuspended,unsigned char * key1,AnsiString t1,AnsiString t2,CipherFiles * whatcode,bool operation);
};
При попытке запустить главный поток после оператора "res=mt->WaitFor();" возникает такая ошибочка: "Project xxxx raised exception class yyyyy with message Thread Error: Неверный декскриптор (6).
Process stopped. Use Step or Run to continue."
Вложенный поток (который вызывается внутри основного) сам по себе работает исправно, но при попытке такой вот конструкции появляется ошибка.
Как это минуть? В чем собственно состоит ошибка, почему дескриптор неверный.
doQeury->SaveToFile("c:\\1.dbf")[\code]
На твои "вопроссы" - ответы достаточно просты - что бы показывало киррилицу - в 1001 раз - установи в BDE Админе нужную тебе кодировку.
Во вторых - пытаюсь открыть это как? Что я должен думать на тему как ты этот файл открываешь? Судя по вопросу первому - вариаций количество огромное.
В третьих - ... ну в прочем первых двух достаточно.
Вложенный поток (который вызывается внутри основного) сам по себе работает исправно, но при попытке такой вот конструкции появляется ошибка.
Как это минуть? В чем собственно состоит ошибка, почему дескриптор неверный.[/QUOTE]
Вобщето функция не дискриптор возвращает потока. Потому и неверый. В справке пишется:
Цитата:
Waits for the thread to terminate and then returns the value of the ReturnValue property.
Вроде так.
Если я правильно понял - ты таким образом в базу пытаешься внести изменения?
Цитата:
Вобщето функция не дискриптор возвращает потока. Потому и неверый. В справке пишется:
То что она возвращает вообще не важно. Хотя из кода программы который я привел заметно что я его принимаю в int.
Мне необходимо чтобы процесс главный ожидал выполнение вложенного, и этой функцией судя по всему можно этого добиться.
Вложенный поток возвращает ReturnValue(который не явлется дескриптором потока:) ), я его принимаю.
Собственно неверным в данном случае наверно является дескриптор потока mt.
Собственно суть ошибки так и не понятна. Как ее устранить?
Здравствуйте.
Помогите пожалуйста создать функцию вычисляющую степень числа
например как Х 1/3 степени
я пытался решить проблему создав функцию вычисляющую любую степень любого числа следующим образом:
function stepen(sx,sm:real):real;
var
si:integer;
sz,sr:real;
begin
sr:=1;
sz:=sm*sx;
for si:=2 to 6 do
begin
sz:=sz*(sm+1-si)*sx/si;
sr:=sr+sz;
end;
result:=sr;
end;
это я взял с того что Х^a=1+a*x+(a-1)*a*x^2/2!+(a-2)*(a-1)*a*x^3/3!+...+(a-n)*(a-n+1)*...*a*x^n/n!+...
я так делаю, но он вычисляет неправильно, может у меня где-то ошибка???
заранее благодарен за помощь.
скажите как сделать чтобы появлялся путь файла при нажатии на кнопку(она привязана к OpenDialog) как на
рисунке[/QUOTE]
Блин... Вообще вопрос не коректный... Но если ты хочешь сделать то, что я думаю, то тебе надо в событие ОнКлик кнопки поместить следующие:
[QUOTE=coyc]скажите как сделать чтобы появлялся путь файла при нажатии на кнопку (она привязана к OpenDialog) как на
Блин... Вообще вопрос не коректный... Но если ты хочешь сделать то, что я думаю, то тебе надо в событие ОнКлик кнопки поместить следующие:
Код:
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
OpenDialog1->Execute() ;
Edit1->Text = OpenDialog1->FileName;
}
{
OpenDialog1->Execute() ;
Edit1->Text = OpenDialog1->FileName;
}
Подскажите, пожалуйста, я создаю глобальную extern-переменную в одном из модулей и переопределяю ее в остальных, но затем при работе с ней она порой равна 0, как с этим бороться? Заранее благодарен.
Вот именно по этой причене настоятельно не рекомендуеться использовать глобальные переменные! Совет: используй локальные переменные...
Или можешь создать класс, с нужной тебе переменной. И инициализировать ее только методами доступа. Шанс случайно инициализировать ее неправильным значение уменьшиться, но не пропадет...
точнее плей лист...
У поле Label1->Caption сохраняется к-тво треков, которые нужно воспроезвести.
Поле ListBox1 исполняет роль списк треков.
Цитата:
int i=0;
while ( i<StrToInt(Label1->Caption))
{
MediaPlayer1->FileName=ListBox1->Items->Strings;
MediaPlayer1->Open();
MediaPlayer1->Play();
i++;
}
while ( i<StrToInt(Label1->Caption))
{
MediaPlayer1->FileName=ListBox1->Items->Strings;
MediaPlayer1->Open();
MediaPlayer1->Play();
i++;
}
В результате исполнения воспроезводится последний трек...
СТУДЕНТ / НОМЕР ГРУППЫ / СРЕДНИЙ БАЛЛ
имя 123 4.5
имя 123 4.5
ВОПРОС: можно ли сразу вывести таблицу, а вводить переводом курсора по полям таблицы
на CENTER'а я как то выводил такой алгоритм
m=5;
do
{
for(i=1;i<5;i++)
if (mas>mas[i+1])
{
int e=q;
q=w;
w=e;
}
m--;
}
while(m==0);
точнее плей лист...
У поле Label1->Caption сохраняется к-тво треков, которые нужно воспроезвести.
Поле ListBox1 исполняет роль списк треков.
В результате исполнения воспроезводится последний трек...[/QUOTE]
А какой должен "воспроизводиться" по твоему?
Ты проверяй закончил он играть трек или нет.. Если закончил - выгружай файл и загружай новый..
А ты все сразу их на "Play" кидаешь - вот он и воспроизводит который последним получил..
СТУДЕНТ / НОМЕР ГРУППЫ / СРЕДНИЙ БАЛЛ
имя 123 4.5
имя 123 4.5
ВОПРОС: можно ли сразу вывести таблицу, а вводить переводом курсора по полям таблицы
на CENTER'а я как то выводил такой алгоритм
m=5;
do
{
for(i=1;i<5;i++)
if (mas>mas[i+1])
{
int e=q;
q=w;
w=e;
}
m--;
}
while(m==0);[/QUOTE]
"Алгоритм" конечно мощный.. "Как-то" - это значит давно программишь?
А что сделать-то надо?
Что значит "вывести" (куда/чем), и что значит "вводить переводом курсора по полям таблицы"
мне нужно сделать таблицу вида
СТУДЕНТ / НОМЕР ГРУППЫ / СРЕДНИЙ БАЛЛ
имя 123 4.5
имя 123 4.5
ВОПРОС: можно ли сразу вывести таблицу, а вводить переводом курсора по полям таблицы
[/QUOTE]
Ну если я правильно понял твою задачу, то тебе надо использовать компонент StringGrid (в нете есть куча примеров с этой компонентой, так что поищи)... Но можешь написать что-то типа того:
Код:
void TForm1::InitTable()
{
StringGrid1->RowCount = НУЖНЫЙ_РАЗМЕР_ТАБЛИЦИ(количество строк);
StringGrid1->Cells[1][0] = "Фамилия";
StringGrid1->Cells[2][0] = "Номер группы";
StringGrid1->Cells[3][0] = "Средний бал";
}
{
StringGrid1->RowCount = НУЖНЫЙ_РАЗМЕР_ТАБЛИЦИ(количество строк);
StringGrid1->Cells[1][0] = "Фамилия";
StringGrid1->Cells[2][0] = "Номер группы";
StringGrid1->Cells[3][0] = "Средний бал";
}
Потом, если тебе понадобиться сохранить данные, которые ты ввел в таблицу в структуру, или в фаил используй теже StringGrid1->Cells[][]...
К примеру:
Код:
struct Students
{
AnsiString Name;
int GrupNum;
float Mark;
};
Students List;
List.Name = StringGrid1->Cells[1][1];
{
AnsiString Name;
int GrupNum;
float Mark;
};
Students List;
List.Name = StringGrid1->Cells[1][1];
Это я написал на всякий случай, чтоб упредить вопрос: "а как мне потом сохранить то, что я ввел?";)
в cppwebbrowser?
Заранее спасибо.
в cppwebbrowser?
Заранее спасибо.[/QUOTE]
Navigate(BSTR URL, TVariant* Flags=TNoParam(), TVariant
* TargetFrameName=TNoParam(), TVariant* PostData=TNoParam(), TVariant
* Headers=TNoParam());
передай в последний параметр: Cookie: <текст куки>
Куда бы я не вставил кукис...вечно выдаёт ошибку...
Еще раз извиняюсь
Каким образом можно открыть каталог в билдере? Т.е. просто нажатие кнопки и открывается определенный каталог. Казалось бы должно быть очень просто, но пока не получается :rolleyes:
Код:
#include <FileCtrl.hpp>
...
AnsiString Directory;
SelectDirectory("Select directory",WideString(""),Directory);
...
AnsiString Directory;
SelectDirectory("Select directory",WideString(""),Directory);
остальное смотрите в Ф1
Куда бы я не вставил кукис...вечно выдаёт ошибку...
Еще раз извиняюсь[/QUOTE]
Может проще написать ошибку, которую вам выдает? Последним является параметр крайний справа, параметры друг от друга отделяются запятыми :)
Приведите код который у вас не работает (предварительно ознакомившись в хелпе с описанием компонента, и с данной функцией в частности) - и вы получите ответ гораздо быстрее.
Куда бы я не вставил кукис...вечно выдаёт ошибку...
Еще раз извиняюсь[/QUOTE]
Код:
TVariant Headers("Cookie: PARAM=VALUE\r\n");
CppWebBrowser1->Navigate(WideString("http://www.blablabla.com"), TNoParam(), TNoParam(), TNoParam(), &Headers);
CppWebBrowser1->Navigate(WideString("http://www.blablabla.com"), TNoParam(), TNoParam(), TNoParam(), &Headers);
типа этого, не проверял...и вообще слушайся модератора:)
Код:
#include <FileCtrl.hpp>
...
AnsiString Directory;
SelectDirectory("Select directory",WideString(""),Directory);
...
AnsiString Directory;
SelectDirectory("Select directory",WideString(""),Directory);
остальное смотрите в Ф1[/QUOTE]
Облазил хелп, поэкспериментировал... немного не то... не должны вызываться диалоги, браузы и тп, необходимо, чтобы сразу открылась нужная папка (читай как по дабл клику по обычному каталогу) Если очень сильно туплю, прошу сразу и по-дальше не отправлять:rolleyes:
Давай по буквам - как говорят аноглоговорящие спелл ит.
Что ты хочешь сделать? Что в твоем понимании - "открылась новая папка"? Где открылась? Где ты даблкликать собрался? И тому подобное. Опиши свою конкретную задачу.
Как правило - никто никуда никого не посылает - но сформулируй вопрос более толково. Пожалуйста. А то пошлют :)
Опиши свои эксперементы - потому как готовое решение ты врядли получишь :) - но с проблемами и ошибками разобраться будет проще.
В общем решение найдено....c помощью spawnlp. вызываю explorer.exe с параметром directory - путь к папке...
Извиняйте за тупость ньюб я ещё.
Это тема "Я - начинающий", а не "Я - студент-лентяй". Для подобных тем есть отдельный раздел форума.
благодарен.
[/QUOTE]
А Вес у меня почему-то так и остался 33:)))))
[QUOTE=@leX]Подскажите, пожалуйста, как получить текущие координаты мыши, в событии OnClick. Заранее
В общем у меня такая ерунда: в проекте две формы, я объявил в Unit1.h переменную типа AnsiString, в Unit2.cpp пишу include"Unit1.h".
При этом переменная доступна в обоих модулях, но изменяется она локально,т.е. если её изменить в одном модуле, то во втором её значение не изменится!!!
HELP-Если что-то ляпнул, то объясните, пожалуйста, как это делается!!!
Пишу настройки к своей проге.