AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Hilfeersuchen - schnelle Anzeige Textdatei in TListBox
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

Ein Thema von CaseyRyback · begonnen am 31. Mai 2021 · letzter Beitrag vom 18. Jun 2021
 
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
157 Beiträge
 
Delphi 12 Athens
 
#16

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 16. Jun 2021, 09:42
Ich habe mir mal das von Michael II genannte Beispiel von Uwe Raabe heruntergeladen und ausprobiert. Seltsamerweise lassen sich mit dem Rollbalken nicht alle 250000 Einträge anzeigen. Beim Erreichen von 65535 fängt die Anzeige wieder bei 1 an, und wenn ich dann den Rollbalken 'loslasse', springt er wieder zurück auf Anfang, bzw. die Position der letzten Anzeige (1..65535)
Wenn ich die Einträge mit den Scrolltasten Up, Down, und 'Bild auf' und 'Bild ab' durchgehe, werden alle 250000 angezeigt.
Delphi-Quellcode:
unit Unit474;

interface

uses
  System.SysUtils, System.Classes,
  Vcl.Forms, Vcl.StdCtrls, Vcl.Controls;

type
  TForm474 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ListBox1Data(Control: TWinControl; Index: Integer; var Data: string);
    function ListBox1DataFind(Control: TWinControl; FindString: string): Integer;
  private
    FListBox1Items: TStringList;
  public
    destructor Destroy; override;
  end;

var
  Form474: TForm474;

implementation

uses
  System.Diagnostics;

{$R *.dfm}

destructor TForm474.Destroy;
begin
  FListBox1Items.Free;
  inherited Destroy;
end;

procedure TForm474.FormCreate(Sender: TObject);
begin
  FListBox1Items := TStringList.Create;
end;

procedure TForm474.Button1Click(Sender: TObject);
var
  I: Integer;
  sw: TStopWatch;
begin
  sw := TStopwatch.StartNew;
  FListBox1Items.Clear;
  for I := 1 to 250000 do
    FListBox1Items.Add(I.ToString);
  ListBox1.Style := lbVirtual;
  ListBox1.Count := FListBox1Items.Count;
  Label1.Caption := sw.ElapsedMilliseconds.ToString;
end;

procedure TForm474.ListBox1Data(Control: TWinControl; Index: Integer; var Data: string);
begin
  Data := FListBox1Items[Index];
end;

function TForm474.ListBox1DataFind(Control: TWinControl; FindString: string): Integer;
begin
  Result := FListBox1Items.IndexOf(FindString);
end;

end.
Ich habe keine Eigenschaft von TListbox gefunden, mit der sich dieses Vehalten beeinflussen läßt. Es würde mich doch mal interessieren, woran das liegen könnte.

Gruß LP
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz