Thema
:
Delphi
Listbox editierbar machen
Einzelnen Beitrag anzeigen
Alexander
Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
Turbo Delphi für .NET
#
3
Re: Listbox editierbar machen
8. Sep 2003, 19:53
Probier das mal so:
zusammenfalten
·
markieren
Delphi-Quellcode:
{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
;
Alexander
Zitat
Alexander
Öffentliches Profil ansehen
Besuche die Homepage von Alexander!
Mehr Beiträge von Alexander finden