Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++Builder. Вызов формы. Вопросы по формам и шаблону. 
:(
    Опции темы
Anark1
  Дата 15.12.2006, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Недавно начал писать на C++. Использую Borland C++ Builder v 6.0.
Для реализации моей программы необходимо вызвать вторую форму. При попытке функции Showmodal(). smile  выдается ошибка о том, что не существует вторая форма. В мэнэджере функций я включил обе формы.
Если не сложно пропишите код для нажатия кнопки - запуск формы.
+ Хотелось бы услышать алгоритм для следующей программы - В списке ListBox есть несколько элементов. Можно открыть для каждого элемента своё меню, в котором лежит своя информация, это меню можно редактировать. Но создается только одна шаблонная форма. И под каждый элемент в этом шаблоне должна лежать своя информация. Пример в программах - список контактов в ICQ и инфо о контакте. То есть для всех контактов своя инфа, но одинаковый шаблон заполнения.
Помогите начинающему программеру.  
 smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
witex
Дата 15.12.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 16.10.2006
Где: Эстония

Репутация: 1
Всего: 4



Скорее всего, ты зыбыл в главной форме забыл сделать инклуд  .h файла, втрой формы.
Потом надо создать указатель на класс, и только потом SHowModal();
Код

#include "form2.h"

TForm2 *form2;
form2->ShowModal();


а насчёт шаблоно, сделай опыять же форму, заполняемую из файла к примро по id. 
А при клик на отдельный элемент берёшь его id, загружаешь инфу из файла по id и потом показываешь форму!
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. 
PM MAIL   Вверх
Anark1
Дата 15.12.2006, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Спасибо. Можно поподробнее про ID? 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 16.12.2006, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(witex @ 15.12.2006,  18:48)
Код

#include "form2.h"

TForm2 *form2;
form2->ShowModal();


Приведенный пример может не работать - указатель непроинициализирован.
В Билдере 2 варианта создания форм (настраивается в своствах проекта) - автоматически, это форма создается на этапе инициализации приложения и вручную - тогда форму необходимо создать самому, используя new. В приведенном выше примере подразумевается, что указатель на форму содержит действительно указатель на форму (т.е. форма создана при инициализации приложения)

Если брать примером аську - там используется обычное PopUp меню.

По реализации могу предложить следующий вариант:
В комбобоксе - список неких значений.
К комбобоксу цепляему PopUp меню, которое содержит набор (шаблон) действий.
При вызове этого меню - берем текущий индекс Комбобокса (или другим способом узнаем текущее его значение) - и уже действуем. Все дело происходит в обработчике PopUp меню.

PM MAIL ICQ   Вверх
Anark1
Дата 16.12.2006, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Да. Для ввода согласен. А для просмотра информации? То есть когда мы уже открываем готовый контакт. Может быть стоит создать txt,  в котором на каждой строке будет лежать информация по контакту?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 16.12.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Список контактов в файле. загружаем файл. В Листбокс выводим ключевые поля. При нажатии кнопки в листбоксе выводим дополнительную форму с информацией.
PM MAIL ICQ   Вверх
Anark1
Дата 16.12.2006, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Ключевые поля? В данном случае имя контакта, так? Если вторая форма содержит несколько полей? Как лучше разбить строку в файле чтобы можно было легко считывать для каждого поля свою информацию?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 16.12.2006, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(Anark1 @ 16.12.2006,  21:16)
Как лучше разбить строку в файле чтобы можно было легко считывать для каждого поля свою информацию?

Я не люблю текстовые файлы. Я бы делал в собственном формате.
Текстовые файлы - стандартно разбиваем, табуляцией. Преимущества такого подхода - этот файл легко формируется в экселе.
PM MAIL ICQ   Вверх
Anark1
Дата 16.12.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Собственный формат? база данных?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 17.12.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(Anark1 @ 16.12.2006,  22:53)
Собственный формат? база данных?

Там что, будет 10000 записей? Тогда надо использовать нормальную СУБД
А если на 20 - 100 записей, то можно и в файл сохранить
PM MAIL ICQ   Вверх
Anark1
Дата 17.12.2006, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Все правильно прописал. При запуске программы, при нажатии кнопки, которая отвечает за вызов второй формы выкидывается сообщение об ошибке ехе-файла. Код ошибки или имеет вид 0000000., или не умещается в окне. Что это? Все таки решил использовать базу данных. Хочется чтобы пользователь работал с окном, где видны все поля ввода, а не талбица. Можно ли работать с базой, не создавая таблицу непосредственно в форме? Если да то какие компоненты?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anark1
Дата 17.12.2006, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



 smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 18.12.2006, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(Anark1 @ 17.12.2006,  16:52)
Все правильно прописал. При запуске программы, при нажатии кнопки, которая отвечает за вызов второй формы выкидывается сообщение об ошибке ехе-файла. Код ошибки или имеет вид 0000000., или не умещается в окне. Что это? Все таки решил использовать базу данных. Хочется чтобы пользователь работал с окном, где видны все поля ввода, а не талбица. Можно ли работать с базой, не создавая таблицу непосредственно в форме? Если да то какие компоненты?

Все смещалось в доме Обломских....

В первую очередь вас интересует вызов форму или БД? Если ваша программа выдает некую ошибку - код в студию. Если интересуют вопросы подключения и использования БД - опишите задачу.
PM MAIL ICQ   Вверх
Anark1
Дата 18.12.2006, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



2Anikmar
Ну уж извини.
1)О форме.
Есть две формы.
Первая - Main. Вторая - доступна ( В окне мэнэджера). При нажатии на кнопку "Добавить" должна открыться Form2 в модальном режиме.
Код

