mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-06 00:58:04 +02:00
157 lines
4.7 KiB
ObjectPascal
157 lines
4.7 KiB
ObjectPascal
{
|
|
***************************************************************************
|
|
* *
|
|
* This source is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
* This code is distributed in the hope that it will be useful, but *
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
|
* General Public License for more details. *
|
|
* *
|
|
* A copy of the GNU General Public License is available on the World *
|
|
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
|
|
* obtain it by writing to the Free Software Foundation, *
|
|
* Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. *
|
|
* *
|
|
***************************************************************************
|
|
}
|
|
program ListBoxTest;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
uses
|
|
Interfaces, Classes, Forms, StdCtrls, SysUtils, Controls, LazLogger;
|
|
|
|
type
|
|
TListBoxTestForm = class(TForm)
|
|
public
|
|
Button1, Button2, Button3, Button4: TButton;
|
|
ListBox: TListBox;
|
|
constructor Create(AOwner: TComponent); override;
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure Button3Click(Sender: TObject);
|
|
procedure Button4Click(Sender: TObject);
|
|
procedure FormResize(Sender: TObject);
|
|
end;
|
|
|
|
var
|
|
ListBoxTestForm: TListBoxTestForm;
|
|
|
|
{------------------------------------------------------------------------------}
|
|
{ TListBoxTestForm }
|
|
{------------------------------------------------------------------------------}
|
|
constructor TListBoxTestForm.Create(AOwner: TComponent);
|
|
begin
|
|
inherited CreateNew(AOwner, 1);
|
|
Width := 300;
|
|
Height := 200;
|
|
Left := 200;
|
|
Top := 200;
|
|
|
|
// create children
|
|
Button1 := TButton.Create(Self);
|
|
Button1.OnClick := @Button1Click;
|
|
Button1.Parent := Self;
|
|
Button1.left := 40;
|
|
Button1.top := 170;
|
|
Button1.width := 50;
|
|
Button1.height := 25;
|
|
Button1.caption := 'New';
|
|
Button1.Show;
|
|
|
|
Button2 := TButton.Create(Self);
|
|
Button2.OnClick := @Button2Click;
|
|
Button2.Parent := Self;
|
|
Button2.left := 95;
|
|
Button2.top := 170;
|
|
Button2.width := 50;
|
|
Button2.height := 25;
|
|
Button2.caption := 'Delete';
|
|
Button2.Show;
|
|
|
|
Button3 := TButton.Create(Self);
|
|
Button3.OnClick := @Button3Click;
|
|
Button3.Parent := Self;
|
|
Button3.left := 150;
|
|
Button3.top := 170;
|
|
Button3.width := 50;
|
|
Button3.height := 25;
|
|
Button3.caption := 'Clear';
|
|
Button3.Show;
|
|
|
|
Button4 := TButton.Create(Self);
|
|
Button4.OnClick := @button4click;
|
|
Button4.Parent := Self;
|
|
Button4.left := 205;
|
|
Button4.top := 170;
|
|
Button4.width := 50;
|
|
Button4.height := 25;
|
|
Button4.caption := 'Unused';
|
|
Button4.Show;
|
|
|
|
// ListBox := TCListBox.Create(Self);
|
|
ListBox := TListBox.Create(Self);
|
|
ListBox.Parent := Self;
|
|
ListBox.Left := 10;
|
|
ListBox.Top := 10;
|
|
ListBox.Width := 280;
|
|
ListBox.Height := 150;
|
|
ListBox.Anchors := [akLeft, akRight, akTop];
|
|
{ ListBox.ExtendedSelect := true;
|
|
ListBox.MultiSelect := true;
|
|
} ListBox.Show;
|
|
|
|
OnResize := @FormResize;
|
|
end;
|
|
|
|
procedure TListBoxTestForm.Button1Click(Sender: TObject);
|
|
var
|
|
Index: integer;
|
|
begin
|
|
Index := ListBox.ItemIndex;
|
|
if Index = -1 then
|
|
ListBox.Items.Add('Button 1 clicked')
|
|
else
|
|
ListBox.Items.Insert(Index, 'Button 1 clicked at '+IntToStr(Index));
|
|
for Index := 0 to ListBox.Items.Count - 1 do
|
|
ListBox.Items.Objects[Index] := TObject(PtrInt(Index));
|
|
end;
|
|
|
|
procedure TListBoxTestForm.Button2Click(Sender: TObject);
|
|
var
|
|
Index: integer;
|
|
begin
|
|
Index := ListBox.ItemIndex;
|
|
if Index <> -1
|
|
then ListBox.Items.Delete(Index);
|
|
end;
|
|
|
|
procedure TListBoxTestForm.Button3Click(Sender: TObject);
|
|
begin
|
|
ListBox.Items.Clear;
|
|
end;
|
|
|
|
procedure TListBoxTestForm.Button4Click(Sender: TObject);
|
|
var
|
|
X: PtrInt;
|
|
begin
|
|
if ListBox.ItemIndex < 0 then Exit;
|
|
X := PtrInt(ListBox.Items.Objects[ListBox.ItemIndex]);
|
|
DebugLn(['TListBoxTestForm.Button4Click ',X]);
|
|
end;
|
|
|
|
procedure TListBoxTestForm.FormResize(Sender: TObject);
|
|
begin
|
|
Caption := Format('%dx%d', [ListBox.Width, ListBox.Height]);
|
|
end;
|
|
|
|
begin
|
|
Application.Initialize;
|
|
Application.CreateForm(TListBoxTestForm, ListBoxTestForm);
|
|
Application.Run;
|
|
end.
|