Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
ВнизComboBox и Object Найти похожие ветки
← →
Leonid (2007-12-07 20:32) [0]Вот добавляю в
ComboBox1.Items.AddObject(Str,tobject(Id));
соответсвенно строку и ID, потом считываю из БДADODataSet1.FieldByName("Id").AsInteger]
номер, но никак не пойму как выбрать из ComboBox1 элемент с этим ID, помогите разобраться?
← →
Anatoly Podgoretsky © (2007-12-07 20:46) [1]> Leonid (07.12.2007 20:32:00) [0]
Непонятно, что именно не понятно?
Может тебе нужно IndexOf, или IndexOfName, или IndexOfObject, или приведение.
← →
Leonid (2007-12-07 20:53) [2]Нужно получить ItemIndex в котором
храниться ADODataSet1.FieldByName("Id").AsInteger]
У меня есть список стран и городов из базы я выбираю город и хочу чтобы второй ComboBox встал на пункт с ID страны который яADODataSet1.FieldByName("Id").AsInteger]
взял из БД
← →
Anatoly Podgoretsky © (2007-12-07 20:56) [3]> Leonid (07.12.2007 20:53:02) [2]
Тогда IndexOfObject
← →
Leonid (2007-12-07 20:57) [4]А можно пример
ComboBox1.IndexOfObject(ADODataSet1.FieldByName("Id").AsInteger]) ? Так?
← →
{RASkov} © (2007-12-07 20:58) [5]> [4] Leonid (07.12.07 20:53)
Ну наверное как-то так:
ComboBox1.ItemIndex:=ComboBox2.Items.IndexOfObject(TObject(ADODataSet1.FieldByNa me("Id").AsInteger));
← →
Правильный_Вася (2007-12-07 20:58) [6]+ ComboBox.SelectedIndex
← →
Anatoly Podgoretsky © (2007-12-07 20:59) [7]> Leonid (07.12.2007 20:57:04) [4]
Сделай приведение Ид до TObject
← →
Leonid (2007-12-07 21:00) [8]А окей, спасибо!
← →
Leonid (2007-12-07 21:02) [9]Блин
ComboBox2.Items.IndexOfObject(ComboBox2.Items.Objects[ADODataSet1.FieldByName("& #200;Ä_ÎÒÄÅË").AsInteger]);
все равно ошибку выдает (
← →
Leonid (2007-12-07 21:03) [10]Вот так
ComboBox2.Items.IndexOfObject(ComboBox2.Items.Objects[ADODataSet1.FieldByName("I D").AsInteger]);
← →
{RASkov} © (2007-12-07 21:06) [11]> [9, 10] Leonid (07.12.07 21:02)
Сам-то понял, что наворотил???
Твоя строка выглядит такЧто-то:=ADODataSet1.FieldByName("I D").AsInteger;
← →
Правильный_Вася (2007-12-07 21:08) [12]
> все равно ошибку выдает (
а справку почитать по используемым свойствам - никак?
← →
Leonid (2007-12-07 21:12) [13]Шикарно ComboBox.SelectedIndex - это выбранный в данный момент ID и что мне это дает??? Ничего!
← →
{RASkov} © (2007-12-07 21:13) [14]> [9, 10, 13] Leonid (07.12.07 21:02)
> все равно ошибку выдает (
А ошибку выдает List Index of Bounds, так?
← →
Leonid (2007-12-07 21:13) [15]Да эту ошибка
Блин я и так пробовал
ComboBox2.Items.IndexOfObject(TObject(ADODataSet1.FieldByName("ID").AsInteger)) Все равно не тот ID что у селекта
← →
{RASkov} © (2007-12-07 21:17) [16]> [15] Leonid (07.12.07 21:13)
По крайней мере вот этоComboBox2.Items.IndexOfObject(TObject(ADODataSet1.FieldByName("ID").AsInte ger))
хоть синтаксически верно написано.... а что же у тебя там не получается....
Ты либо подробнее рассказывай, либо подкрепляй вопросы проблемным кодом....
← →
Правильный_Вася (2007-12-07 21:19) [17]у какого селекта?
тебе нужно найти в списке то, что взято из базы
или найти в базе то, что выбрано в списке?
← →
Leonid (2007-12-07 21:22) [18]Я делаю
ADODataSet1.CommandText := "SELECT ID FROM table";
ADODataSet1.Open;
ID := ADODataSet1.FieldByName("ID").AsInteger);
У меня есть уже заполенный ComboBox, его я заполял так ComboBox4.Items.AddObject(Str,tobject(Id));
Например:
Москва
Питер
Лондон
Допустим у меня ID Мосвы в базе 33, в ComboBox4 ItemIndex Москвы 0, мне нужно что бы я по полученному ID из базы смог встать в ComboBox4 на правильную позицию.
← →
Leonid (2007-12-07 21:23) [19]Блин ну я на PHP программист, за Delphi лет 5-ть не садился уже, мне сложно все тонкости вспомнить =(((
← →
{RASkov} © (2007-12-07 22:39) [20]> [19] Leonid (07.12.07 21:23)
Сумеешь разобраться вот в этом:
DFM:object Form1: TForm1
Left = 192
Top = 114
Width = 239
Height = 207
Caption = "Form1"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object ComboBox1: TComboBox
Left = 4
Top = 144
Width = 145
Height = 21
ItemHeight = 13
TabOrder = 0
end
object StringGrid1: TStringGrid
Left = 4
Top = 8
Width = 213
Height = 133
ColCount = 3
TabOrder = 1
end
end
PAS:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var N: Integer;
begin
StringGrid1.Cells[1,1]:="Москва";
StringGrid1.Cells[1,2]:="Киев";
StringGrid1.Cells[1,3]:="Вольск";
StringGrid1.Cells[1,4]:="Стамбул";
StringGrid1.Cells[2,1]:="33";
StringGrid1.Cells[2,2]:="112";
StringGrid1.Cells[2,3]:="97512";
StringGrid1.Cells[2,4]:="456";
for N:=1 to 4 do
ComboBox1.Items.AddObject(StringGrid1.Cells[1, N], TObject(StrToInt(StringGrid1.Cells[2, N])));
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
ComboBox1.ItemIndex:=ComboBox1.Items.IndexOfObject(TObject(StrToInt(StringGrid1. Cells[2, ARow])));
end;
end.
Или опять не то? Только не говори, что у тебя БД, а здесь обычный стринггрид....
← →
Леон (2007-12-10 10:44) [21]
> Вот добавляю в ComboBox1.Items.AddObject(Str,tobject(Id));
> соответсвенно строку и ID, потом считываю из БД ADODataSet1.
> FieldByName("Id").AsInteger] номер, но никак не пойму как
> выбрать из ComboBox1 элемент с этим ID, помогите разобраться?
>
Я сталкивался с подобной проблемой... может этот путь Вам поможет.
1. использовал класс-обёртку над integer вродеtype
TMyInt = class (TObject)
value: integer;
constructor Create( _value: integer);
end;
тогда заполнение ComboBox:...AddObject(Str, TMyInt.Create(ID) );
2. поиск _нужной_ строки в ComboBox можно делать перебором в цикле всех строк и выбор той, у которой ID = искомому IDif (ComboBox.Objects[ComboBox.ItemIndex] as TMyInt).Value=ID then...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.006 c