Hallo SirThornberry und Legolas,
erstmal herzlichsten Dank für Euer wirklich vorbildliches Engagement.
Ich habe mal ein Mini-Prog mit genau dem Code geschrieben, den SirThornberry hier gepostet hat. Funktioniert einwandfrei - klasse.
Jetzt versuche ich schon meine gesamte Mittagspause diese Funktionalität in mein Programm einzubauen, was mir aber bisher leider nicht mit dem gewünschten Effekt gelingt.
Was ich nicht verstehe:
Füge ich der Listbox per
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add('end');
ListBox1.Items.Add('endac');
ListBox1.Items.Add('endad');
ListBox1.Items.Add('endae');
ListBox1.Items.Add('endaf');
ListBox1.Items.Add('endag');
end;
Einträge hinzu, tut die von SirThornberry gepostete Funktionalität.
Sie tut aber leider nicht in meinem Programm, in dem ich die Daten aus einem file lese.
Da ich im Moment keine Ahnung habe warum das so ist (und in den nächsten Tagen kaum Zeit in Ruhe zu testen) anbei hier mal meine gesamte
Unit plus die Datei 'namen.txt' aus der ich die Daten auslese.
Wenn Ihr nochmal Muße habt drüberzuschauen, wäre ich Euch mehr als dankbar.
Noch zwei Anmerkungen dazu:
1.
Wo ich den Code von SirThornberry eingefügt habe, poste ich diesen z.T. nur als Auszug.
2.
Zum Code: Ich bin Jurist, und kein Programmierer
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TMyListBox =
class(TListBox)
private
fFilter:
String;
fLastTime: Cardinal;
fkeypresstime: Integer;
protected
procedure KeyPress(
var Key: Char);
override;
public
constructor Create(AOwner: TComponent);
override;
published
property Keypresstime: Integer
read fKeypresstime
write fkeypresstime;
end;
type
CardRecord =
record
Name:
string;
end;
var
Form1: TForm1;
Card:
array[0..1800]
of CardRecord;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
SortierListe: TStringList;
a: integer;
begin
SortierListe := TStringList.Create;
SortierListe.LoadFromFile('
namen.txt');
SortierListe.Sorted:= True;
// Alphabetische Sortierung
for a:= 0
to SortierListe.Count-1
do
begin
Card[a].
Name:=SortierListe[0];
ListBox1.Items.Add(Card[a].
Name);
// Auslesen und Schreiben in Array
SortierListe.Delete(0);
// String löschen
end;
SortierListe.Free;
end;
constructor TMyListBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
fkeypresstime := 10000;
FFilter := '
';
FLastTime := GetTickCount;
end;
procedure TMyListBox.KeyPress(
var Key: Char);
procedure FindString;
[...]
end;
end.
Herzlichen Dank und Gruß,
Christoph