Autor |
Beitrag |
johannes
      
Beiträge: 26
|
Verfasst: So 06.10.02 14:00
Liebe Forenmitglieder,
habe in einem Formular 2 ListViews.
Nun selektiere ich in einem LV einen Eintrag.
Möchte nun den Namen des ListViews zurück bekommen in den
ich den Eintrag selektiert habe.
Habe in der Hilfe , in verschiedenen Foren (suchen !) und in verschiedenen
Tutorials gesucht , ohne Ergebnis.
Möglicherweise weiß jemand von Euch wie dies geht?
Vielen Dank
Johannes
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 06.10.02 15:10
ShowMessage(Listview1.Name);
|
|
johannes 
      
Beiträge: 26
|
Verfasst: So 06.10.02 23:59
Hallo Luckie,
vielen Dank für deine Antwort.
Die Name Eigenschaft war mir bekannt.
Wenn ich in dem OnClick Ereignis des ListViews den Namen möchte
z.Bs.so,
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TfrmLmwEquipmentauswahl.LV_OG_Gr_neuClick(Sender: TObject); var a : String; LV : TListView; begin LV := (Sender As TListView); a := LV.Name; ShowMessage(a); end; |
kein Problem , klappt super.
Bei einem Button Ereignis klappt die nicht.
MfG
johannes
(07.10.02 00:33 Tino) Code-Tags hinzugefügt.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 07.10.02 00:37
johannes hat folgendes geschrieben: | Bei einem Button Ereignis klappt die nicht. |
Beim dem Parameter Sender handelt es sich immer (meistens) um das Objekt welches das Event ausgelöst hat. Also beim OnClick-Event der ListView zeigt der Parameter Sender auf das ListView. Wenn Du nun aber die Procedure LC_OG_Gr_neuClick dem OnClick-Event des Buttons zuweist und du nun auf den Button klickt zeigt der Parameter Sender nicht mehr auf die ListView sondern auf den Button weil der Button das Event auslöst. Also kann der Code nicht funktionieren. Was willst Du denn jetzt genau beim Klick auf den Button wissen?
Gruß
TINO
|
|
johannes 
      
Beiträge: 26
|
Verfasst: Mo 07.10.02 08:49
Hallo Tino,
vielen Dank für die schnelle Antwort und deine Mühe.
Möchte den Namen des ListViews wissen in dem ich einen Eintrag
selektiert habe , damit ich ihn in einer Variablen weiterverarbeiten kann.
Ist dies möglich?
Vielen Dank und mit freundlichen Grüßen
johannes
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 07.10.02 10:31
Hallo Johannes,
mit der Eigenschaft Selected kannst Du prüfen ob in einer ListView ein Eintrag ausgewählt wurde:
Quelltext 1: 2: 3: 4:
| If ListView1.Selected <> nil Then { In der ListView1 ist ein Eintrag markiert } Else { In der ListView1 ist kein Eintrag markiert } |
Gruß
TINO
|
|
johannes 
      
Beiträge: 26
|
Verfasst: Mo 07.10.02 11:42
Hallo Tino,
das Problem ist , dass ich den Namen des ListViews brauche.
Bei ListView1.Selected <> nil ist ListView1 ja bekannt.
Klar , ich habe die ListView erstellt und weiß logischerweise den Namen.
Weil ich in dem Form jedoch mehrere LV habe brauche ich den jeweiligen
Namen des LV, bei einem ButtonClick wo ich einen Eintrag mit der Maus
selektiert habe.
Möchte aber nicht nerven , sorry.
Vielleicht ist dies auch gar nicht möglich.
Gruß
Johannes
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 07.10.02 11:58
Hallo,
ich verstehe nicht so ganz was Dein Ziel ist. Beschreibe doch mal was Du damit erreichen willst und was der User mit dem Form erreichen kann. Ich denke da gibt es eventl. einen anderen Lösungsweg.
Gruß
TINO
|
|
johannes 
      
Beiträge: 26
|
Verfasst: Mo 07.10.02 14:08
Hallo Tino,
Hier kurz was ich machen möchte, hoffe es kurz und verständlich rüberzubringen (gar nicht so einfach). 4 LV’s befinden sich in einer GroupBox , sie heißen LV1,LV2.....
Mit einem Button möchte ich nun Datensätze einlesen oder erneut einlesen wen sich an den Daten was geändert hat. Diese Proc liest aus einer Datenbank Datensätze in ein ListView ein.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| procedure p_Item_einlesen; var Item:TListItem; sSQL : String; begin Screen.Cursor := crHourglass; with frmLmwEquipmentauswahl do begin with DataModule1.qryTasks_OG_neu do begin Active := False; sSQL := 'SELECT * FROM T_Obergruppen'; SQL.Text := sSQL; Active := True;
First; while not Eof do begin *********************************** // hier möchte ich je nach dem, in was für ein LV ich einlesen will duch eine // Variable bestimmen was für ein LV gemeint ist. Das Problem ist wahrscheinlich // dass es sich hier um ein Object handelt ( Object.Items.Add ). Item := ListView1.Items.Add; //Item := Variable.Items.Add ************************************ if FieldValues['OG_Name_deu'] <> null then begin Item.Caption := (FieldValues['OG_ID']); Item.SubItems.Add(FieldValues['OG_Name_deu']); end; Next; end; end; end; Screen.Cursor := crDefault; end; |
Hoffe es ist nicht zu lang für das Forum.
Grüße johannes
(07.10.02 18:30 Tino) Code-Tags hinzugefügt.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 07.10.02 14:42
Im Prinzip müßtest du alle Listviews durchgehen und kucken in welchem etwas selektiert ist und dann den ausgeben, in dem etwas selektiert ist. Das Problem ist nur, dass in mehrere LV's gleichzeitig etwas selektiert sein kann.
Ich denke, es wäre einfacher, wenn du dir was anderes einfallen läßt.
|
|
johannes 
      
Beiträge: 26
|
Verfasst: Mo 07.10.02 15:44
Hi,
danke für die Antwort.
Viele Wege führen nach Rom.
Laß mir was anderes einfallen.
gruß johannes
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 07.10.02 15:58
Hi!
Kannst Du nicht im OnSelect-Ereignis jedes ListView in einer globalen Variable seinen Namen speichern lassen. Diese globale Variable enthielte dann aber immer nur den Namen des LV, indem zuletzt etwas selektiert wurde. Dann kannst Du doch über FindComponent diese ListView ansprechen.
Oder aber, du gehst alle Komponenten mit Components[i] durch, prüfst, ob sie LV sind und dann, ob etwas selektiert ist. Wenn ja, liest Du den Namen aus und führts Deine Aktionen aus.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 07.10.02 16:47
Der erste Vorschlag ist brauchbar, der zweite weniger, siehe mein Posting.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 07.10.02 17:20
Sorry, habe das Ganze nur überflogen.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|