AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Usereingaben im TListView

Ein Thema von messie · begonnen am 3. Dez 2009 · letzter Beitrag vom 9. Dez 2016
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Usereingaben im TListView

  Alt 3. Dez 2009, 11:20
Moin,

ich wollte Userzugriffe auf ein ListView im Report-Style zulassen, so dass dort Daten eingegeben und geändert werden können.

Geht aber nicht. Es gibt aber eine property ReadOnly und ein Hilfekapitel, was das Editieren beschreibt.

Kann mal jemand das Brett vor meinem Kopf abschrauben bzw die Wand wegschieben?

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: bei Walsrode
165 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Usereingaben im TListView

  Alt 3. Dez 2009, 11:42
Hallo,

also bei mir eben zusammengeklickt und ist editierbar. Ist allerdings ein wenig tricky das Teil zu überreden, dass wir in den Editmodus wechseln wollen.

Die Listview muß natürlich auch Items beinhalten, die man editieren kann. Ohne gehts imho nicht, die müsste man vorher mit lv.Items.Add hinzufügen.

Mehrfacher Mausklick geht (RS2007) meist, F2-Taste bei mir gar nicht. Obwohl man das ja nachrüsten könnte und bei F2 das Teil in den Editmodus schaltet.

Delphi-Quellcode:
procedure TForm1.ListView1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_F2 then
     ListView1.Items[0].EditCaption;
end;
Carsten
  Mit Zitat antworten Zitat
nanix
(Gast)

n/a Beiträge
 
#3

Re: Usereingaben im TListView

  Alt 3. Dez 2009, 11:42
Explain it a bit more i also use listview and i might help..
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Usereingaben im TListView

  Alt 3. Dez 2009, 12:18
Zitat von HondaGL1:
Ist allerdings ein wenig tricky das Teil zu überreden, dass wir in den Editmodus wechseln wollen.
Ja, das Ding scheint verbeamtet zu sein und ist zur Dienstzeit nur schwer wach zu bekommen.
Wenn ich im Ereignis OnEditing einen modalen Aufruf (ShowMessage'Tach!') einbaue, ist der Editiermodus anschließend aktiv.


Ich kann es jetzt so lösen:
Delphi-Quellcode:
procedure TForm1.ListView1Click(Sender: TObject);
begin
  if assigned(ListView1.Selected) then
  begin
    ListView1.Selected.EditCaption;
  end;
end;
Ich würde gerne dasselbe auch für die SubItems machen. Gibt es da einen Ansatz?

@nanix: Problem was to activate the edit mode. This is fixed but I even would like to use the edit-mode for subitems, too


Danke, Messie
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Usereingaben im TListView

  Alt 3. Dez 2009, 12:38
Ich glaube Subitems kann man nicht editieren. Wäre ein StringGrid keine Alternative? Dies ist dafür - unteranderem - gedacht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nanix
(Gast)

n/a Beiträge
 
#6

Re: Usereingaben im TListView

  Alt 3. Dez 2009, 12:41
Yes you cant edit subitems..
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Usereingaben im TListView

  Alt 3. Dez 2009, 12:57
Zitat von Luckie:
Ich glaube Subitems kann man nicht editieren. Wäre ein StringGrid keine Alternative? Dies ist dafür - unteranderem - gedacht.
Ja, Du hast recht: soeben gefunden

Zitat von MSDN:
Im Gegensatz zu ListViewItem-Objekten können ListViewItem.ListViewSubItem-Objekte nicht direkt vom Benutzer bearbeitet werden.
Ich werde wohl ein StringGrid nehmen. Ist 'ne Frage der Optik, weil ich die Listviews bereits mehrmals verwendet habe. Das sieht schon anders aus...

Grüße, Messie
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Usereingaben im TListView

  Alt 3. Dez 2009, 13:13
Hallo,

dann nimm den Allestöter TVirtualStringTree.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von isilive
isilive

Registriert seit: 15. Okt 2008
Ort: Österreich
192 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Usereingaben im TListView

  Alt 9. Dez 2016, 22:13
Ich weiss der Thread ist alt, aber vielleicht kommt jemand (zB über die Suchfunktion) hierher.
Ich möchte auch den Inhalt einer Listview editieren - und bin zu folgender (Not-)Lösung gekommen:

Wenn die zu editierende Spalte fix ist, kann man zum Beispiel eine Inputbox verwenden und die Eingabe dann in's Listview zu schreiben.

Delphi-Quellcode:
procedure Change_Cell (AListView: TListView; const ARowIndex, AColIndex: Integer; const ANewContent: string);
// change content of a listview cell. colIndex 0 = leftmost column (caption)
var
  vItem: TListItem;
begin
  if aRowIndex < 0 then exit;
  if aRowIndex+1 > AListView.Items.Count then exit;
  // check ist wichtig. Denn bei ungültigem Index kommt sonst eine Zugriffsverletzung.
  vItem := AListView.Items[ARowIndex];

  if (AColIndex < 0) or (AColIndex > vItem.SubItems.Count) then
    begin
      messageDlg('Column doesnt exist.' , mtError, [mbOK], 0);
      exit;
    end;
  // change content of the listview:
  // lets use 0,1,2,3,... and translate to: caption,0,1,2,...
  if AColIndex=0 then
      vItem.Caption := ANewContent
  else
      vItem.SubItems[AColIndex-1] := ANewContent;
end;


procedure TForm1.ListView1Click(Sender: TObject);
var temp : string;
    i:integer;
begin
  if assigned(ListView1.Selected) then
  begin
    temp := inputbox('Fenstertitel','Enter name:','');
    i := listview1.Selected.Index;
    Change_Cell(ListView1, i, column, temp);
  end;
end;
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten API wie ein Stolperstein wirken.

Geändert von isilive (10. Dez 2016 um 02:24 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz