Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294

Не переключается картинка после отбора данных в ComboBox С++ Builder

02.05.2013, 11:45. Показов 3197. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Появилась проблема - одна.
В программе после отбора по жанрам потом открываю по каком-то фильму описание, и там по DBNavigator щелкаю вперед или назад, картинка не переключается, а переключается только текст. Если не отбирать данные перещелкивание картинки работает вместе с текстом.
Вложения
Тип файла: rar Kinoteatr.rar (7.48 Мб, 10 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2013, 11:45
Ответы с готовыми решениями:

Не переключается изображение. C++ Builder 6
Один баг у меня в программе, нужно устранить. Всего лишь один баг. А баг такой. Через DBNavigator Не переключается картинка в описании о...

С помощью запроса значение из Edit и ComboBox поместить в базу данных при нажатии кнопки в builder c++
с помощью запроса значение из Edit и ComboBox поместить в базу данных при нажатии кнопки в builder c++

Обновление данных листа после изменения ComboBox
На листе имеются ячейки G1 (фамилия), K1 (имя), I1 (отчество), N1 (фамилия, инициалы). При обновлении любой из ячеек лист автоматически...

46
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
02.05.2013, 12:07  [ТС]
Код на Form1

На ComboBox1 по Жанрам
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
DataModule2->DataSource1->DataSet = DataModule2->ADOQuery1;
    DataModule2->ADOQuery1->Close();
    DataModule2->ADOQuery1->SQL->Clear();
    if(ComboBox1->ItemIndex == 0)
      DataModule2->ADOQuery1->SQL->Add("Select * from Фильмы");
    else
      DataModule2->ADOQuery1->SQL->Add("Select * from Фильмы WHERE  Жанры LIKE '%"+ComboBox1->Text+"%'");
    DataModule2->ADOQuery1->Open();
 
}
На DBGrid
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
AnsiString wsg = DataModule2->ADOTable1->FieldByName("Трейлер")->AsString; //Из поле Трейлер будет открываться ссылка на веб страницу
wsg = wsg.SubString(wsg.Pos("#")+1,wsg.Length());
wsg = wsg.Delete(wsg.Pos("#"),1);
Form3->CppWebBrowser1->Navigate(WideString(wsg) ) ;  //На форме О фильме Отображает веб страницу с трейлером.
 
if(!(TBlobField*)DataModule2->ADOTable1->FieldByName("Постер фильма")->IsNull){
       if(!Form3->Image1->Visible)Form3->Image1->Visible=true;
       TMemoryStream* strm = new TMemoryStream;
       TJPEGImage *ptJpg=new TJPEGImage;
        ((TGraphicField*)DataModule2->ADOTable1->FieldByName("Постер фильма"))->SaveToStream(strm);
        strm->Seek(0,0);
        if (*(Word*)strm->Memory == 0xD8FF)Form3->Image1->Picture->Graphic=ptJpg;
        Form3->Image1->Picture->Graphic->LoadFromStream(strm);
        delete strm;
        delete ptJpg;
      }else
      Form3->Image1->Visible=false;
}

На Form3

На DBNavigator

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm3::DBNavigator1Click(TObject *Sender,
      TNavigateBtn Button)
{
AnsiString wsg = DataModule2->ADOTable1->FieldByName("Трейлер")->AsString; //Из поле Трейлер будет открываться ссылка на веб страницу
wsg = wsg.SubString(wsg.Pos("#")+1,wsg.Length());
wsg = wsg.Delete(wsg.Pos("#"),1);
Form3->CppWebBrowser1->Navigate(WideString(wsg) ) ;
 
if(!(TBlobField*)DataModule2->ADOTable1->FieldByName("Постер фильма")->IsNull){
       if(!Form3->Image1->Visible)Form3->Image1->Visible=true;
       TMemoryStream* strm = new TMemoryStream;
       TJPEGImage *ptJpg=new TJPEGImage;
        ((TGraphicField*)DataModule2->ADOTable1->FieldByName("Постер фильма"))->SaveToStream(strm);
        strm->Seek(0,0);
        if (*(Word*)strm->Memory == 0xD8FF)Form3->Image1->Picture->Graphic=ptJpg;
        Form3->Image1->Picture->Graphic->LoadFromStream(strm);
        delete strm;
        delete ptJpg;
      }else
      Form3->Image1->Visible=false;
}
0
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
02.05.2013, 12:17  [ТС]
Вот проект нормальный.

Прошу помочь. Всего лишь одна ошибка.
Вложения
Тип файла: rar Kinoteatr.rar (7.48 Мб, 11 просмотров)
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
02.05.2013, 12:19
Evgeny92, какая?
0
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
03.05.2013, 12:40  [ТС]
Ну вообщем.Проблема после отбора в выпадающем списке.

В главном окне, отбираю по жанрам фильмы. Потом открываю описание по каком-то фильму(она в новом окне). Там есть переключатель DBNavigator по нему щелкаю и картинка не переключается. Только текст переключается.

Если я после запуска программы, не отобрал по жанрам и т.д., открываю описание и там переключаю картинка и текст переключается. Тут норм нет проблем.

Добавлено через 9 часов 56 минут
???

Добавлено через 14 часов 18 минут
Никаких предложений?
0
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
03.05.2013, 12:57  [ТС]
Проблема с переключением картинки после отбора по жанрам, по странам или по годам, или по поиску фильма.
Текст соотвествует записям БД, а картинка нет.
Миниатюры
Не переключается картинка после отбора данных в ComboBox С++ Builder   Не переключается картинка после отбора данных в ComboBox С++ Builder   Не переключается картинка после отбора данных в ComboBox С++ Builder  

Не переключается картинка после отбора данных в ComboBox С++ Builder   Не переключается картинка после отбора данных в ComboBox С++ Builder  
0
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
03.05.2013, 20:17  [ТС]
Что мне сделать? Одна проблема всего лишь? Как исправить?
Скачайте и посмотрите как работает программа.

Проблема. Не переключается картинка в окне описании, после отбора фильмов по жанрам и по другим категориям.

Добавлено через 22 минуты
Неужели мне так и оставить с багом?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
03.05.2013, 23:10
Evgeny92, я советовал замени DBNavigator на image и Button и переключай картинки
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
03.05.2013, 23:32
Evgeny92, пока проект детально рассматривать не стал, но как только открыл, то сразу возник вопрос: для чего используется два компонента TADOConnection?
0
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
03.05.2013, 23:45  [ТС]
Ну я делал для 2-х таблиц. Можно было бы с одним, база одна а таблицы 2-е. Ну пусть так будет.

Добавлено через 11 минут
Вот решил поменять на кнопки. Я правда не знаю как это сделать. Делал по принципу добавления делал на другой форме.


C++
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
void __fastcall TForm3::Button3Click(TObject *Sender)
{
 DataModule2->DataSource1;
DataModule2->ADOTable1->Next();
DataModule2->ADOTable1->FieldByName("Íàçâàíèå ôèëüìà")->AsString = Form3->DBText1;
DataModule2->ADOTable1->FieldByName("Æàíðû")->AsString = Form3->DBText2;
DataModule2->ADOTable1->FieldByName("Ñòðàíà")->AsString = Form3->DBText3;
DataModule2->ADOTable1->FieldByName("Ãîä âûõîäà")->AsString = Form3->DBText4;
DataModule2->ADOTable1->FieldByName("Ðåæèññåð")->AsString = Form3->DBText5;
DataModule2->ADOTable1->FieldByName("Âðåìÿ")->AsString = Form3->DBText6;
DataModule2->ADOTable1->FieldByName("Â ðîëÿõ")->AsString = Form3->DBMemo1->Text;
DataModule2->ADOTable1->FieldByName("Ñþæåò")->AsString = Form3->DBMemo2->Text;
 
AnsiString wsg = DataModule2->ADOTable1->FieldByName("Òðåéëåð")->AsString; //Èç ïîëå Òðåéëåð áóäåò îòêðûâàòüñÿ ññûëêà íà âåá ñòðàíèöó
wsg = wsg.SubString(wsg.Pos("#")+1,wsg.Length());
wsg = wsg.Delete(wsg.Pos("#"),1);
Form3->CppWebBrowser1->Navigate(WideString(wsg) ) ;
 
if(!(TBlobField*)DataModule2->ADOTable1->FieldByName("Ïîñòåð ôèëüìà")->IsNull){
       if(!Form3->Image1->Visible)Form3->Image1->Visible=true;
       TMemoryStream* strm = new TMemoryStream;
       TJPEGImage *ptJpg=new TJPEGImage;
        ((TGraphicField*)DataModule2->ADOTable1->FieldByName("Ïîñòåð ôèëüìà"))->SaveToStream(strm);
        strm->Seek(0,0);
        if (*(Word*)strm->Memory == 0xD8FF)Form3->Image1->Picture->Graphic=ptJpg;
        Form3->Image1->Picture->Graphic->LoadFromStream(strm);
        delete strm;
        delete ptJpg;
      }else
      Form3->Image1->Visible=false;
 
DataModule2->ADOTable1->Post();
 
 
 
}
Но ошибка выскакиваерт на строчки

C++
1
DataModule2->ADOTable1->FieldByName("Íàçâàíèå ôèëüìà")->AsString = Form3->DBText1;
А с Навигатором никак сделать нельзя?
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
03.05.2013, 23:45
Evgeny92, уважаемый, у Вас в проекте истинный хаос

