Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi frage zu Tlistview! (https://www.delphipraxis.net/85158-frage-zu-tlistview.html)

Zero1 26. Jan 2007 19:09


frage zu Tlistview!
 
hi leute :)

weiß vielleicht jemand wie man einzelne colmuns in der Tlistview ändern kann?

wenn ich das prog starte und mach doppelclick bei z.b. column "3" , lässt sich nur column "0" editieren ?

und ich will nicht "0" sondern "3" ändern können *g

ich hoffe ihr versteht was ich meine :/

danke schon mal im vorraus!

lg.

MrKnogge 26. Jan 2007 20:02

Re: frage zu Tlistview!
 
Hallo,

welche Delphi-Version benutzt du ?
Wenn ich auf TListView doppelklicke bekomme ich eine Liste mit den Columns.

Gruß

Zero1 26. Jan 2007 20:37

Re: frage zu Tlistview!
 
delphi 6!

ich meine in der laufzeit!

es ist schon ein eintrag in der listwiev erhalten!

bsp:
Delphi-Quellcode:
0___1___2
a  a  a
und ich möchte während der laufzeit bei der colum "2" den eintrag a auf b ändern können! aber es lässt sich nur column "0" ändern! sonst keine weiteren!

lg.

MrKnogge 26. Jan 2007 20:42

Re: frage zu Tlistview!
 
Delphi-Quellcode:
Listview1.Column[2].Caption := 'b';
Gruß

Zero1 26. Jan 2007 20:49

Re: frage zu Tlistview!
 
jo!

aber wie kann ich während der laufzeit den eintrag ändern?


lg.

MrKnogge 26. Jan 2007 20:57

Re: frage zu Tlistview!
 
Also den Eintrag und nicht die Columns ?
Delphi-Quellcode:
Listview1.Items.Item[0].SubItems[1] := 'b';
Gruß

bitsetter 26. Jan 2007 21:17

Re: frage zu Tlistview!
 
Ich schätze mal du meinst EditCaption in meinem Beispiel wird jetzt der 2. colum geändert wenn man auf den Eintrag doppelklickt und ein Fenster erscheint. Im Listview gibt es dafür den Event onEdited.
Delphi-Quellcode:
procedure TForm1.ListView1Edited(Sender: TObject; Item: TListItem;
  var S: String);
begin
  Item.SubItems.Strings[1]:= s;
  s:= Item.Caption;//Reset
end;

Luckie 26. Jan 2007 23:35

Re: frage zu Tlistview!
 
Er meint, dass man zur Laufzeit in die Caption klickt und dann kann man den Eintrag editieren. Meines Wissens geht das mit dem Satbdardlistview nur mit der Caption, nicht mit den Subitems. Man könnte mal gucken, ob der Litsview von Mike Lischke das Editieren von Subitems unterstützt.

Zero1 27. Jan 2007 20:45

Re: frage zu Tlistview!
 
ihr versteht nicht ganz was ich meine *g

also:

SQL-Code:
0__1__2 = Caption
a a a = Einträge
und was ich möchte ist, während der laufzeit die einträge ändern zu können!

genauer:

SQL-Code:
litem1 : TlistItem;

procedure Tpcheck.putbtClick(Sender: TObject);
begin
litem1 := listview1.Items.Add;
litem1.Caption := edit1.Text;
litem1.subitems.Add(edit2.text);
end;
dadruch werden text einträge in die listview eingetragen!
und was ich jetzt will ist, während der laufzeit die text einträge ändern zu können!

vielen dank schon mal für eure hilfe :)

lg.

MrKnogge 27. Jan 2007 21:35

Re: frage zu Tlistview!
 
Wie möchtest du den Eintrag ändern, per Code oder als wäre es ein Editfeld ?
Zu beiden varianten wurde bereits etwas geschrieben, siehe mein letzten Post bzw. den von Luckie.

Gruß

Zero1 28. Jan 2007 00:23

Re: frage zu Tlistview!
 
so als wäre es ein Editfeld *g

lg.

MrKnogge 28. Jan 2007 00:50

Re: frage zu Tlistview!
 
