PDA

Visualizza la versione completa : [DELPHI] ListView e modifica "in place" dei SubItems


VaLvOnAuTa
11-05-2006, 16:09
Mi trovo di fronte ad una piccola questione.
Ho bisogno di rendere editabili i subitems di una listview al click di un item di un popup menu.
Ho pensato di creare "on the fly" un TEdit che contenga il testo da editare e che modifichi il testo e di autodistrugga nel momento in cui si schiaccia il tasto "invio".
Sarebbe carino che il TEdit sia inglobato come elemento della ListView. Però non ho idea di come individuare la "cella" selzionata del listview e come renderla "parent" dell'edit.

P.S. so che potrei usare una stringgrid, se non c'è soluzione a ciò che ho chiesto credo che userò quella. Ma l'idea che m'è venuta è più carina :fagiano:

P.P.S Il codice che m'è venuto fino a questo momento (un pò scarsino a dir la verità :stordita: ) è questo:

procedure TMain.Modifica1Click(Sender: TObject);
var
e: TEdit;
begin
e := TEdit.Create(ListView1);
e.Parent := ListView1;
e.BorderStyle := bsNone;
e.Focused := true;
e.OnKeyPress := ???
end;

VaLvOnAuTa
11-05-2006, 17:00
Ok ci ho già rinunciato. :fagiano:

Quel poco che ho trovato on-line mi ha scoraggiato :D

alka
11-05-2006, 17:51
Prova a leggere questo articolo (http://delphi.about.com/library/weekly/aa053105a.htm) che spiega come posizionare un controllo TProgressBar (potrebbe essere un inizio), oppure questo (http://delphi.about.com/od/adptips2005/qt/listboxedit.htm), riferito ad una TListBox, ma forse adattabile con un lavoro appropriato anche al controllo TListView.

Ciao! :ciauz:

VaLvOnAuTa
11-05-2006, 18:49
Grazie mille alka.
Purtroppo il problema riguarda più che altro la selezione della cella (insomma individuare il subitem esatto). A quanto pare non è facilmente individuabile a meno che non si vogliano fare calcoli particolari sulla posizione del mouse e la larghezza delle colonne.

Loading