Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Текстовое поле с кнопкой для копирования файла, Нужно скопировать файл в папку, а путь в 
:(
    Опции темы
-=Ustas=-
Дата 21.1.2005, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Мое почтение всем!!!
Я сразу извиняюсь, и прошу не ругать, за этот ламерский вопрос. Я в Delph-ях только начал разбираться. Помогите, пожалуйста в моей проблеме, ее суть такова:
Есть БД - MSAccess. Есть форма для ввода данных в эту БД, а последнюю строку в этой форме незнаю как реализовать, типа:

------------------ поле DBEdit
------------------ поле DBEdit
------------------ поле DBEdit
------------------ поле DBEdit
------------------ поле DBEdit кнопка "Обзор" - последняя строка
кнопка "Внести"

Вот. Т.е. мне нужно чтобы было текстовое поле, а рядом с ним кнопка "Обзор",
наподобие:
--Resize_Images_Alt_Text--
которая будет вызывать окошко "Открытие фала", следовательно, после выбора файла, его полный путь дожен появиться в этом самом текстовом поле. Затем как нажимается кнопка "Внести", все данные из текстовых полей, естественно, отправляются в БД, а этот файл копируется в определенную директорию.
Сразу хочу сказать (если это важно), вывод базы делаю с помощью ADO и DBGrid.
Плиз, помогите, только какой-нибудь легкий и понятный алгоритм (для начинающего).
smile или же киньте линк, где можно прочитать по данной теме.
Заранее всем благодарен, спасибо!

Это сообщение отредактировал(а) Ustas_007 - 21.1.2005, 22:36


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Дрюча
Дата 21.1.2005, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 20.1.2005
Где: Delphi & Pasc al

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



А про что вопрос? Про диалог? Тогда во вкладку Dialogs, а там openDialog или SaveDialog, а про это уже есть на этом форуме!!!
PM   Вверх
rMaveric
Дата 21.1.2005, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так есть несколько возможных вариантов...

Но все это настолько стандартно что я могу порекомендовать просто купить самоучебник по Делфи и начать с него... Сразу станет проще.... Начни с глав "Диалоги", и "Работа с БД"... для твоего приложения этого хватит....


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 22.1.2005, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



А может ссылку на какую-нибудь книгу дадите, если не хотите пояснить "здесь и сейчас"?
Буду вечно благодарен!!!
Спасибо!!!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Akella
Дата 22.1.2005, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Кидаешь на форму TOpenDialog с закладки Dialogs. В событии нажатия на кнопку вставь это:
Код

 if OpenDialog1.Execute then
   Edit1.Text:=OpenDialog1.FileName;

PM MAIL   Вверх
-=Ustas=-
Дата 24.1.2005, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



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

if OpenDialog1.Execute then
DBEdit1.Text:=OpenDialog1.FileName;

Подскажите пожалуйста!
Спасибо.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Cashey
Дата 24.1.2005, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


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

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



Ustas_007 извини, а зачем ты для этой цели используешь DBEdit? Ему же источник данных требуется, а он его не находит. Переделый на обычный ТEdit.


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
-=Ustas=-
Дата 24.1.2005, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Да нет уж, это я извиняюсь за подобные вопросы! Я просто только начал с Delph-ями общаться.
А как же мне тогда TEdit связать с тем полем БД, куде мне надо помещать этот путь?



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Cashey
Дата 24.1.2005, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


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

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



Цитата(Ustas_007 @ 24.1.2005, 23:07)
А как же мне тогда TEdit связать с тем полем БД, куде мне надо помещать этот путь?

Например так:
Код

DataModule1.Table1.FieldByName('Path').AsString := edit1.Text;




--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
-=Ustas=-
Дата 25.1.2005, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Спасибо за советы, нормально все получилось, но..., но это при добавлении записи.
Т.е., при добавлении у меня идет следующая форма:
...несколько полей DBEdit для текста, ниже одно поле Edit с кнопкой обзор для пути. На нажатие "Добавить":
Код

if DataModule1.ADOMainTable.Modified then
   begin
        DataModule1.ADOMainTablePath_File.AsString:=EditPath.Text;
        DataModule1.ADOMainTable.Post;
        Close;
   end;

Это все работает нормально, а когда у меня вызывается окно редактирования, (на событие OnActivate сделал EditPath.Text:=DataModule1.ADOMainTablePath_File.AsString;), то после изменения пути у меня выскакивает ошибка типа "Project OISTDb.exe raised class EDataBaseError with message 'ADOMainTable: Dataset not in edit or insert mode'. Process stoped. Use Step or Run to continue.".
Код на нажатие кнопки "Сохранить" у меня такой:
Код

         if DataModule1.ADOMainTable.Modified then
               begin
                   DataModule1.ADOMainTablePath_File.AsString:=EditPath.Text;
                   DataModule1.ADOMainTable.Post;
                   DataModule1.ADOMainTable.Refresh;
                   Close;
               end
           else
               DataModule1.ADOMainTablePath_File.AsString:=EditPath.Text;

Первый блок здесь работает нормально, т.е. если в DBEdit-ах были какие нибудь изменения, то они и путь из Edit-а сохраняется, а если изменен был только путь, то выскакивает вышеописанная ошибка.
Подскажите, что я не так делаю, и вообще правильно ли я делаю.
P.S. Может и не в тему, но все же, как сделать так чтоб у программы в панели задач отображалось Caption главной формы? У меня отображается только имя exe-шника!
Заранее благодарен. Спасибо!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Akella
Дата 25.1.2005, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(Ustas_007 @ 25.1.2005, 15:19)
Это все работает нормально, а когда у меня вызывается окно редактирования, (на событие OnActivate сделал EditPath.Text:=DataModule1.ADOMainTablePath_File.AsString;), то после изменения пути у меня выскакивает ошибка типа "Project OISTDb.exe raised class EDataBaseError with message 'ADOMainTable: Dataset not in edit or insert mode'. Process stoped. Use Step or Run to continue.".

Как ты вызываешь окно редактирования? Код в студию, как говорит Vit.
В момент открытия формы ты пытаешься присвоить значение полю. Но таблица не находиться в режиме редактирования. Смотри также все события, происходящик в момент создания или показа (прорировки), или активации формы
Добавлено @ 15:47
а как ты редактируешь таблицу, в смысле где строка с Table1.Edit или еще что-то в этом роде.
PM MAIL   Вверх
-=Ustas=-
Дата 25.1.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



У меня на нажатие кнопки "Редактировать", на главной форме стоит:

EditForm.ShowModal;

А для отображения данных у меня используется DBGrid, и поля в окне редактирования DBEdit-ы, за исключением поля для пути файлов. Эти DBEdit-ы связаны с DBGrid и редактируют поля автоматически.
Я думаю, правильно ответил на Ваш вопрос, если нет, то поправьте.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
-=Ustas=-
Дата 25.1.2005, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



smile Упс, всё, сам допер! Надо было перед записью поставить таблицу в режим записи "DataModule1.ADOMainTable.Edit ".
Спасибо всем за помощь!!!
P.S. Ну а все-таки, как сделать так чтоб у программы в панели задач отображалось Caption.Text главной формы? У меня отображается только имя exe-шника!


Это сообщение отредактировал(а) Ustas_007 - 25.1.2005, 23:51


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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