Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Хранение второго значения в ListBox. [D7, XP]


Страницы:   1 2 3 4

allucard ©   (2007-04-12 11:27:00) 

Доброго дня.

Есть список пользователей(ListBox), у каждого пользователя есть свой пароль а также время регистрации, эти данные можно хранить как то в этом-же ListBox?
Или обязательно база данных?
Спасиб за варианты.


{RASkov}   (2007-04-16 12:34:00) [1]

> [79] Сергей М. ©   (16.04.07 12:16)

Ясно. Спасибо.


Сергей М.   (2007-04-16 12:16:00) [2]


> {RASkov}   (16.04.07 12:14) [78]



> чем лучше TreeView?


Тем что там уже все "запихнуто".


{RASkov}   (2007-04-16 12:14:00) [3]

> [76] Сергей М. ©   (16.04.07 12:11)

Сорри... не успел, я вплотную незнаком не с TreeView не с ListView, а чем лучше TreeView?


{RASkov}   (2007-04-16 12:13:00) [4]

> [67] allucard   (16.04.07 11:41)


> [69] Сергей М. ©   (16.04.07 11:47)
> Чем тебе TreeView не угодил ?

Или как вариант ListView:

> запхнуть ещё хотя бы два параметра для каждой записи.

Для каждой записи там есть еще дополнительный (SubItem)Strings и пихай в него сколько угодно параметров...строковых.
Тоже, вроде, умеет сохранять все сам... может вру.


Сергей М.   (2007-04-16 12:11:00) [5]

TTreeView


allucard   (2007-04-16 12:09:00) [6]

А что лучше подойдёт:

TreeView или ListView?


Сергей М.   (2007-04-16 11:54:00) [7]

Открываешь окно справки, вводишь стороку поиска фразы TListBox..


allucard   (2007-04-16 11:53:00) [8]

Где описан ListBox?


Сергей М.   (2007-04-16 11:50:00) [9]


> читаешь по адресу то, чего не существует там


Ну вот для начала и прими меры к тому, чтобы это самое "то, чего не существует" начало существовать "там".


allucard   (2007-04-16 11:49:00) [10]


> Сергей М. ©   (16.04.07 11:47) [69]

Сейчас буду розбираться.
В принцыпе цель - это познание.

Так что Respect всем помогающим.
Понял многое.


allucard   (2007-04-16 11:47:00) [11]


> Но в дан.случае AV-исключение при выполнении ReadComponent
> не имеет к этому  никакого отношения.

Понятное дело, когда читаешь по адресу то, чего не существует там.


Сергей М.   (2007-04-16 11:47:00) [12]


> allucard   (16.04.07 11:41) [67]


Чем тебе TreeView не угодил ?

В случае с ним вообще ничего "запихивать" не нужно - компонент сделает все сам.


Сергей М.   (2007-04-16 11:44:00) [13]


> FileStream.WriteComponent(Form2.ListBox1)  не записывает
> компоненты, находящиеся внутри ListBox1


Да , не записывает. И не должен.
Но в дан.случае AV-исключение при выполнении ReadComponent не имеет к этому  никакого отношения.


allucard   (2007-04-16 11:41:00) [14]

В общем как я понял мир познания устроен по кругу, после недельного разбирательства так и не понятным осталось как в компонент ListBox запхнуть ещё хотя бы два параметра для каждой записи.
:(
Грустно.


allucard   (2007-04-16 11:40:00) [15]


> Сергей М. ©   (16.04.07 11:10) [65]

По ходу, я добавляю в ListBox1 пару обьектов, потом сохраняю его в файл.
И если не закрывать приложение то компоненты активируются нормально.

Короче FileStream.WriteComponent(Form2.ListBox1)  не записывает компоненты, находящиеся внутри ListBox1.


Сергей М.   (2007-04-16 11:10:00) [16]


> Что на этот раз то?


Либо Form2 либо Form2.ListBox1 содержат nil или "мусор".


allucard   (2007-04-16 11:06:00) [17]

Сделал так:
Запись компонента:

FileStream := TFileStream.Create('users.dat', fmCreate);
FileStream.WriteComponent(Form2.ListBox1);
FileStream.Free;

Чтение:

 if (FileExists('users.dat')) then
   begin
     FileStream := TFileStream.Create('users.dat', fmOpenRead);
     FileStream.ReadComponent(Form2.ListBox1);
     FileStream.Free;
   end;

Но при чтении свойств обьектов внутри TListBox1 сволочь пишет AccessViolation.
Что на этот раз то?


Сергей М.   (2007-04-13 15:13:00) [18]


> allucard   (13.04.07 14:16) [62]


> Указатели на указатели ?)


А это что, нонсенс ?)
И такое бывает)

Хотя редкость)

А вот тебе обычный пример - на некую форму "кинули" некий "батон".
В рез-те ты имеешь:

 TfrmReportParams = class(TForm)
   Button1: TButton; <- вот он, указатель на структурированные данные, появившийся в результате "батонокидательства" !)
   ..
 end;


allucard   (2007-04-13 14:16:00) [19]


> Сергей М. ©   (13.04.07 14:01) [60]

Указатели на указатели ?)
Да уж.
Класс экземпляр класса никак не запишешь, свой так точно.
Хотя стоп!

  FileStream.WriteComponent(self);


{RASkov}   (2007-04-13 14:15:00) [20]

var U: TUser; S: String;
..............
try
  AssignFile (F, ExtractFilePath(ParamStr(0))+'data\users.dat');
  Rewrite(F);
  try
   for i:=0 to ListBox1.Count - 1 do begin
    U:=TUser(ListBox1.Items.Objects[i]);
    if U=nil then Continue;
    S:=Format('%s;%s;%s', [U.username,U.realname, U.password');
    Write Ln(f, S);
   end;
  finally CloseFile(F); end;
except
  ShowMessage('Блин, косяк при сохранении пассвордов..:(');
end;


Читать из этого файла и загружать в ListBox сам придумай как.... не сложно.
ЗЫ Можно и шифровать пароли если нужно....


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо