Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Открыть новую тему     Написать ответ в эту тему

Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HellSatan
инициализация буфера обмена
...
подготовка данных wchar_t* hMem
...
        HANDLE h = SetClipboardData( CF_UNICODETEXT, hMem );
        if ( h == NULL ) {
            не получилось
        }
        CloseClipboard();
 
подробнее см.МСДН(я специально не привожу весь код)
 
Для конвертации используй MultiByteToWideChar, хотя может у Борланда это делается как-то по-своему.

Всего записей: 2739 | Зарегистр. 16-10-2003 | Отправлено: 16:12 09-01-2008
yurich_v

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
  Ребята, не подскажете, как зарегистрировать свой новый графический класс в теле модуля, так как это делается в Дельфи:
 
initialization
 TPicture.RegisterFileFormat('abc', 'ABC Image File', TABCImage);
finalization
 TPicture.UnregisterGraphicClass(TABCImage);
 
  А то приходится регистрировать при создании и уничтожении формы:
 
void __fastcall TForm4::FormCreate(TObject *Sender)
{
    TPicture::RegisterFileFormat(0,"abc","abc", __classid(TABCImage));
}
 
void __fastcall TForm4::FormDestroy(TObject *Sender)
{
    TPicture::UnregisterGraphicClass(0,__classid(TABCImage));
}
 
   Коряво как-то получается

Всего записей: 99 | Зарегистр. 08-01-2007 | Отправлено: 06:18 10-01-2008
diaz85

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как с помощью ADO записи в таблицу вставить? или проапдейтить необходимые записи? в BDE был SQLUpdate .. а тут что-то пока аналога не нашел..

Всего записей: 39 | Зарегистр. 05-11-2007 | Отправлено: 19:07 13-01-2008
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
diaz85, вариантов уйма! ADOCommand/ADOQuery и т.п. Можно ADODataSet через Insert/Edit/Post. Для конкретного примера укажи БД, таблицу и ее поля .

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 04:26 14-01-2008
diaz85

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tantos
ну вот например банальный пример. есть табличка (напр T1) в ней три varchar поля (F1, F2, F3). Информация для добавления новой запись берется из 3-х Edit-ов (данные вводятся в эдиты пользователем). Такой пример подойдет?

Всего записей: 39 | Зарегистр. 05-11-2007 | Отправлено: 11:18 14-01-2008
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
diaz85,
раз (ADOCommand - аналогично)

Код:
 
ADOQuery->SQL->Clear();
ADOQuery->SQL->Add("UPDATE t1 set f1=:f1, f2=:f2, f3=:f3 where id=:id");
ADOQuery->ParamByName("F1")->Value = Edit1->Text;
ADOQuery->ParamByName("F2")->Value = Edit2->Text;
ADOQuery->ParamByName("F3")->Value = Edit3->Text;
ADOQuery->ExecSQL();
 

 
два

Код:
 
ADODataSet->CommandText = "SELECT * FROM t1";
ADODataSet->Open();
ADODataSet->Edit();
ADODataSet->FieldByName("F1")->Value = Edit1->Text;
ADODataSet->FieldByName("F2")->Value = Edit2->Text;
ADODataSet->FieldByName("F3")->Value = Edit3->Text;
ADODataSet->Post();
 

 
Ключевое поле-то есть?

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 04:53 15-01-2008 | Исправлено: Tantos, 04:53 15-01-2008
rvsn12

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь использовал компонент Advanced Data Export? Проблема в следующем,фильтрую из старой базы dbf ( записей 12млн.) компонентом tdbf и получаю в грид результат,сохраняю при помощи Advanced Data Export полученное в файл dbf на диске командой execute(),файл создается и все в файл записывается,только после этого проц грузиться на 100% и лечиться только снятием приложения. В чем проблема?

Всего записей: 60 | Зарегистр. 09-05-2006 | Отправлено: 10:34 15-01-2008
diaz85

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tantos
 
вот спасибо

Всего записей: 39 | Зарегистр. 05-11-2007 | Отправлено: 21:56 15-01-2008
diaz85

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чувствуется что скоро завалю все тут вопросами)
 
Вот что то не могу сообразить в чем дело:
 
есть 2 формы. в хедере одной после описания класса идет описание моих переменных и присвоение им начальных значений. во второй форме объявлены они же, но со спецификацией extern. При определенном событии во второй форме она меняет значения этих переменных. затем я в первой форме проверяю изменились ли значения переменных.... но они остаются  первоначальными... присвоенными при инициализации... в чем может быть трабла??

Всего записей: 39 | Зарегистр. 05-11-2007 | Отправлено: 19:17 18-01-2008 | Исправлено: diaz85, 19:18 18-01-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
diaz85
Лучше общие переменные вынеси в отдельный cpp-файл, а в h-файле объяви их также с extern'ом. Затем в каждую форму подключи этот хэдер.

Всего записей: 2739 | Зарегистр. 16-10-2003 | Отправлено: 20:49 18-01-2008
diaz85

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Garrett
супер!! заработало! спасибо. а что есть прям уж такая принципиальная разница?

Всего записей: 39 | Зарегистр. 05-11-2007 | Отправлено: 22:58 18-01-2008
diaz85

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
столкнулся вот еще с одной траблой.... поискал по форуму, погуглил, но ничего стоящего не нашел..
 
трабл в следующем.. есть dbf в досовской кодировке.. я данные от запросов вывожу в dbgrid и естественно получаю вместо русских слов каракули. как заставить грид работать с дос. кодировкой? и можно ли в гриде рабоать с отдельной ячейкой, если да то как к ней обратиться?
пс базу конвертить сторонними утилитами нельзя.. буду признателен за помощь

Всего записей: 39 | Зарегистр. 05-11-2007 | Отправлено: 13:06 19-01-2008
vidic777



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
diaz85

Цитата:
трабл в следующем.. есть dbf в досовской кодировке.

Когда то пользовался компонентом TDBF (на вскидку здесь можно скачать _http://www.mnogosofta.com/soft_3460.html), по умолчанию если не ошибаюсь он работает с кодировкой 866, а для того чтоб заработал с CP1251 нада в исходниках менять тип кодировки и перекомпилять компонент (сейчас не помню точно где но если очень нада буду вспоминать).  Еше вариант - компонент Apollo VCL (находится в обменнике).

Всего записей: 1313 | Зарегистр. 16-02-2005 | Отправлено: 17:27 19-01-2008 | Исправлено: vidic777, 17:38 19-01-2008
diaz85

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vidic777
а более стандартными методами нельзя?  
 
просто время поджимает((
 
пытался поменять charset на OEMcharset... в итоге получил что отображаются только некоторые буквы, отсальные тоже криво...  
 
пс пытаюсь все это сделать через адо... для отображения использую как уже писал выше DBGrid....  
 
Добавлено:

 
решил проблему путем скачивания драйвера Visual Fox Pro ODBC 9.0, установкой его и коннектом к базе тоже соответственно через него. + если дбфка досовская, то установка dbgrid->font->charset=oemcharset.
 
скачать драйвер можно приблизительно отсюда _msdn.microsoft.com/vfoxpro/downloads

Всего записей: 39 | Зарегистр. 05-11-2007 | Отправлено: 19:07 19-01-2008 | Исправлено: diaz85, 22:14 19-01-2008
vidic777



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
diaz85

Цитата:
решил проблему путем скачивания драйвера Visual Fox Pro ODBC 9.0,

Неплохое решение, поздравляю.  
 

Цитата:
а более стандартными методами нельзя?

Сорри, что не  подсказал раньше, прочел Ваше сообщение и вспомнил, в BDE-Administrator вкладка "Configuration" Ветка дерева: "Configuration->Drivers->Native" для драйвера "DBASE" или "FOXPRO" в параметре "LANGDRIVER" поставить значение "dBASE RUS cp866". Но работает только если есть Русские и Английские символы, у меня были и Украинские то этот способ не очень помогал (Украинские неправильно отображались). Потом при создании псевдонима в БДЕ выбрать тип "STANDART" и указать в параметре "DEFAULT DRIVER" значение или "DBASE" или "FOXPRO"
Еще раз сорри.

Всего записей: 1313 | Зарегистр. 16-02-2005 | Отправлено: 05:24 20-01-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
diaz85
А уйти с dbf нельзя?
Имхо, лучше потратить день-два на перевод в любой sql server в кодировку 1251 (если только рус-анг) или в юникод(если есть символы нац.алфавитов), а потом потраченное время вернется многократно...

Всего записей: 2739 | Зарегистр. 16-10-2003 | Отправлено: 09:49 20-01-2008
diaz85

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Garrett
просто другая контора поставляет информацию в дбф. я так бы с радостью вобще в идеале надо сделать выгрузку из дбф-ки в оракл. но это уже следующим этапом.
 
vidic777
спасибо

Всего записей: 39 | Зарегистр. 05-11-2007 | Отправлено: 10:03 20-01-2008 | Исправлено: diaz85, 10:08 20-01-2008
Ape

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите кто знает!!!
Есть StatusBar от TMS. Хочу в нём организовать ProgressBar.
Доступ к значению ProgressBar на Delphi выглядит так:

Код:
 
advOfficeStatusBar1.Panels[4].Progress.Position := 100
 

А как это сделать BCB6?
Я пробовал по всякому, но не получается. Компилятор ругается.

Код:
 
advOfficeStatusBar1->Panels[4].Items->Progress->Position = 100;
 

На этот код компилятор говорит, что Items надо передавать аргумент типа int, а в свойствах компонента этой инфы нет.

Всего записей: 81 | Зарегистр. 06-02-2003 | Отправлено: 12:35 20-01-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ape
А если так
advOfficeStatusBar1->Panels->Items[4]->Progress->Position = 100;

Всего записей: 2739 | Зарегистр. 16-10-2003 | Отправлено: 15:13 20-01-2008
Ape

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Garrett

Цитата:
 А если так
advOfficeStatusBar1->Panels->Items[4]->Progress->Position = 100;

Да! Именно так! Спасибо!

Всего записей: 81 | Зарегистр. 06-02-2003 | Отправлено: 16:02 20-01-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru