Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 18:35   #11
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Лучше уже разбить хотя бы слова по алфавиту, например, нажимаем в первом листбоксе на "Б" и во втором листбоксе появляться соотвествующие слова.
Delphi_ProGer вне форума Ответить с цитированием
Старый 12.12.2012, 02:44   #12
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
Включаем Style = lbVirtual
Назначаем обработчик OnData = ListBoxData
Используем любое хранилище Ваших данных, например TStringList.
Скорость работы будет зависить от времени заполнения хранилища.
Это очень интересно, а можно пример?
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)
Suny-o вне форума Ответить с цитированием
Старый 12.12.2012, 17:56   #13
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Пример чего? Организации хранилища? Так нам неизвестно количество данных для единицы хранения. Мы знаем предполагаемое запредельное количество Item-ов, которые предполагаете показать пользователю. А этого явно недостаточно для каких-то рекомендаций
ReportCube вне форума Ответить с цитированием
Старый 13.12.2012, 04:42   #14
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
Пример чего? Организации хранилища? Так нам неизвестно количество данных для единицы хранения. Мы знаем предполагаемое запредельное количество Item-ов, которые предполагаете показать пользователю. А этого явно недостаточно для каких-то рекомендаций
Правильно ли я понимаю, что программа должна выглядеть так:
Код:
var
  Form1: TForm1;
  tstr:Tstrings;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
for n:=1 to 150000 do
 begin
 ListBox1.Items.Add(inttostr(n));
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var n:integer;
begin
for n:=1 to 150000 do
 begin
 tstr.Add(inttostr(n));
 end;
 ListBox1.Style:=lbVirtual;
 ListBox1.OnData:=ListBoxData;
 ListBox1.Items:=tstr;
end;
Я говорю о коде для кнопки 2.

Кстати компилятор выдает ошибку:
[Error] prob0.pas(47): Undeclared identifier: 'ListBoxData'
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)
Suny-o вне форума Ответить с цитированием
Старый 13.12.2012, 04:51   #15
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Цитата:
Кстати компилятор выдает ошибку:
[Error] prob0.pas(47): Undeclared identifier: 'ListBoxData'
Это процедура, котору вы должны вручную обьявить.
Delphi_ProGer вне форума Ответить с цитированием
Старый 13.12.2012, 04:59   #16
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Delphi_ProGer Посмотреть сообщение
Это процедура, котору вы должны вручную обьявить.
А что должна эта процедура делать?
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)
Suny-o вне форума Ответить с цитированием
Старый 13.12.2012, 05:04   #17
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

А это уже вы пишите, что там делать.
Delphi_ProGer вне форума Ответить с цитированием
Старый 13.12.2012, 05:53   #18
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Delphi_ProGer Посмотреть сообщение
Это процедура, котору вы должны вручную обьявить.
Исправил программу
Код:
var
  Form1: TForm1;
  tstr:Tstrings;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
for n:=1 to 150000 do
 begin
 ListBox1.Items.Add(inttostr(n));
 end;
end;

procedure ListBoxData;
begin
ListBox1.Items:=tstr;
end;

procedure TForm1.Button2Click(Sender: TObject);
var n:integer;
begin
for n:=1 to 150000 do
 begin
 tstr.Add(inttostr(n));
 end;
 ListBox1.Style:=lbVirtual;
 ListBox1.OnData:=ListBoxData;
end;
Выдает ошибку
[Error] prob0.pas(52): Incompatible types: 'method pointer and regular procedure'
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)

Последний раз редактировалось Suny-o; 13.12.2012 в 05:55.
Suny-o вне форума Ответить с цитированием
Старый 13.12.2012, 06:24   #19
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Data(Control: TWinControl; Index: Integer;
      var Data: String);
  private
    tstr:TStrings;
  public
    { Public declarations }
  end;

var Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var n:integer;
begin
  tstr:=TStringList.Create;
  for n:=1 to 150000 do
  begin
    tstr.Add(inttostr(n));
  end;
  ListBox1.Count:=tstr.Count;
end;

procedure TForm1.ListBox1Data(Control: TWinControl; Index: Integer;
  var Data: String);
begin
  Data:=tstr[Index];
end;

end.
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 13.12.2012, 06:50   #20
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Спасибо Slym;
В итоге программа выглядит так:
Код:
unit prob0;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ListBox1Data(Control: TWinControl; Index: Integer; var Data: String);
  private
    tstr:TStrings;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var n:integer;
begin
  tstr:=TStringList.Create;
  for n:=1 to 150000 do
  begin
    tstr.Add(inttostr(n));
  end;
  ListBox1.Style:=lbVirtual;
  ListBox1.Count:=tstr.Count;
end;

procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
for n:=1 to 150000 do
 begin
 ListBox1.Items.Add(inttostr(n));
 end;
end;

procedure TForm1.ListBox1Data(Control: TWinControl; Index: Integer;
  var Data: String);
begin
  Data:=tstr[Index];
end;

procedure TForm1.Button2Click(Sender: TObject);
var n:integer;
begin
 ListBox1.Style:=lbVirtual;
 ListBox1.OnData:=ListBox1Data;
 Listbox1.Repaint;
end;

end.
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)

Последний раз редактировалось Suny-o; 13.12.2012 в 07:03.
Suny-o вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс, позволяющий работать с односвязным списком Алёсенька Помощь студентам 1 22.09.2012 14:33
Компонент-аналог TWebBrowser kettanaito Компоненты Delphi 9 09.11.2011 23:44
Есть окно, в котором есть аналог Memo. Как из него вытащить текст? TwiX Общие вопросы Delphi 6 16.06.2011 13:58
Как сделать формулу для 40 тыс. строк Alien453 Microsoft Office Excel 21 11.04.2011 21:54
Разработать программу для заполнения типизированного файла целыми числами в интервале [-150; 150]. Поменя Pan_rust Паскаль, Turbo Pascal, PascalABC.NET 0 24.05.2010 23:03