#include <mhat2.h> {Форма 2}
...
void _fastcall TForm1::Button1Click (TObject* Sender)
Form2->ShowModal;

Компилятор ошибок не выявляет и программа запускается. Всплывает форма1, жмем "Добавить" и вылезает ошибка : "Access violation at adress 00401CFF in module "mxat.exe". Read of 00000000."
С единственной кнопкой - ОК.
2) Формулирую смысл программы.
В главной форме есть компонент ListBox, в котором перечислены имена контактов, и кнопки компоненты для управления списком. При нажатии Добавить или Редактировать\Смотреть всплывает форма2, в которой и вводится информация. Хочется реализовать это с помощью базы данных. И можно ли это сделать таким образом, чтобы не чертить саму таблицу. Как бы работать с базой которая нигде не видна пользователю. Нужно ли её создавть и скрывать, или можно создать как бы "абстрактную" базу. Которая висит в памяти и работает с программой. 



--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 18.12.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Form2 - инициализирован?
Эта форма точно создана или в проекте значится как свободная?
PM MAIL ICQ   Вверх
Anark1
Дата 18.12.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Что значит инициализирована? И что значит ссвободная?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 18.12.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(Anark1 @ 18.12.2006,  19:35)
Что значит инициализирована? И что значит ссвободная?

В проекте есть настройки создания форм. Если AutoCreate - значит форма автоматически создается при запуске приложения. Если она в окошке "Available" - значит ее нужно в приложении создавать с помощью оператора new

Надо открыть меню Projects->Options и посмотреть как создается Form2
PM MAIL ICQ   Вверх
Anark1
Дата 18.12.2006, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Спасибо, мэн. У меня Form2 была Available. Все теперь рабоатет. А вообще как полезно использовать Available. Ведь с виду без разницы как форму запускать?
+ Не напишешь алгоритм для проги?
И ответь плз про базы.

Это сообщение отредактировал(а) Anark1 - 18.12.2006, 20:09


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 19.12.2006, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(Anark1 @ 18.12.2006,  20:09)
Спасибо, мэн. У меня Form2 была Available. Все теперь рабоатет. А вообще как полезно использовать Available. Ведь с виду без разницы как форму запускать?
+ Не напишешь алгоритм для проги?
И ответь плз про базы.

Тут двояко можно смотреть на этот момент. Созданные автоматически формы всегда находятся в памяти и если их много, то получается расстояительно. Лично я обычно создаю их самостоятельно, но если их немного, то можно и автоматом.

Теперь по поводу БД. В стандарте билдера есть некий движок BDE (чисто борландовская тема). Работает неплохо, но имеются некоторые трудности с установкой на другую машину.

Лично я использую компоненты ADO.

По поводу самой СУБД - тут дело вкуса. Я использую MS SQL 2000. Для более простых задач достаточно использовать PARADOX, но надо сразу определиться - будит ли программа многопользовательская или нет. PARADOX весьма криво поддерживает многопользовательский режим и вероятность слетания базы в нем выше.

По поводу алгоритма - я пока честно говоря не понял задачи. Что должна вцелом реализовывать программа.
PM MAIL ICQ   Вверх
Anark1
Дата 19.12.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Я уже создал базу данных. Подредактировал кодировку PARADOX.  С этим проблем нет.
Программа - лист контактов в главной форме + кнопки управления и вторая всплывающая форма, которая содержит информацию по текущему контакту. Можно ли это реализовать при помощи базы данных?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Syrex
Дата 19.12.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: 1
Всего: 1



