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. |
Re: frage zu Tlistview!
Hallo,
welche Delphi-Version benutzt du ? Wenn ich auf TListView doppelklicke bekomme ich eine Liste mit den Columns. Gruß |
Re: frage zu Tlistview!
delphi 6!
ich meine in der laufzeit! es ist schon ein eintrag in der listwiev erhalten! bsp:
Delphi-Quellcode:
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!
0___1___2
a a a lg. |
Re: frage zu Tlistview!
Delphi-Quellcode:
Gruß
Listview1.Column[2].Caption := 'b';
|
Re: frage zu Tlistview!
jo!
aber wie kann ich während der laufzeit den eintrag ändern? lg. |
Re: frage zu Tlistview!
Also den Eintrag und nicht die Columns ?
Delphi-Quellcode:
Gruß
Listview1.Items.Item[0].SubItems[1] := 'b';
|
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; |
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.
|
Re: frage zu Tlistview!
ihr versteht nicht ganz was ich meine *g
also:
SQL-Code:
und was ich möchte ist, während der laufzeit die einträge ändern zu können!
0__1__2 = Caption
a a a = Einträge genauer:
SQL-Code:
dadruch werden text einträge in die listview eingetragen!
litem1 : TlistItem;
procedure Tpcheck.putbtClick(Sender: TObject); begin litem1 := listview1.Items.Add; litem1.Caption := edit1.Text; litem1.subitems.Add(edit2.text); end; 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. |
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ß |
Re: frage zu Tlistview!
so als wäre es ein Editfeld *g
lg. |
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ß |
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. |
Re: frage zu Tlistview!
push!
pls help :/ lg. |
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; |
Re: frage zu Tlistview!
danke bitsetter klappt alles super :D
nur das prob die farbe lässt sich nicht speichern?:/ lg. |
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ß |
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:
damit lässt sich in der listview die erste zeile ändern! was ich möchte ist, dass ich jede x-belibige zeile ändern kann!
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; ich wusste mal wie (irgendwas mit focused) aber es klappt nicht :( vielleicht wisst ihr ja weiter danke und lg. |
Re: frage zu Tlistview!
Hi,
meinst du etwa sowas?
Delphi-Quellcode:
if ListView1.SelCount> 0 then
listview1.Selected.SubItems[0]:= Edit1.Text; |
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