3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
1

Как такое реализовать - listbox в две строки или что-то другое?

21.02.2019, 16:20. Показов 3623. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Хотелось бы реализовать у себя так же примерно как на картинке
Как такое реализовать - listbox в две строки или что-то другое?

т.е. 1-я строка какое-то название, 2-я строка 2 название, но при выделении мышью - выглядит как одна группа. Такой же принци используется в aimp2 и др. программах. Может уже кто-то делал? Спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2019, 16:20
Ответы с готовыми решениями:

Даны две переменные, в первой строка, во второй длина строки, 100 - max длина, строки. Что такое dup('$') ?
string db 100 stringlen db ?,100 dup('$')

Как такое проделать с мемо? или что подходит под такое?
Привет всем! Как сделать такое? и на чем лучше мемо,листбокс.... или просто как вставить...

Цикл: Как реализовать цикл или что-то другое, чтобы возвращаться в окно редактирования с помощью букв "Y" и"N".
Как реализовать цикл или что-то другое чтобы не возвращаться в окно редактирования не с помощью...

Ребят, посмотрите , что фигня, как думаете это видеочип накрылся или что-то другое?
Ребят, помогите определить, что фигня, как думаете это видеочип накрылся или что-то другое? Может...

20
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
21.02.2019, 16:48 2
это или хтмл
или собственный макет\компонент

можешь попробовать DrawGrid перерисовать
0
5778 / 4521 / 1430
Регистрация: 14.04.2014
Сообщений: 20,143
Записей в блоге: 20
21.02.2019, 20:33 3
в FMX примерно так ListView и выглядит
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
22.02.2019, 11:36  [ТС] 4
Решил использовать 2 ListBox и файл с разделителем. Но опять что-то не идет.
В общем есть файл вида :
......
Имя1 | url1
Имя2 | url2
Имя3 | url3
......

Есть 2 ListBox - 1-й содержит имя 2-й невидим и содержит url

