(Часть 2) Я начинающий, подскажите пожалуйста как...
Прежде чем задать вопрос здесь, вы обязаны использовать
- Поиск по форуму, используя ключевые слова из вашего вопроса. Как правильно использовать поиск - читайте здесь
- Список наиболее часто задаваемых вопросов (FAQ)
- Поиск по предыдущей теме
Кроме того, прежде чем размещать сообщение, ознакомьтесь с правилами.
При размещении вопросов начинающих помимо указанной темы, будет выдаваться нарушение, а тема удаляться.
http://msdn2.microsoft.com/en-us/library/ms679277(VS.85).aspx
Спасибочки конешно, ты это нарошно зделал, из-за того что я не понимаю по английски? (Большая польза от модератора форума!).
--------
Вопрос:
Я попробовал реализовать лог чата через CppWebBrowser. -Вышло даже неплохо; но вот единственно не знаю как прокручивать вниз браузер? а то текст убегает.
Настоятельно рекомендую ознакомиться.
http://forum.codenet.ru/announcement.php?f=8
По русски я надеюсь читаешь?
"Beep(1000, 1000)" пищало не только в системный динамик, но и в обычные колонки?
ADO используй, в стандарнтой поставке не все конечно, но очень многие СУБД может цеплять, в частности аксесс
Пробывал, При использовании технологии "ADO" и базы данных "Access" прога не пашет на машине где нету "Microsoft Access"...
Поставщик данных => Microsoft JET 4.0 OLE DB Provider пашет без аксесса
Microsoft JET 4.0 OLE DB Provider - это компонент? Где его найти?
Нет компанент это TADO...
Microsoft JET 4.0 OLE DB Provider это поставщик данных, находится в стандартном окне построения строки подключения, в в дизайн-тайме выводится нажатием на кнопку "Build" свойства ConnectionString, в ран-тайме
if(DS != "")
{
DataModule2->ADOConnection1->Connected = false;
DataModule2->ADOConnection1->ConnectionString = DS;
DataModule2->ADOConnection1->Connected = true;
}
else
{
//Cancel
}
Данный провайдер ставиться или вместе с Акцессом или в составе MSDAO. Т.е. в любом случае установка хоть чего-то, но выполнена быть должна.
в стандартной поставке ХР она уже есть, во всяком случае на чистой винде запускал приложение, которое цепляло аксессовский файл, и оно работало
нет. экспериментировали и проверяли. в свое время была поставленна задача перейти с мсоффисе на опеноффисе - но при этом была программа которая работала с акцессовской базой. Так вот на чистой винде ХР проф со вторым сервис паком приложение не работало. Выходом было или установка отдельно провайдера или установка и удаление офиса.
Ведь для упрощения работы большинства программ необходимо пользоваться Базами данных, а это делает невозможным её перенос на другой компьютер.
Какой метод будет наиболие "безболезненным" для пользователей.
Не практичто как-то получается, к инсталяхе проги которая занимает килобайты добавлять в несколько раз тяжелее её пакет для работы с базой.
дабы не быть голословным, создал проект для подключения к аксессовской БД и запустил под чистой ХР СП2, все работает, в доказательство своих слов привожу картинки:
Ведь для упрощения работы большинства программ необходимо пользоваться Базами данных, а это делает невозможным её перенос на другой компьютер.
Какой метод будет наиболие "безболезненным" для пользователей.
Не практичто как-то получается, к инсталяхе проги которая занимает килобайты добавлять в несколько раз тяжелее её пакет для работы с базой.
посмотри сюда заявленно что работает без дров в виде файлового варианта БД
Ведь для упрощения работы большинства программ необходимо пользоваться Базами данных, а это делает невозможным её перенос на другой компьютер.
Какой метод будет наиболие "безболезненным" для пользователей.
Не практичто как-то получается, к инсталяхе проги которая занимает килобайты добавлять в несколько раз тяжелее её пакет для работы с базой.
Дорогой еж. предупреждаю последний раз - размещение вопросов на форуме не заменяет и не может заменить чтение руководства разработчика и знание целевой ОС.
Программы работающие с БД создаются в день как минимум ежедневно, и большая часть из них работает на разных компьютерах. Все что для этого надо - не ждать пока все будет разжевано и в рот положено - прочтите хотя бы Архангельского, прежде чем задавать вопросы.
int test = date;
ShowMessage(IntToStr(test));
date = test-1;
ShowMessage(DateToStr(date));
чем не подходит? Читайте справку.
:eek: Спасибо. В справке я нашел все ответы на свои будущие вопросы :D
Я думаю. Если спустя почти 10 лет использования билдера я иногда нахожу там ответы на многие вопросы - то ... :)
Как сделать вызов файла с расширением *.chm, тобишь справки
Как сделать вызов файла с расширением *.chm, тобишь справки
ShellExecute (...)
вообще-то для этого есть функция HtmlHelp()
"Руководство разработчика Borland C++ Builder" Холингворта
что тебя смущает?
В принципе эту книженцию заимел уже достаточно давно, но примеры данные там сложно назвать особо удачными или полезными. В принципе как создать производный класс от какого либо контрола, наделив его новыми свойствами это я знаю.
Для меня на данный момент вопрос заключается как в рамках VCL создать совсем новый класс (ну или производный от некой общей болванки не определяющей тип окна). Хочу понять концепцию написания VCL классов, что называется с нуля, т.е. с вызова ф-ции CreateWindow или CreateWindowEx. Когда на этапе создания, определяется к какому из стандартных контролов winapi принадлежит создающееся окно.
Но как докопатся до CreateWindow в VCL классах, мне не совсем понятно.
GIZMO
что тебя смущает?
Моя не шибко говорить Паскаля :)
В принципе эту книженцию заимел уже достаточно давно, но примеры данные там сложно назвать особо удачными или полезными. В принципе как создать производный класс от какого либо контрола, наделив его новыми свойствами это я знаю.
Для меня на данный момент вопрос заключается как в рамках VCL создать совсем новый класс (ну или производный от некой общей болванки не определяющей тип окна). Хочу понять концепцию написания VCL классов, что называется с нуля, т.е. с вызова ф-ции CreateWindow или CreateWindowEx. Когда на этапе создания, определяется к какому из стандартных контролов winapi принадлежит создающееся окно.
Но как докопатся до CreateWindow в VCL классах, мне не совсем понятно.
ну а мне не понятно, что тебе не понятно в таком случае? :)
Если ты хочешь писать чисто свой контрол - ты должен наследовать его от TObject. А все остальное - обращения к функции они одинаковы везде .
Код кнопки в HTML:
<FORM name=into_bank action=bank2.php method=post><INPUT type=hidden
value=deposit name=bank_action> amount:<INPUT maxLength=12 size=12
value=9512 name=amountB> </TD>
<TD align=right colSpan=2><INPUT type=submit value=Deposit name=Deposit></FORM>
Код кнопки в HTML:
<FORM name=into_bank action=bank2.php method=post><INPUT type=hidden
value=deposit name=bank_action> amount:<INPUT maxLength=12 size=12
value=9512 name=amountB> </TD>
<TD align=right colSpan=2><INPUT type=submit value=Deposit name=Deposit></FORM>
{
//TODO: Add your source code here
if( WB->Document )
{
TComInterface<IHTMLDocument2> pDocument;
WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
if( pDocument )
{
TComInterface<IHTMLElementCollection> pCollection;
pDocument->get_all(&pCollection);
if( pCollection )
{
TComInterface<IDispatch> pDisp;
pCollection->item(TVariant(WideString(ButtonName)), TVariant(0), &pDisp);
if( pDisp )
{
TComInterface<IHTMLElement> pElement;
pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement);
if( pElement )
{
pElement->click();
}
}
}
}
}
}
...void __fastcall TForm1::ClickButtonByName(String ButtonName).... в Unit.h нужно обьявлять функцию ClickButtonByName?
...pCollection->item(TVariant(WideString(ButtonName))... вместо ButtonName вписывать название интересующей кнопки?
WB это WebBrowser? если для открытия страницы я использую CppWebBrowser- нунжно писать CppWebBrowser->Document или
WB->Document?
{
//TODO: Add your source code here
if( WB->Document )
{
TComInterface<IHTMLDocument2> pDocument;
WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
if( pDocument )
{
TComInterface<IHTMLElementCollection> pCollection;
pDocument->get_all(&pCollection);
if( pCollection )
{
TComInterface<IDispatch> pDisp;
pCollection->item(TVariant(WideString(ButtonName)), TVariant(0), &pDisp);
if( pDisp )
{
TComInterface<IHTMLElement> pElement;
pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement);
if( pElement )
{
pElement->click();
}
}
}
}
}
}
берется вся колекция элементов HTML документа:
pDocument->get_all(&pCollection);
затем ищется по имени нужный элемент:
pCollection->item(TVariant(WideString(ButtonName)), TVariant(0), &pDisp);
с глобального интерфейса IDispatch передается на нужный интерфейс (IHTMLElement):
pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement);
если все произошдл удачно, вызываем метод click() интерфейса IHTMLElement:
pElement->click();
...void __fastcall TForm1::ClickButtonByName(String ButtonName).... в Unit.h нужно обьявлять функцию ClickButtonByName?[/quote]
да
[QUOTE=Alex_29a]
...pCollection->item(TVariant(WideString(ButtonName))... вместо ButtonName вписывать название интересующей кнопки?[/quote]
это параметр который принимает вышеуказанная ф-я (можете в кавычках вписать имя кнопки (как оно есть в хтмл документе)
[QUOTE=Alex_29a]
WB это WebBrowser? если для открытия страницы я использую CppWebBrowser- нунжно писать CppWebBrowser->Document или
WB->Document?
[/QUOTE]
CppWebBrowser->Document
Можно не объявлять отдельную функцию, а просто этот код написать в обработчике например таймера?
Можно не объявлять отдельную функцию, а просто этот код написать в обработчике например таймера?
написано как раз для C++ Builder
[C++ Error] Unit1.cpp(67): E2451 Undefined symbol 'IHTMLDocument2'
[C++ Error] Unit1.cpp(67): E2299 Cannot generate template specialization from 'TComInterface<T,piid>'
[C++ Error] Unit1.cpp(67): E2379 Statement missing ;
[C++ Error] Unit1.cpp(68): E2451 Undefined symbol 'IID_IHTMLDocument2'
[C++ Error] Unit1.cpp(68): E2451 Undefined symbol 'pDocument'
[C++ Error] Unit1.cpp(68): E2285 Could not find a match for 'IUnknown::QueryInterface(undefined,undefined)'
[C++ Error] Unit1.cpp(72): E2451 Undefined symbol 'IHTMLElementCollection'
[C++ Error] Unit1.cpp(72): E2299 Cannot generate template specialization from 'TComInterface<T,piid>'
[C++ Error] Unit1.cpp(72): E2379 Statement missing ;
[C++ Error] Unit1.cpp(73): E2451 Undefined symbol 'pCollection'
[C++ Error] Unit1.cpp(82): E2451 Undefined symbol 'IHTMLElement'
[C++ Error] Unit1.cpp(82): E2299 Cannot generate template specialization from 'TComInterface<T,piid>'
[C++ Error] Unit1.cpp(82): E2379 Statement missing ;
[C++ Error] Unit1.cpp(83): E2451 Undefined symbol 'IID_IHTMLElement'
[C++ Error] Unit1.cpp(83): E2451 Undefined symbol 'pElement'
[C++ Error] Unit1.cpp(83): E2285 Could not find a match for 'IUnknown::QueryInterface(undefined,undefined)'