Удалите ADOConnection2.
Удалите ненужные кнопки - одной кнопкой закрывать аналогичную другую, но просто с другим названием - это полнейший моветон. Меняйте по надобности их Caption.
Удалите лишние DBGrid'ы/DBNavigator'ы на первой форме. По необходимости меняйте их DataSet.
Удалите лишние формы - я их как минимум 2 штуки обнаружил.
1
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
03.05.2013, 23:54  [ТС]
Не нужные кнопки это какие? И формы какие?

Добавлено через 59 секунд
До защиты остается очень мало времени. Программу давно должна быть разработана. И вот один баг всего лишь убрать нужно.
Сейчас я с пояснительной запиской занимаюсь.

Добавлено через 2 минуты
Вам понятна какая у меня ошибка? Я расписал как мог.

Добавлено через 1 минуту
программа то нормально в основном работает.
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
03.05.2013, 23:54
Evgeny92, начнете с первой формы пока что:

Цитата Сообщение от Evgeny92 Посмотреть сообщение
Не нужные кнопки это какие?
Button5, Button6, Button7, Button11
DBNavigator2
DBGrid2
Edit2
ComobBox5, ComboBox6


Цитата Сообщение от Evgeny92 Посмотреть сообщение
И формы какие?
Формы на добавление и изменение должно быть максимум две - неважно сераилы ли это, фильмы или мультики. Вообще можно обойтись одной.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
03.05.2013, 23:55
Evgeny92, ну чего 2 месяца есть)

Цитата Сообщение от Evgeny92 Посмотреть сообщение
Вам понятна какая у меня ошибка? Я расписал как мог.
Понятна)
1
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
03.05.2013, 23:59  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
Evgeny92, начнете с первой формы пока что:


Button5, Button6, Button7, Button11
DBNavigator2
DBGrid2
Edit2
ComobBox5, ComboBox6
Это тоже не важно. Мне устраивает.

делал так. На форме 2-е кнопки чтобы переключиться. Это Фильмы и Сериалы. По кнопке Фильмы, становятся комоненты и БД Сериалы не видимыми, если по Сериалам то компоненты Фильмы становятся не видимыми.
0
04.05.2013, 00:05

Не по теме:

В таком случае я тут не помощник. В хаосе разбираться не буду.

На месте аттестационной комиссии за такое творение поставил бы максимум 3 (по 5-бальной).

1
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
04.05.2013, 00:09  [ТС]
С DBNavigator'ом можно как нибудь сделать это? Кнопками я не знаю как сделать.
0
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
04.05.2013, 00:18  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
Evgeny92, начнете с первой формы пока что:


Button5, Button6, Button7, Button11
DBNavigator2
DBGrid2
Edit2
ComobBox5, ComboBox6



Формы на добавление и изменение должно быть максимум две - неважно сераилы ли это, фильмы или мультики. Вообще можно обойтись одной.
Речь в теме идет не о лишних компонентах и формах, об этом ничего я не спрашивал.
У меня ведь другая проблема.
На счет этого я может быть и переделаю. Уберу лишние кнопки и формы. Как только время будет.
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
04.05.2013, 00:22
Evgeny92, ты наведи порядок, и людям проще редактировать будет + себе приятнее)
1
 Аватар для Evgeny92
277 / 5 / 4
Регистрация: 09.11.2011
Сообщений: 294
04.05.2013, 00:32  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение

Не по теме:

В таком случае я тут не помощник. В хаосе разбираться не буду.

На месте аттестационной комиссии за такое творение поставил бы максимум 3 (по 5-бальной).

По нашим эта оценка 6 или 7

Добавлено через 1 минуту
День на переделку программы.

Добавлено через 7 минут
Ладно попробую переделать. Завтра отпишу.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.05.2013, 00:32
Помогаю со студенческими работами здесь

Ошибка в ComboBox после добавления источника данных
Есть класс, который я использую в качестве источника данных, он имеет вид: public class DemoSource { public static...

Сохранить данные в ComboBox после добавления новых данных
Добрый день. Создана форма организаций. Список организаций в комбобоксе создан программно. Выбираем данные из комбобокса и в...

Раскладка клавиатуры после входа не переключается при нажатии клавиш
Доброго времени суток, господа-форумчане. Проблема следующего характера: Поднял CentOS 6.3 64-bit при выборе языка в процессе установки...

Как реализовать вставку данных, после выбора из ComboBox в DataGridVew
Есть DataGridView, в нем ComboBoxDataGridView - Изделия, при выборе изделия необходимо в TextBoxDataGridView вставлять цену. Изделия...

Сравнение значений в строках после отбора
Добрый день! Подскажите, можно ли после того как заполнил ТЗ и сделал свертку и отбор, сравнить полученные строки между собой по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru