Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];
ВнизКак сделать не сортированный TStringList или TStrings Найти похожие ветки
← →
Галинка © (2004-10-12 14:12) [0]Вот в чем собственно проблема.
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;
Так вот эта конструкция выдает поля в отсортированном виде, а мне надо так как они в таблицах идут. Это принципиально. Потому как потом ДБГриды я связываю по ходу столбцов.
Заранее спасибо всем, кто ответит...)))
← →
Ega23 © (2004-10-12 14:15) [1]FieldsNames.Sorted:=true;
Тебе это о чём-нибудь говорит???
← →
Amoeba © (2004-10-12 14:16) [2]А зачем в коде нужно вот это?
FieldsNames.Sorted:=true;
← →
Галинка © (2004-10-12 14:24) [3]Убрала я FieldsNames.Sorted:=true;, все равно сортированный...
← →
Ega23 © (2004-10-12 14:25) [4]for i:=0 to Fiels.Count-1 do
Strings.add(Fields[i].FieldName) ?
← →
=SOFT= (2004-10-12 14:25) [5]Попробуй так FieldsNames.Sorted:=false; говорят помогает :)
← →
Галинка © (2004-10-12 14:37) [6]Для Ega23:
У меня имена полей узнаются, теоретически, до того как я узнаю имена нужных таблиц, так, что через Тэйблы связываться, слишком сложно, по-моему...
← →
Галинка © (2004-10-12 14:39) [7]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;
Что еще не так? А Все равно сортирует...
← →
begin...end © (2004-10-12 14:41) [8]Наверное, в ListBox1 уже отсортировано ;-)
← →
Ega23 © (2004-10-12 14:42) [9]У меня имена полей узнаются, теоретически, до того как я узнаю имена нужных таблиц, так, что через Тэйблы связываться, слишком сложно, по-моему...
Это, пардон, как?
← →
Ega23 © (2004-10-12 14:43) [10]И, кстати, про TTable я ничего не говорил. Вообще, ИМХО, вредный компонент. Никогда не использую.
← →
Галинка © (2004-10-12 14:49) [11]Для begin...end: но ListBox2.Sorted:=false;
Для Ega23: Во-первых, я через АДО работаю. Там через коннекшн все это узнается... А если не Тэйбл, то тогда Fields.Count чего?
← →
Ega23 © (2004-10-12 14:57) [12]А если не Тэйбл, то тогда Fields.Count чего?
Гм. По-моему ты не понимаешь, что первично, а что - вторично.
У TDataSet, конечно же, у кого же ещё?
И, кстати, TADOConnection - где ты там всё это узнаёшь?
← →
Галинка © (2004-10-12 15:03) [13]Для Ega23: ADOConnection.GetFieldNames(TablesNames[i],FieldsNames);
← →
begin...end © (2004-10-12 15:05) [14]
> [11] Галинка © (12.10.04 14:49)
> но ListBox2.Sorted:=false;
Ну и что? Ты думаешь, если отсортированный список загнать в ListBox, у которого Sorted = False, то элементы случайным образом будут располагаться?
← →
Галинка © (2004-10-12 15:11) [15]Для begin...end:
FieldsNames:=TStringList.Create;
FieldsNames.CaseSensitive:=false;
FieldsNames.Sorted:=false;
&ListBox2.Sorted:=false;
ListBox2.Items.AddStrings(FieldsNames);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c