Цитата

Я уже создал базу данных. Подредактировал кодировку PARADOX.  С этим проблем нет.
Программа - лист контактов в главной форме + кнопки управления и вторая всплывающая форма, которая содержит информацию по текущему контакту. Можно ли это реализовать при помощи базы данных?

Легко

Лучше использовать не PARADOX, а ACCESS
PM MAIL ICQ   Вверх
Anark1
Дата 19.12.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



В чем разница между PARADOX и ACCESS?
Можно увидеть алгоритм? Мне не очень понятно как сделать так, чтобы для каждого контаккта отображалась своя инофрмация. То есть, команды для работы с ячейками, строками. столюцами. полями базы данных.  smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Syrex
Дата 20.12.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: 1
Всего: 1



Сейчас сам ищу разницу.
1. Удобнее работать с датами
2. Легче настраивать
3. В Access нет геммороя с BDE

Форму лучше создавать самому (Available), а не хранить х в памяти.
Код

Form2=new TForm2(this);
From2->ShowModal();


Вот только не знаю, надо ли потом делать delete Form2?

Это сообщение отредактировал(а) Syrex - 20.12.2006, 10:32
PM MAIL ICQ   Вверх
Anark1
Дата 20.12.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Что означает ключевое слово THIS в скобках?
З.Ы.
Можно увидеть алгоритм? Мне не очень понятно как сделать так, чтобы для каждого контаккта отображалась своя инофрмация. То есть, команды для работы с ячейками, строками. столюцами. полями базы данных.    

 smile  smile  smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 20.12.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(Syrex @ 20.12.2006,  10:27)
Сейчас сам ищу разницу.
1. Удобнее работать с датами
2. Легче настраивать
3. В Access нет геммороя с BDE

Форму лучше создавать самому (Available), а не хранить х в памяти.
Код

Form2=new TForm2(this);
From2->ShowModal();


Вот только не знаю, надо ли потом делать delete Form2?

Лучше создавать форму, передавая ей в качестве параметра не this, а Application

Использовать delete надо, если в событии формы OnClose параметр CloseAction не устанавливается в значение caFree.

По поводу алгоритма:
Там нет никакого алгоритма! Есть список записей - отображается стандартным контролом, допустим DBGrid. Обрабаотываем двойной щелчок. Считываем текущую запись, на основе ее формируем запрос на выборку необходимой информации из БД и уже отображаем ее во второй форме.
PM MAIL ICQ   Вверх
Anark1
Дата 20.12.2006, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Не  smile сложно прописать тут команды для работы с базой данных?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Syrex
Дата 20.12.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: 1
Всего: 1



В адо используются стандартные команды SQL
PM MAIL ICQ   Вверх
Anark1
Дата 20.12.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Для меня это ничего не меняет. Че, так сложно?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 21.12.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Пример чего?
Например так:
MyQuery->SQL->Text = "SELECT * FROM MyTable";
MyQuery->Open();
...
MyQuery->Close();

Компоненты ADO располагаются на форме (или модуле данных), в них настраивается подключение к БД, там же можно задать операторы SQL, на форме размещаются компоненты доступа к данным и DatabaseControls - и вперед!


PM MAIL ICQ   Вверх
HappyLife
Дата 21.12.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 4
Всего: 8



Кхм.... Может быть лучше с Hello world начать?smile
PM MAIL   Вверх
Syrex
Дата 21.12.2006, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: 1
Всего: 1



я бы сделал так:
Код

ADOQuery->SQL->Text->Clear();
ADOQuery->SQL->Text = "SELECT * FROM MyTable";
ADOQuery->SQL->Active=true;


Код

ADOQuery->SQL->Text->Clear();
ADOQuery->SQL->Text = "INSERT INTO MyTable (Pole1,Pole2,Pole3) values ('name',12.23,:D)
ADOQuery->Parameters->Items[0]->Value=DateToString(Data);
ADOQuery->ExecSQL(); // используется для запросов Insert Delete UPDATE
ADOQuery->SQL->Text->Clear();
ADOQuery->SQL->Text = "SELECT * FROM MyTable";
ADOQuery->SQL->Active=true;