Как прочитать файл ?
0
Заблокирован
22.02.2019, 12:47 5
TVirtalDrawTree
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
22.02.2019, 12:47  [ТС] 6
Попробовал такой код ((( , все поля остаются слева в ListBox
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
procedure TForm1.Button4Click(Sender: TObject);
var f: TextFile;
    s1, s2: string;
    i, j: integer;
    separator: char;
begin
   {if OpenDialog1.Execute then                            // рабочий код
    ListBox1.Items.LoadFromFile(OpenDialog1.FileName); }
 
  if OpenDialog1.Execute then
  begin
  i := 0;
  AssignFile (f, OpenDialog1.FileName);
  Reset(f);
  while not eof(f) do
  begin
  readln (f, s1);
      i := i + 1;
   j := 0;
   while pos(separator, s1)<>0 do
    begin
      s2 := copy(s1,1,pos(separator, s1)-1);
     j := j + 1;
     delete (s1, 1, pos(separator, S1));
     ListBox2.Items.Add(s2);
    end;
    if pos (separator, s1)=0 then
    begin
          j := j + 1;
 
     ListBox2.Items.Add(s1);
    end;
  end;
      CloseFile(f);
  end;
end;
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.02.2019, 13:24 7
Лучший ответ Сообщение было отмечено maksmkv как решение

Решение

Можно так.
В файле записать в строках разделитель слов знак =.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button1Click(Sender: TObject);
var t:tstringlist;
    i:byte;
begin
 t:=tstringlist.Create;
 t.LoadFromFile('1111.txt');
 for i:=0 to t.Count-1 do
  begin
   ListBox1.Items.Add(t.Names[i]);
   ListBox2.Items.Add(t.ValueFromIndex[i]);
  end;
end;
1
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
22.02.2019, 14:13  [ТС] 8
Нечто подобное попробовал сделать, почему-то только 1 строка заполняется (((

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
  SL: TStringList;
  Temp: string;
  i: Integer;
  f: TextFile;
begin
  if OpenDialog1.Execute then
  begin
      SL := TStringList.Create;
      SL.LoadFromFile(OpenDialog1.FileName);
      SL.Delimiter := '|';
      SL.QuoteChar := '"';
      SL.StrictDelimiter := True;
      SL.DelimitedText :=SL.Text;
 
    for i := 0 to SL.Count - 1 do begin
    ListBox2.Items.Add(SL.Names[i]);
    ListBox3.Items.Add(SL.ValueFromIndex[i]);
    end;
    end;
  end;
Добавлено через 25 минут
Все сделал, всем спасибо
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.02.2019, 14:32 9
Если разделитель | то можно так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.Button1Click(Sender: TObject);
var SL,t: TStringList;
    i: Integer;
begin
 if OpenDialog1.Execute then
  begin
      SL := TStringList.Create;
      SL.LoadFromFile(OpenDialog1.FileName);
      for i:=0 to SL.Count-1 do
       begin
        t:=TStringList.Create;
        t.Delimiter := '|';
        t.DelimitedText :=SL[i];
         ListBox1.Items.Add(t[0]);
        ListBox2.Items.Add(t[1]);
       end;
    end;
end;
Добавлено через 2 минуты
Вернее так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button1Click(Sender: TObject);
var SL,t: TStringList;
    i: Integer;
begin
 if OpenDialog1.Execute then
  begin
      SL := TStringList.Create;
      SL.LoadFromFile(OpenDialog1.FileName);
      for i:=0 to SL.Count-1 do
       begin
        t:=TStringList.Create;
        t.Delimiter := '|';
        t.DelimitedText :=SL[i];
        ListBox1.Items.Add(t[0]);
        ListBox2.Items.Add(t[1]);
        t.Free
       end;
    end;
   SL.Free;
end;
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
25.02.2019, 10:42  [ТС] 10
Что я делаю не так при сохранении файла?

Выше из файла считали имя=значение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var   t:tstringlist;   //глобальные переменные
.......                   
 
procedure TForm1.Button3Click(Sender: TObject);
var i:byte;
 
begin
  if Edit2.Text='' then
  begin
    showmessage('Пустое значение');
    exit
  end;
   t.Add(Edit2.Text);   // T TStringList объявлен  в глобальных переменных. в t добавить  зачение из Edit вида имя=значение
 
  for i:=0 to t.Count-1 do   - проходим  по t
   begin
      t.SaveToFile('playlist.pls');  - сохраняем
    end;
 
  Edit2.Text:='';    // обнуляем Edit
end;
При сохранении выдает "External SIGSEGV"
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.02.2019, 10:44 11
Зачем цикл при сохранении?
Просто
Pascal
1
t.SaveToFile('playlist.pls');
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
25.02.2019, 10:53  [ТС] 12
Переделал, но все равно ошибка:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.Button3Click(Sender: TObject);
var i:byte;
begin
  if Edit2.Text='' then
  begin
    showmessage('Пустое значение');
    exit;
  end;
   //ListBox1.Items.Add(Edit2.Text);
   //t:=tstringlist.Create;
   t1:=Tstringlist.Create;
   t1.Add(Edit2.Text);
   for i:=0 to t1.Count-1 do
       begin
            t.Add(t1[i]);
            t.SaveToFile('playlist.pls');
       end;
  t.Free;
  t1.Free;
  Edit2.Text:='';
end;
Добавлено через 2 минуты
Так тоже ошибка
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button3Click(Sender: TObject);
var i:byte;
begin
  if Edit2.Text='' then
  begin
    showmessage('Пустое значение');
    exit;
  end;
   t.Add(Edit2.Text);
   t.SaveToFile('playlist.pls');
   Edit2.Text:='';
end;
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.02.2019, 11:08 13
Цитата Сообщение от maksmkv Посмотреть сообщение
Так тоже ошибка
Какая, где?
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
25.02.2019, 11:11  [ТС] 14
При нажатии на кнопку- сохранить
Миниатюры
Как такое реализовать - listbox в две строки или что-то другое?  
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
25.02.2019, 11:12  [ТС] 15
Читаю данные так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.FormCreate(Sender: TObject);
var
   {t:tstringlist;  }
   i:byte;
begin
  BASS_Init(-1,44100,0,Handle,nil);
  BASS_SetConfig(BASS_CONFIG_NET_PLAYLIST, 1);
 // ListBox1.Items.LoadFromFile('playlist.pls');
 t:=tstringlist.Create;
 t.LoadFromFile('playlist.pls');
 for i:=0 to t.Count-1 do
  begin
   ListBox2.Items.Add(t.Names[i]);
   ListBox1.Items.Add(t.ValueFromIndex[i]);
  end;
  TrackBar1.Position:=50;
  t.Free;
end;
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.02.2019, 11:14 16
А зачем Вы все это пишете в OnCreate формы? Формы еще нет, а что-то она должна делать.
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
25.02.2019, 11:49  [ТС] 17
Перенес в событие OnShow - когда форма отобразится.

Добавлено через 30 минут
Все исправил =)
0
Модератор
9238 / 6021 / 2374
Регистрация: 21.01.2014
Сообщений: 25,743
Записей в блоге: 3
26.02.2019, 07:29 18
maksmkv, а почему, собственно, в разделе Delphi тему создали, если пишите на Lazarus? Перенесено.
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
26.02.2019, 10:22  [ТС] 19
Просто в данном случаю , что в Delphi, что в Lazarus - данные конструкции не сильно отличаются, т.е. должны работать и там
и там.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
26.02.2019, 10:36 20
Цитата Сообщение от maksmkv Посмотреть сообщение
Просто в данном случаю , что в Delphi, что в Lazarus - данные конструкции не сильно отличаются
В любом случае Дельфи и Лазарус сильно отличаются. И достаточно вещей в Лазарусе пишется в одну строку, а в Дельфи приходится писать десятки строк, чтобы сделать то же самое. Поэтому впредь размещайте темы в правильном разделе.
0
26.02.2019, 10:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2019, 10:36
Помогаю со студенческими работами здесь

Как удалить две строки в listbox сразу?
есть текстовый файл который загружается в listbox &lt;пробел&gt; заполненная строка &lt;пробел&gt;...

Как реализовать удаление/изменение строки из ListBox
Есть ListBox и кнопка &quot;удалить&quot; как удалить строку из ListBox1 нажатием кнопки ?

Что такое односвязный список и как его реализовать
Господа, что такое односвязный список и как его реализовать в шарпе. Всем спасибо

Как реализовать поиск указанной строки в ListBox и удалить ее?
Доброго времени суток, господа программисты! Как реализовать поиск указанной строчки в listBox и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru