Za DBComboBox v Delphi ....

9 отговора 1 прегледа
#1

Za DBComboBox v Delphi ....

Opitvam se da pokava pole ot tablica w DBComboBox, no ne moga da se sptawq s nastroikite na Item. Iskam s tova menu da se dviva w tablicata. (Nastroil sym Table i DataSourse) no wse mi pokazwa samo pyrwiq red. Pomognete ...

Отговор
в отговор на oldmen #2

Re: Za DBComboBox v Delphi ....

Не ми се вярва да стане с DbComboBox но може да стане с ComboBox (върши същата работа без главоболия).Прилагам ти един пример. Използвал съм DBDEMOS и таблицата ANIMALS. ComboBox - а е свързан с полето NAME

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, DBCtrls, Grids, DBGrids, Db, DBTables;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
DBGrid1: TDBGrid;
Table1NAME: TStringField;
Table1SIZE: TSmallintField;
Table1WEIGHT: TSmallintField;
Table1AREA: TStringField;
Table1BMP: TBlobField;
ComboBox1: TComboBox;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure Table1AfterPost(DataSet: TDataSet);
private
{ Private declarations }
procedure AddCombo;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.AddCombo;
var
TekBookMark:TBookMarkStr;
begin
TekBookMark:=Table1.Bookmark;
ComboBox1.Items.Clear;
Table1.DisableControls;
try
Table1.First;
while not Table1.Eof do
begin
ComboBox1.Items.Add(Table1Name.Value);
Table1.Next;
end;
finally
Table1.EnableControls;
end;
Table1.BookMark:=TekBookMark;
ComboBox1.Text:=Table1Name.Value;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
AddCombo;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Table1.Locate(
'Name',
ComboBox1.Items.Strings[ComboBox1.ItemIndex],[]);
end;


procedure TForm1.Table1AfterPost(DataSet: TDataSet);
begin
AddCombo;
end;

end.

Отговор
в отговор на oldmen #3

Изяснявам ...

А бе 4есно не разбрах какво то4но искаш да полу4иш (май не е това за което се използва DBComboBox).
Ако прегледаш следващия път малко help-a ще видиш за какво то4но се използва DBComboBox- това е падаща кутия с "неща" С КОИТО СЕ УСТАНОВЯВА ПОЛЕ ОТ ТАБЛИЦАТА СВЪРЗАНА С DBComboBox с нея не можеш да се движиш в таблицата.
Ако зададеш по ясно въпроса ще мога да ти отговоря.
Предполагам, 4е искаш да направиш следното - в една (забележи разликата DВ го няма ;-) ) ComboBox - да имаш по едно поле съотвестващо на всеки запис на таблицата и като го избереш (от кутията ) таблицата да се позицонира на съответния запис (примерно за редакция на избран запис) - това е едно от предположенията.
Имам и друго предположение ама то касае един друг компонент DBLookupComboBox - и за сега няма да те обърквам с него .

Между другото - ще ти е по-полезно да се пребориш с help -а на Delphi - не винаги ще имаш възможността да питаш - да не говорим 4е едва ли винаги ще полу4аваш правилни отговори (такива каквито ти трябват) ако не можеш да дефинираш проблема си правилно.



Отговор
в отговор на PhantomAS #4

Re: Изяснявам ...

Съгласен съм с теб, че въпроса не беше формулиран много точно.
Искам да получа точно това което изясняваш ти.
Тогава каква е разликата между ComboBox i DBComboBox, ако можеш да виждаш само това което поставиш в тях( Item) ?
Опитах и с DBLookupBox, но никъде в хелпа не дават поне един пример в сорс

Отговор
в отговор на oldmen #5

Допълнение

Както казах двата компонента DBLookUpBox, DBCOmboBox са за въвеждане на информация в поле от таблица. Не се бъркай. И още нещо в help -а няма да намериш много примери - по-добре разгледай примерите от Delphi - те са добро на4ало, макар в тях да няма то4но това което ти трябва в момента. Виж и се опитай да пуснеш примера от другия отговор на твоя въпрос. То е то4но което ти трябва - само трябва да го адаптираш за твоите нужди. Освен това ако караш само на стандартните компоненти - има някои "дупки" които те не могат да запушат - преглеждай редовно сайтовете с компоненти - има много неща (даже и сорс) които могат да ти бъдат полезни.
Ако оставиш е-mail ще ти пратя компонент (ама ако не си инсталирал досега компонент в Delphi - доста ще се "узориш" първия път - особено ако си с Д5).



Отговор
в отговор на PhantomAS #6

Re:

e-mail: [email protected]
Занимавам се с Delphi от скоро, тъй нато не съм убеден, че в България с писането на софтуер можеш да си изкараш хляба...
Работил съм доста по-дълго време със база данни и управлението им, но под ДОС. Изглежда, че съм надценил възможностите на Delphi за работа с база данни. Поне за момента съм доста разочарован...

Отговор
в отговор на oldmen #7

Re:

Разочарован?
А Вие какво очаквахте?

Отговор
в отговор на oldmen #8

Ok - proweri si postata (read inside)

Ami mnogo interesno moze bi prosto e na4in na mislene - ne moga da go precenia dobre zastoto az pak nikoga ne sam rabotil s bazi danni pod DOS. Ili po to4no sam si pisheh DB enginite stoto imah dosta problemi.
Ne se ot4ajwaj - razberesh li principa wednuz e mnogo prosto. I razgledaj OSNOWNO primerite wklu4eni w Delphi - te dawat wsi4ki osnowni poznania.

Sega ste ti pratia komponenta - i ako nameria malko wreme utre ste ti pratia i primer za izpolzwaneto mu.
Derzaj!
------------------


Отговор
в отговор на oldmen #9

Re: Za DBComboBox v Delphi ....

Parwo "napalni" DBCombobox-a s additem i togawa. Ina4e polzwaj DBLokoopCombo, toj se palni sam

Отговор
в отговор на oldmen #10

Вж. това дали ще ти помогне

TDBViewCombo - it's small component for browsing DataSet. Component inherited from TComboBox. It assigned with DataSet via DataSource and can browsing one field in DataSet. You just have to set DataField and DataSource property. When you choosing item in drop down list of DBViewCombo the according record in DataSet is selected.
[линк]

Отговор