Форум: "Основная";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
ВнизРабота с TStringList Найти похожие ветки
← →
SIW (2003-08-17 19:37) [0]Программеры я новичок в Delfi плиз помогите мне разобраться с TStringList. У меня есть массив строк, который заполняется в программе, мне надо занести все данные из этого массива в TStringList, при этом мне нужен и масив и StringList. Что я только не пробовал, но ни чего не получается. Кусок моей программы выглядит так:
...
allcommands:tstringlist;
commands:array [0..manycomands]of string;
....
procedure tform1.fillcommands;
var
i:byte;
begin
commands[0]:="BGN";
...
commands[16]:="SLP";
allcommands:=tstringlist.Create;
allcommands.clear;
for i:=1 to manycomands do
allcommands.Add(commands[i]);
end;
← →
Marconi (2003-08-17 19:43) [1]for i:= 1 to manycomands do
первый должен быть 0 ! поскольку
commands:array [ 0..manycomands]of string;
а то вылетишь за придел
← →
Anatoly Podgoretsky (2003-08-17 19:43) [2]Ну занесет с commands[1] по manycomands в список, все нормально, если тебе не нужна commands[0] и manycomands <= 16
← →
Marconi (2003-08-17 19:44) [3]может и не вылитешь но придет точно не все =)
← →
Боян Георгиев (2003-08-17 19:45) [4]Ошибка произошла потому что ты не создал инстанцию TStringGrid-a.
В процедуру FormCreate пиши:
AllCommands := TStringList.Create;
A в процедуру FormClose:
AllCommands.Free;
← →
Marconi (2003-08-17 19:47) [5]то Борис:
а это что: allcommands:=tstringlist.Create;
← →
Anatoly Podgoretsky (2003-08-17 20:00) [6]Боян Георгиев (17.08.03 19:45) [4]
Он создал, но в другом месте.
Плохо другое, вот он кинул кусок кода и молчит, не говорит с чем у него проблема.
← →
SIW (2003-08-17 20:13) [7]проблема у меня с тем что TStringList не заполняется, te lfyyst d ytuj yt pfgbcsdf.ncz
← →
SIW (2003-08-17 20:16) [8]т.е. данные в него не записываются...(поправка)
← →
Боян Георгиев (2003-08-17 20:18) [9]да, проблем нет в создании.
Но что это "te lfyyst d ytuj yt pfgbcsdf.ncz"
← →
SIW (2003-08-17 20:21) [10]я поправился : "т.е. данные в него не записываются..."
← →
Боян Георгиев (2003-08-17 20:21) [11]1. Попробуй заменить константу manycomands с числом.
2. Попробуй добавить на конце процедуру строк:
ShowMessage(AllCommands[AllCommands.Count - 1]);
AllCommands.Free;
← →
Anatoly Podgoretsky (2003-08-17 20:23) [12]Тогда ошибка у тебя в другом месте, здесь все в порядке, за исключением того, что тебе сказали про индексы. Разве что allcommands.clear; просто лишняя, но это не ошибка.
← →
Боян Георгиев (2003-08-17 20:24) [13]Компилятор наверно не пишет в лист по-тому что стойности в листе не изпользоватся. Поэтому попробуй:
ShowMessage(AllCommands[AllCommands.Count - 1]);
в конце.
← →
SIW (2003-08-17 20:29) [14]Всем спасибо за помощь. теперь всю прогу перекапывать :((
← →
Anatoly Podgoretsky (2003-08-17 20:51) [15]Боян Георгиев (17.08.03 20:24) [13]
Это сразу ему покажет SLP
Но судя по его последнему сообщению он это уже сделал :-)
← →
VID (2003-08-17 20:59) [16]
Var AllCommands:TStringList;
Commands:array[0..ManyCommands] of string;
{....}
procedure tform1.fillcommands;
var i:byte;
begin
commands[0]:="BGN";
{...}
commands[16]:="SLP";
allcommands:=tstringlist.Create;
try
for i:= 0 to ManyCommands do
allcommands.Add(Commands[i]);
ShowMessage("AllCommands.Count = "+IntToStr(AllCommands.Count));
finally
AllCommands.Free;
end;
end;
если этот код работать не будет, проверь не зависла ли над твоим домом НЛО:)
← →
Боян Георгиев (2003-08-17 21:03) [17]Удалено модератором
← →
Anatoly Podgoretsky (2003-08-17 21:08) [18]VID © (17.08.03 20:59) [16]
Этот код будет работать и с for i:=1 только будут разные результатами
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c