Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.07.2012, 08:25
Sura Sura вне форума
Прохожий
 
Регистрация: 28.06.2012
Сообщения: 3
Репутация: 10
По умолчанию DBComboBox и его свойства

Запускаю проект, программно добавляю строки в DBComboBox. Когда закрываю и заново запускаю проект содержимое DBComboBox становится пустым, все что я добавлял до этого не сохранилось. Как сделать что бы при каждом запуске программы содержимое DBComboBox оставалось на месте???
Ответить с цитированием
  #2  
Старый 02.07.2012, 09:26
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

после Alt+F12 свойство Items.Strings в .dfm содержит значения?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 02.07.2012, 14:01
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Цитата:
программно добавляю строки в DBComboBox.
кодик добавления покажи
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #4  
Старый 02.07.2012, 14:02
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Сделать не DBComboBox, а DBLookupComboBox, и использовать для него отдельную таблицу.
Ответить с цитированием
  #5  
Старый 02.07.2012, 14:37
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Почему такие сложности? Я бы просто получил датасет и наполнил бы из него самый обычный комбобокс.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 03.07.2012, 08:42
Sura Sura вне форума
Прохожий
 
Регистрация: 28.06.2012
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yurk@
кодик добавления покажи


procedure TForm2.BitBtn1Click(Sender: TObject);
Var fs: String;
n,flag: integer;
begin
flag:=0;
Form1.ADOQuery1.Post;
fs:=Form2.DBEdit4.Text;
for n:=0 to Form1.DBComboBox1.Items.Count do
begin
if fs=Form1.DBComboBox1.Items[n]
then
flag:=1;
end;
if flag=0
then form1.DBComboBox1.Items.Add(fs);
Close;
end;
Ответить с цитированием
  #7  
Старый 03.07.2012, 08:44
Sura Sura вне форума
Прохожий
 
Регистрация: 28.06.2012
Сообщения: 3
Репутация: 10
По умолчанию

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, DBCtrls;

type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBComboBox1: TDBComboBox;
ComboBox1: TComboBox;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure DBComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);

begin
Form2.Show;

AdoQuery1.Insert;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
AdoQuery1.Delete;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Form2.Show;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
DBGrid1.Columns[0].Visible:=False;
DBGrid1.Columns[4].Title.Caption:= 'Наименование';
end;

procedure TForm1.DBComboBox1Change(Sender: TObject);
Var help1, help2: String;
begin
help1:='''%'+unit1.Form1.DBComboBox1.Text+'%''';
help2:=QuotedStr(help1);
with unit1.Form1.ADOQuery1 do
begin
Close;
SQl.Clear;
SQL.Add('SELECT * FROM Оргтехника WHERE Nomer like' +help2);
ADOQuery1.Active:=true;
Open;
end;
DBGrid1.Columns[0].Visible:=False;
end;

end.
Ответить с цитированием
  #8  
Старый 03.07.2012, 09:59
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Sura
...
Form1.ADOQuery1.Post;
...
это к чему?

да и чего, собственно, данные должны сохраняться если ты их заполняешь каждый раз в онлайне с Edit и при этом никуда не сохраняешь?
коль на то уже пошло:
1. создай таблицу для твоих будущих значений
2. ДБКомбоБокс замени на ДБЛукапКомбоБокс и привяжи его к этой таблице
3. при проверке наличия значения в случае его отсутствия добавляй новойе значение в эту таблицу и переоткрывай ДатаСет подвязанный к ней
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter