Lazarus で、リストデータの移動処理を行ってみた

Lazarus で、リストデータの移動処理を行ってみた

リストデータの受け渡しのための
データの移動追加の処理を行ってみた

環境
Ubuntu16
Lazarus 2.0.10

参考ページ
https://www.migaro.co.jp/contents/products/delphi400/tips/introduction/4_20/02/01.html
http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/faq/00055.htm
https://www.migaro.co.jp/contents/products/delphi400/tips/introduction/4_20/02/01.html
http://dp25299446.lolipop.jp/delphi_tips/tips0045.html

ポイント
リストにはListBoxを使う
・項目追加
 ListBox.Items.Add(文字列)
・項目削除
ListBox.Items.Delete(番号);
 選択している行の場合
ListBox.Items.Delete(ListBox.ItemIndex);
・選択しているデータ
 ListBox1.Items[ListBox.ItemIndex]
・選択しているかの判断
 if (ListBox.ItemIndex > -1) Then 選択されている else 選択されていない
・データの永続的処理(ロード、セーブ)
ListBox.Items.LoadFromFile(ファイル名);
ListBox.Items.SaveToFile(ファイル名);
・その他論理演算
 等しい時 =
 等くない時 <>
 論理and and

プログラム

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.Caption:='>';
  Button2.Caption:='<';
  Button4.Caption:='adddata';
  Button5.Caption:='delete';
  Button6.Caption:='save';
  Button3.Visible:=False;

  ListBox1.Items.Add('abc-1');
  ListBox1.Items.Add('abc-2');
  ListBox1.Items.Add('abc-3');
  Button3Click(Sender);
  if FileExists('listdata.txt') then
   ListBox2.Items.LoadFromFile('listdata.txt');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox2.Items.Add(ListBox1.Items[ListBox1.ItemIndex]);
  ListBox1.Items.Delete(ListBox1.ItemIndex);
  Button3Click(Sender);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ListBox1.Items.Add(ListBox2.Items[ListBox2.ItemIndex]);
  ListBox2.Items.Delete(ListBox2.ItemIndex);
  Button3Click(Sender);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   if  (ListBox1.ItemIndex > -1) and (ListBox1.Items.Count <> 0)  then
    button1.Enabled := True
   else
    button1.Enabled := False;
   if  (ListBox2.ItemIndex > -1) and (ListBox2.Items.Count <> 0)  then
    begin
      button2.Enabled := True;
      button5.Enabled := True;
    end
   else
    begin
      button2.Enabled := False;
      button5.Enabled := False;
    end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
 ListBox2.Items.Add(edit2.Text);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 ListBox2.Items.Delete(ListBox2.ItemIndex);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  ListBox2.Items.SaveToFile('listdata.txt');
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
  if  edit2.text <> '' then
    button4.Enabled := True
   else
    button4.Enabled := False;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
  edit1.Text:=ListBox1.Items[ListBox1.ItemIndex];
  Button3Click(Sender);
end;

procedure TForm1.ListBox2Click(Sender: TObject);
begin
  Button3Click(Sender);
end;