Mega Code Archive

 
Categories / Delphi / VCL
 

How to create an editable ListBox

Title: How to create an editable ListBox procedure TForm1.Change1Click(Sender: TObject); var I9: Integer; ColInt: Integer; LRect: TRect; begin LRect := ListBox1.ItemRect(ListBox1.ItemIndex); {Set the size of the TEdit} Edit1.Top := LRect.Top + 1; Edit1.Left := LRect.Left + 1; Edit1.Width := ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[ListBox1.ItemIndex]) + 6; Edit1.Height := (LRect.Bottom - LRect.Top) + 1; Edit1.Text := ListBox1.Items.Strings[ListBox1.ItemIndex]; ListBox1.Selected[ListBox1.ItemIndex] := False; Edit1.Visible := True; Edit1.SelectAll; Edit1.SetFocus; end; procedure TForm1.ListBox1Click(Sender: TObject); begin Edit1.Visible := False; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var I8: Integer; begin if Key = #13 then begin I8 := ListBox1.ItemIndex; ListBox1.Items.Delete(ListBox1.ItemIndex); ListBox1.Items.Insert(I8, Edit1.Text); Edit1.Visible := False; Key := #0; end; end;