![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать не сортированный TStringList или TStrings [D5, D6, Win95/98, WinXP]
Галинка © (2004-10-12 14:12:00)Вот в чем собственно проблема.
procedure TMDBSelectDlg.ListBox1Click(Sender: TObject);
var
i,k:integer;
FieldsNames:TStringList;
begin
k:=0;
FieldsNames:=TStringList.Create;
for i:=0 to ListBox1.Items.Count-1 do
If ListBox1.Selected[i] then
begin
inc(k);
SetLength(TablesNames,k);
TablesNames[k-1]:=ListBox1.Items.Strings[i];
end;
ListBox2.Clear;
for i:=0 to k-1 do
begin
FieldsNames.CaseSensitive:=false;
FieldsNames.Sorted:=true;
Form1.Connection.GetFieldNames(TablesNames[i],FieldsNames);
ListBox2.Items.AddStrings(FieldsNames);
end;
FieldsNames.Free;
end;
Так вот эта конструкция выдает поля в отсортированном виде, а мне надо так как они в таблицах идут. Это принципиально. Потому как потом ДБГриды я связываю по ходу столбцов.
Заранее спасибо всем, кто ответит...)))
Галинка (2004-10-12 15:11:00) [1]Для begin...end:
FieldsNames:=TStringList.Create;
FieldsNames.CaseSensitive:=false;
FieldsNames.Sorted:=false;
&
ListBox2.Sorted:=false;
ListBox2.Items.AddStrings(FieldsNames);
begin...end (2004-10-12 15:05:00) [2]
> [11] Галинка © (12.10.04 14:49)
> но ListBox2.Sorted:=false;
Ну и что? Ты думаешь, если отсортированный список загнать в ListBox, у которого Sorted = False, то элементы случайным образом будут располагаться?
Галинка (2004-10-12 15:03:00) [3]Для Ega23: ADOConnection.GetFieldNames(TablesNames[i],FieldsNames);
Ega23 (2004-10-12 14:57:00) [4]А если не Тэйбл, то тогда Fields.Count чего?
Гм. По-моему ты не понимаешь, что первично, а что - вторично.
У TDataSet, конечно же, у кого же ещё?
И, кстати, TADOConnection - где ты там всё это узнаёшь?
Галинка (2004-10-12 14:49:00) [5]Для begin...end: но ListBox2.Sorted:=false;
Для Ega23: Во-первых, я через АДО работаю. Там через коннекшн все это узнается... А если не Тэйбл, то тогда Fields.Count чего?
Ega23 (2004-10-12 14:43:00) [6]И, кстати, про TTable я ничего не говорил. Вообще, ИМХО, вредный компонент. Никогда не использую.
Ega23 (2004-10-12 14:42:00) [7]У меня имена полей узнаются, теоретически, до того как я узнаю имена нужных таблиц, так, что через Тэйблы связываться, слишком сложно, по-моему...
Это, пардон, как?
begin...end (2004-10-12 14:41:00) [8]Наверное, в ListBox1 уже отсортировано ;-)
Галинка (2004-10-12 14:39:00) [9]procedure TMDBSelectDlg.ListBox1Click(Sender: TObject);
var
i,k:integer;
FieldsNames:TStringList;
begin
k:=0;
FieldsNames:=TStringList.Create;
FieldsNames.CaseSensitive:=false;
FieldsNames.Sorted:=false;
for i:=0 to ListBox1.Items.Count-1 do
If ListBox1.Selected[i] then
begin
inc(k);
SetLength(TablesNames,k);
TablesNames[k-1]:=ListBox1.Items.Strings[i];
end;
ListBox2.Clear;
for i:=0 to k-1 do
begin
FieldsNames.CaseSensitive:=false;
Form1.Connection.GetFieldNames(TablesNames[i],FieldsNames);
ListBox2.Sorted:=false;
ListBox2.Items.AddStrings(FieldsNames);
end;
FieldsNames.Free;
end;
Что еще не так? А Все равно сортирует...
Галинка (2004-10-12 14:37:00) [10]Для Ega23:
У меня имена полей узнаются, теоретически, до того как я узнаю имена нужных таблиц, так, что через Тэйблы связываться, слишком сложно, по-моему...
Ega23 (2004-10-12 14:25:00) [11]for i:=0 to Fiels.Count-1 do
Strings.add(Fields[i].FieldName) ?
=SOFT= (2004-10-12 14:25:00) [12]Попробуй так FieldsNames.Sorted:=false; говорят помогает :)
Галинка (2004-10-12 14:24:00) [13]Убрала я FieldsNames.Sorted:=true;, все равно сортированный...
Amoeba (2004-10-12 14:16:00) [14]А зачем в коде нужно вот это?
FieldsNames.Sorted:=true;
Ega23 (2004-10-12 14:15:00) [15]FieldsNames.Sorted:=true;
Тебе это о чём-нибудь говорит???