Delphi World - Создать редактируемый TListBox
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Создать редактируемый TListBox

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{NOTE : This will also work with an OwnerDraw ListBox 
But be sure you "pad" the Left Property of the Edit so 
Any icons etc, do not get covered up by the TEdit. 
And also be aware that there will be a bit of "flashing" 
if you do use an OwnerDraw ListBox}

 {This is in a Popup menu.}
 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;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования