1
0
Fork 0
lazarus-tutorials/sListExample/slistform.pas

59 lines
1.1 KiB
ObjectPascal

unit slistform;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
const specimen: string = 'Enter by the narrow gate; for the wide gate has a broad' +
' road which leads to destruction and there are many people going that way. The' +
' narrow gate and the hard road lead to life and only a few find it.';
type
TForm1 = class(TForm)
LBWords: TListBox;
LCount: TLabel;
Mdisplay: TMemo;
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var
sl, noDuplicates: TStringList;
j: integer;
begin
MDisplay.Text := specimen;
sl := TStringList.Create;
noDuplicates := TStringList.Create;
try
sl.CommaText := specimen;
sl.Sort;
for j := 0 to sl.Count-1 do
if (noDuplicates.indexOf(sl[j]) > 0) then noDuplicates.Add(sl[j]);
LBWords.Items.AddStrings(noDuplicates);
LCount.Caption := Format(
'Specimen text has %d words of which %d are unique',
[sl.Count, noDuplicates.Count]
);
finally
sl.Free;
noDuplicates.Free;
end;
end;
end.