PM MAIL ICQ   Вверх
Anark1
Дата 21.12.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Цитата(HappyLife @ 21.12.2006,  10:17)
Кхм.... Может быть лучше с Hello world начать?smile

Все эти консольные приложения это элементарно. Хорошо зная Турбо Паскаль это не сложно перенести свои знания. В Си.
 Остальным спасибо. будут вопросы - напишу.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Syrex
Дата 21.12.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: 1
Всего: 1



Если что - у мня есть программа работы с БД с помощью ADO
PM MAIL ICQ   Вверх
Anark1
Дата 21.12.2006, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



А обязательно использовать Query?
Например, у меня заполнена форма 2 с данными для первого поля таблицы.
Почему нельзя использовать методы при клик кнопки ОК на форме:
Form1->Table1->Append();
Form1->Table1->Pos();
и т.д.
Только как каждмоу полю строки придать свою информацию.
А если использовать Query то поясните пожалста как правильно настроить свойство SQL?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 21.12.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(Anark1 @  21.12.2006,  15:13 Найти цитируемый пост)
А если использовать Query то поясните пожалста как правильно настроить свойство SQL? 

Свойство SQL - это собственно твой запрос. Почитай для начала описание языка SQL, а пока пользуйся TTable - для изучения пойдет.
PM MAIL ICQ   Вверх
Anark1
Дата 21.12.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



2Anikmar
Я так понимаю, что связь между моим ЛистБоксом и БД осуществляется через Name. То есть первое поле БД и элементы списка.
Так вот каким методом мне прописать каждому полю свою информацию? Через Table.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 21.12.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Надо использовать компоненты с вкладки DataControls
Там есть компоненты, работающие с БД - DBGrid, DBEdit и т.п.
В них есть свойство DataSource и FieldName (в DBGrid - Columns)
Устанавливаешь при помощи этих свойств связь с БД и вперед.

Там же выше предлагали готовый проектик для изучения...

И вообще - все-таки надо бы чего-нибудь прочитать. Например Архангельского.
PM MAIL ICQ   Вверх
Anark1
Дата 21.12.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Архангельского скачал. Насколько я знаю DBGrid рисует таблицу. Мне это не нужно. Возможно установить связь с БД, не создавая её в форме?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 21.12.2006, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата

Возможно установить связь с БД, не создавая её в форме


Кого не создавая? БД? А зачем ее создавать в форме?

DBGrid - ОТОБРАЖАЕТ ТАБЛИЦУ БД Он ее на создает. Если есть готовая таблица - ее можно увидеть, используя DBGrid - он предоставляет возможность передвигаться по записям и редактировать поля таблицы.

Если интересует только 1 запись - можно сделать SELECT только на одну конкретную запись и менять значения полей при помощи одиночных контролов работы с БД - таких как DBEdit.


PM MAIL ICQ   Вверх
Anark1
Дата 21.12.2006, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



То есть пользователь не будет видеть эту таблицу? smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 21.12.2006, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(Anark1 @ 21.12.2006,  19:42)
То есть пользователь не будет видеть эту таблицу? smile

Я говорю таблица в понимании Таблица базы данных. А как ее отобразить на форме - это уже личное дело программиста.
Не нравится DBGrid используй DBControlGrid либо вообще вручную поля показывает в том, что душа пожелает - хоть с TStatusBar  smile 
PM MAIL ICQ   Вверх
Anark1
Дата 21.12.2006, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Оке. Попробую.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
OutlawZ
Дата 29.8.2008, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Зачем что то инициализировать? если нужно что бы просто по нажатию на кнопку вылетала вторая форма то делаем так, есть первый проект, создаем вторую форму как показано ниже:
Код

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h" //Подключаем вторую форму .h второго проекта формы
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->ShowModal(); //Вызываем ее
}


И все работает!!!! 


--------------------
user posted image
user posted image
PM MAIL   Вверх
mrbrooks
Дата 29.8.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



OutlawZ, имхо я думаю что спустя два года проблему уже решили  smile 
PM MAIL   Вверх
OutlawZ
Дата 29.8.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Сорри не посмотрел на дату smile


--------------------
user posted image
user posted image
PM MAIL   Вверх
Goodilla
Дата 11.1.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.10.2007

Репутация: нет
Всего: 1



Цитата(OutlawZ @  29.8.2008,  09:33 Найти цитируемый пост)
Сорри не посмотрел на дату smile 


Зато помогло, спасибо. А то читал весь пост - мало чего получилось... Так сказать основная часть поста не для начинающих.  smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1867 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.