|
Вопрос # 5 494/ вопрос открыт / |
|
Здравствуйте, эксперты!
Я хочу узнать как можно создать список, добавить новый элемент к нему и удалить элемент.
 |
Вопрос задал: Aristotel (статус: Посетитель)
Вопрос отправлен: 12 июля 2011, 11:03
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Gooddy
Здравствуйте, Aristotel!
Отвечаю на вопрос так, как написано в условии. Т.к. небыло пояснений буду считать, что нужен список строк, например:
1. "Вася"
2. "Петя"
3. "Григорий"
Тут есть два варианта - использовать TStrings, или TList. TList помощнеее, но сложнее для пономания и использования, так что приведу пример с TStringList.
См. приложение.
 |
Ответ отправил: Gooddy (статус: 3-ий класс)
Время отправки: 12 июля 2011, 14:23
Оценка за ответ: 4
Комментарий к оценке: А можно как-то найти заданный элемент в списке и удалить его?
|
Мини-форум вопроса
Всего сообщений: 100; последнее сообщение — 15 июля 2011, 14:41; участников в обсуждении: 7.
Страницы: [« Предыдущая] [1] [2] [3] [4] [5] [Следующая »]
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 11:05 [#61]:
"Метод Insert
Вставляет строку в заданную индексом позицию. Позиция 0 вызовет вставку в начало."
Чисти код! Чисти код! Чисти код!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 11:13 [#62]:
А как позицию задать?
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 11:25 [#63]:
Insert( 0, 'Вася' );
Чисти код! Чисти код! Чисти код!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 11:31 [#64]:
Ещё вопрос-где писать List := TStringList.Create();
|
|
min@y™ (статус: Доктор наук), 13 июля 2011, 11:34 [#65]:
Цитата (Aristotel):
Ещё вопрос-где писать List := TStringList.Create();
Так и хочется сказать "на заборе". Но отвечу - там, где тебе нужно создать объект, там и вызывай его конструктор.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 11:38 [#66]:
min@y™: =(
Чисти код! Чисти код! Чисти код!
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 11:44 [#67]:
Неужто всё?
Чисти код! Чисти код! Чисти код!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 11:48 [#68]:
Что то я не могу составить программу из этого всего
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 11:49 [#69]:
*Помогаю телепатически починить неизвестную мне программу*
Чисти код! Чисти код! Чисти код!
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 11:49 [#70]:
Код в студию!
Чисти код! Чисти код! Чисти код!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 11:52 [#71]:
Ща подожди
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 11:58 [#72]:
Ну что там?
Чисти код! Чисти код! Чисти код!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 12:00 [#73]:
Ты сильно занят у меня щас обеденный перерыв?
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 12:01 [#74]:
Буду через полчаса
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 12:24 [#75]:
Я не занят ближайшие 24 часа точно и возможно несколько больше.
Чисти код! Чисти код! Чисти код!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 12:34 [#76]:
Блин не могу даже запустить прогу
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 12:38 [#77]:
Вот код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Button2: TButton;
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
List: TStringList;
i: Integer;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
List := TStringList.Create();
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
List.Add( 'Edit1.Text' );
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
i := List.IndexOf( 'Вася' );
List.Delete( i );
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 12:48 [#78]:
procedure TForm1.Edit1Change(Sender: TObject);
begin
List := TStringList.Create();
end;
При каждом изменении Edit создаётся новый список. Так и надо?
Чисти код! Чисти код! Чисти код!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 12:54 [#79]:
Нет ну в какой процедуре создавать список?
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 12:57 [#80]:
List := TStringList.Create();
Нужно поместить в САМОЕ НАЧАЛО программы. Не в самое высокое место, а то, что ПРОИСХОДИТ РАНЬШЕ.
В данной программе раньше всего вызывается событие FormCreate.
И кстати, надо ещё и удалить список в конце. Я об этом писал.
Пока конечно можно не удалять, раз даже элементарные вещи пока недоступны.
List.Add( 'Edit1.Text' ); <-- это вообще откуда?
List.Add( Edit1.Text ); <-- подразумевалось скорее всего это
После этих изменений всё будет нормально.
Чисти код! Чисти код! Чисти код!
|
Страницы: [« Предыдущая] [1] [2] [3] [4] [5] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|