Also von Haus aus unterstützt die TListView das nicht, daher schau dir mal, wie von Luckie empfohlen, die VirtualListView von Mike Lischke an.

Ein weiterer Weg wäre eventuell, dass du an der Position des Feldes einfach ein Edit zeichnest. In folgendem Thema geht es darum, eine Progressbar in einer Listbox zu zeichnen, dass kannst du ebenso mit einem TEdit machen:
http://www.delphipraxis.net/internal...ct.php?t=18522

Gruß

Zero1 30. Jan 2007 19:55

Re: frage zu Tlistview!
 
okay :) hat mit super geholfen :D

nun bleiben noch 2 fragen :(

hoffe ihr könnt mir wieder so super helfen :P


also frage 1:

wie kann ich das so einstellen das wenn zb ZEILE 2 makiert ist das nur in dieser zeile was geändert/verändert wird?



frage 2:

ich würd gerne per popupmenu die eine gewünschte zeile die farbe ändern aber irgendwie haut das nicht hin :/

hat da vielleicht jemand nen plan?

danke danke danke schon mal im voraus :)

lg.

edit
frage1 konnte ich gerade selber beantworten *g*
mit focused^^

lg.

Zero1 31. Jan 2007 22:24

Re: frage zu Tlistview!
 
push!

pls help :/

lg.

bitsetter 1. Feb 2007 13:16

Re: frage zu Tlistview!
 
Du kannst ja mal folgenden Code probieren, der gewählte Eintrag wird grün dargestellt.
Delphi-Quellcode:
         //onClick Ereigneis für das Menü
procedure TForm1.farbigmachen1Click(Sender: TObject);
begin
  RedrawWindow(ListView1.Handle, nil, 0, RDW_INVALIDATE);//alte Farbe löschen
  //ListView1.Tag speichert die Position des markierten Eintrages
  ListView1.Tag:= ListView1.ItemIndex+ 1;
end;
          //Event onCustomDrawItem im OI zuweisen
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if ListView1.Tag- 1= Item.Index then
  Sender.Canvas.Brush.Color := clLime
  else
  Sender.Canvas.Brush.Color := ListView1.Color;
end;

Zero1 2. Feb 2007 16:36

Re: frage zu Tlistview!
 
danke bitsetter klappt alles super :D

nur das prob die farbe lässt sich nicht speichern?:/


lg.

MrKnogge 2. Feb 2007 17:03

Re: frage zu Tlistview!
 
zero1, mach bitte zu jeder Frage einen neuen Thread auf, sonst weis hier am Ende keiner mehr um was es geht.

Gruß

Zero1 18. Nov 2007 20:00

Re: frage zu Tlistview!
 
hi und sry das ich diesen alten thread wieder hochschiebe aber durch den plattencrash hab ich alle datein verloren :(

und nu weiß ich nicht mehr weiter

es geht wieder um das gleiche nur diesmal weiß ich nicht wie ich jede x-belibige zeile ändern kann

mit der hilfe von MrKnogge...

Delphi-Quellcode:
procedure form1.BitBtn1Click(Sender: TObject);
begin
 if edit1.Enabled then
 listview1.Items.Item[0].SubItems[0] := edit1.text;
 if edit2.Enabled then
 listview1.Items.Item[0].SubItems[1] := edit2.text;
 if edit3.Enabled then
 listview1.Items.Item[0].SubItems[2] := edit3.text;
end;
damit lässt sich in der listview die erste zeile ändern! was ich möchte ist, dass ich jede x-belibige zeile ändern kann!

ich wusste mal wie (irgendwas mit focused) aber es klappt nicht :(

vielleicht wisst ihr ja weiter

danke und lg.

bitsetter 18. Nov 2007 20:51

Re: frage zu Tlistview!
 
Hi,

meinst du etwa sowas?
Delphi-Quellcode:
 if ListView1.SelCount> 0 then
   listview1.Selected.SubItems[0]:= Edit1.Text;

Zero1 18. Nov 2007 21:36

Re: frage zu Tlistview!
 
@bitsetter, Vielen DANK!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 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