![]() |
|
|
#1
|
|||
|
|||
|
Нужно загрузить список в программу с типом Tlist?
|
|
#2
|
||||
|
||||
|
А в чем проблемы? Загружай!!!
|
|
#3
|
|||
|
|||
|
Я не пойму как, приведите кто нибудь пример плиз
|
|
#4
|
||||
|
||||
|
Куда ты хочешь его загружать ?
Какой компонент ? Или без разницы ? |
|
#5
|
||||
|
||||
|
Код:
procedure TForm1.btLoadClick(Sender: TObject);
var
MyList: TStringList; // список строк
begin
MyList := TStringList.Create;
try
MyList.LoadFromFile('MyFileName');
finally
MyList.Free;
end;
Memo1.Lines.LoadFromFile('MyFileName'); // Memo1.Lines - тоже список строк
end; |
|
#6
|
||||
|
||||
|
так ему TList надо, я когда то record загружал в TList через указатель на тот самый record:
Код:
type TPluginInfo = record InitInfo: string; Handle: integer; end; PPluginInfo = ^TPluginInfo; var list: TList; PluginInfo,test1: PPluginInfo; begin list := TList.Create; New(PluginInfo); PluginInfo.InitInfo := 'test'; PluginInfo.Handle := 123; list.Add(PluginInfo); // list.Count; // - получить кол-во добавленных элементов test1 := List[0]; // - получить 1ый элемент ShowMessage(test1.InitInfo); //обращение к первому элементу из списка end; Последний раз редактировалось Ultras, 28.02.2010 в 01:37. |
|
#7
|
||||
|
||||
|
Цитата:
или сразу после создания списка ссылок можно выбирать? |
|
#8
|
||||
|
||||
|
ну я тут просто показал работу с TList, это была работа с плагинами, создание их списка и обращение к ним через этот список (сократил для примера). Как загружать из файла? ну это уже вопрос к тому, кто создавал тему: что именно загружать надо и какой именно список, и откуда?
Последний раз редактировалось Ultras, 26.02.2010 в 22:14. |
|
#9
|
|||
|
|||
|
Мне нужно загрузить список через OpenDialog, взять первую строку проделать с ней определенные действия потом проделать это со следующей строкой, и так далее
|
|
#10
|
||||
|
||||
|
а, ну тогда смотри 5ый пост от s0Creator (про TStringList).
пример: Код:
var
list: TStringList;
i: integer;
tmp_s: string;
begin
if OpenDialog1.Execute then
begin
list := TStringList.Create;
list.LoadFromFile(OpenDialog1.FileName);
if list.Count = 0 then
begin
MessageBox(Handle,'Список пуст','Ошибка',MB_OK + MB_ICONERROR);
list.Free;
Abort;
end;
// продолжаем, если в списке есть хотя бы одна строка
for i:=0 to list.Count-1 do
begin
tmp_s := list[i] //получаем строку из списка по циклу
// ...
// тут делаем нужные действия с tmp_s или list
// ...
// двигаемся к следующей строке и так, до конца цикла
end;
list.Free;
end;
end;Последний раз редактировалось Ultras, 27.02.2010 в 00:28. |
|
#11
|
|||
|
|||
|
А можно выполнять цикл при нажатии другой кнопки?
|
|
#12
|
||||
|
||||
|
Цитата:
|
|
#13
|
|||
|
|||
|
Процедура нажатия на первую кнопку - (Загрузка файла в программу)
Процедура нажатия на вторую кнопку - (Проведение операций над строками поочередно) |
|
#14
|
||||
|
||||
|
стукни в аську 418018483, там объясню, потом сюда выложу (ибо если здесь объясню, появяцца исчо вопросы, и так до бесконечности)
|
|
#15
|
||||
|
||||
|
ну раз в аське не хотите стучать, возьму и расскажу тут (на самом деле путей решения ваше проблемы очень много, это самый простой):
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
FList: TStringList; // обявляем глобальную переменную для списка (для этого юнита)
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
// тут загружаем файл при нажатии на кнопку Button1
if OpenDialog1.Execute then
begin
Flist := TStringList.Create;
Flist.LoadFromFile(OpenDialog1.FileName);
if Flist.Count = 0 then
begin
MessageBox(Handle,'Список пуст','Ошибка',MB_OK + MB_ICONERROR);
Abort;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FList := TStringList.Create; // создаём список строк
end;
procedure TForm1.Button2Click(Sender: TObject);
{var
j: integer;
tmp_l: string;}
begin
// тут работает со списком при нажатии на Button2
{ for j:=0 to FList.Count-1 do
begin
tmp_l := FList[j]; //получаем строку из списка по циклу
// тут делаем нужные действия с tmp_s или list
end;}
ShowMessage(FList[0]); //получаем первую строку
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FList.Free; // освобождаем память от списка при закритии программы
end;
end.Последний раз редактировалось Ultras, 28.02.2010 в 19:12. |