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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2012, 17:40   #21
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

В моем словаре вышеприведенная процедура позволяет без задержки отображать, 129 тыс. строк словаря, но ползунок по прежнему не позволяет листать весь словарь полностью, а только половину. Что бы пролистать все нужно использовать PageUp, PageDown.
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)
Suny-o вне форума Ответить с цитированием
Старый 13.12.2012, 22:48   #22
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Измените под себя
Цитата:
unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ListBox1Data(Control: TWinControl; Index: Integer;
var Data: string);
private
S: TStringList;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
ListBox1.Count := 0;
S.Clear;
S.BeginUpdate;
for i := 0 to 150000 do
S.Add(IntToStr(i));
S.EndUpdate;
ListBox1.Count := S.Count;
ListBox1.Repaint;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
S := TStringList.Create(True);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
S.Free;
end;

procedure TForm1.ListBox1Data(Control: TWinControl; Index: Integer;
var Data: string);
begin
if (Index > -1) and (Index < S.Count) then
Data := S[Index];
end;

end.
ReportCube вне форума Ответить с цитированием
Старый 15.12.2012, 05:26   #23
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Цитата:
Измените под себя
Эта вариция не отличается от ниже приведенной и от приведенных ранее.

Что бы понять о чем речь нужно использовать 500 тыс. элементов.
Тогда дальше 41249 элемента ползунком листаться listbox не будет.
Код:
unit prob1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.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 500000 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 500000 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; 15.12.2012 в 06:13.
Suny-o вне форума Ответить с цитированием
Старый 15.12.2012, 06:12   #24
Suny-o
Пользователь
 
Аватар для Suny-o
 
Регистрация: 03.03.2012
Сообщений: 33
По умолчанию

Цитата:
Сообщение от beegl Посмотреть сообщение
можно и с этим компонентом TLMDExtListBox, lmd.de
LMDExtListBox и LMDListBox обладают теми же пороками - листаются ползунком до 41248 элемента (из 500 тыс.) а дальше листаются толко PageUp-ом и PageDown-ом.
кстити вышеприведенная фишка:
Код:
 LMDListBox1.Style:=lbVirtual;
 LMDListBox1.OnData:=ListBox1Data;
 LMDListbox1.Repaint;
Работает только с LMDListBox а с LMDextListBox не работает, поскольку у него нет Style.
QuickSortStr04.rar работа с динамическими 1D,2Dмассивами строк
* быстрая сортировка по любому алфавиту, добавление, удаление элементов.
* чтение, запись(файл<-->дин. массив)

Последний раз редактировалось Suny-o; 15.12.2012 в 06:18.
Suny-o вне форума Ответить с цитированием
Старый 15.12.2012, 11:32   #25
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Посмотрите исходники, может после полутора миллионов опять начнёт? Бедные пользователи...
ReportCube вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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