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 Listview Spalte ausblenden (visible := false) (https://www.delphipraxis.net/17868-listview-spalte-ausblenden-visible-%3D-false.html)

Plague 10. Mär 2004 19:39


Listview Spalte ausblenden (visible := false)
 
Guten Abend,

ich habe mal eine Frage. Ist es möglich, eine Spalte (die erste) auszublenden? Ich möchte, dass die Daten in der Spalte (unsichtbar existieren bzw. über MySQL abgefragt werden). Deshalb sollte die Spalte einfach auf so eine Art visible := false gesetzt werden. Geht das? Wenn ja wie? :gruebel:

Danke
Thomas

fkerber 10. Mär 2004 19:44

Re: Listview Spalte ausblenden (visible := false)
 
Hi!

Vielleicht kannst du ja einfach die Spaltenbreite auf 0 setzen?


Ciao fkerber

Plague 10. Mär 2004 19:46

Re: Listview Spalte ausblenden (visible := false)
 
Wäre vielleicht als letzte Variante eine Möglichkeit.
Aber das Ausblenden wäre mir lieber...

Plague 10. Mär 2004 19:53

Re: Listview Spalte ausblenden (visible := false)
 
Habe jetzt mal die Variante mit der Breite = 0 ausprobiert.
Ist nicht möglich. Die mindestbreite liegt bei 50.
Aber trotzdem danke für den Tipp...

fkerber 10. Mär 2004 20:01

Re: Listview Spalte ausblenden (visible := false)
 
Hi!

Man kann ja auch noch minwidth einstellen.
Ist selbst damit nur >50 möglich? (Hab leider keine bessere Idee, ist nur so mal "geraten", sorry)

Ciao fkerber

M-O-D 10. Mär 2004 22:04

Re: Listview Spalte ausblenden (visible := false)
 
Hi,

versuch doch die Listview anders zu füllen. Die Spalten die "unsichtbar" sein sollen einfach ans ende. :wink:
Also z.B.... Du hast 2 Sichbare Einträge(Spalten) und einen auf den Du mit einer Komponente oder so zugreifen möchtes. Dann erstellst Du ein LV mit 2 Spalten, belegst aber 3 Spalten. Die 1. Spalte ist die Caption(Sichtbar), die 2. Spalte das SubItem[0](Sichtbar) und die 3. Spalte ist Subitem[1](unsichtbar aber trotzdem da!!!).
Du könntest also auch 10 Spalten füllen. Wenn Du nur 3 Spalten im Editor einstellst, sind die restlichen 7 automatisch unsichtbar aber vorhanden. Du kannst also mit SubItems[6] auf den Inhalt der unsichtbaren Spalte zugreifen. :thuimb:

Ich mache das auch öfters.. in der letzten Spalte wird zum Beispiel eine Dateiposition abgespeichert um beim click auf selected.Subitems[] zugreifen zu können.

CU :hi:

Sharky 11. Mär 2004 05:12

Re: Listview Spalte ausblenden (visible := false)
 
Hai Plague,

die große Frage: Warum möchtest Du eine Spalte die nicht angezeigt wird?
Deine wahrscheinliche Antwort:
Zitat:

Ich möchte die ID des Datensatzes dort speichern.
Daruf sage ich:
Zitat:

Das ist aber keine gute Lösung ;-)
Jetzt Du:
Zitat:

Wie soll ich es denn machen?
Ich wieder:
Zitat:

Schaue dir mal die Eigenschaft .Data von TListItem an.
Du schon wieder:
Zitat:

Wie geht das denn genau?
Ich wühle in meinem Quellcode und poste:

Delphi-Quellcode:
procedure TFRM_Main.ShowAnreden;
var
  LI: TListItem;
  LC: TListColumn;
begin
  with DataModule1.ZReadOnlyQuery1 do
  begin
    close;
    SQL.Text := 'SELECT * FROM anreden ORDER BY anrede';
    open;
    ListView1.Items.BeginUpdate;
    Listview1.Items.Clear;
    Listview1.Columns.Clear;
    LC := ListView1.Columns.Add;
    LC.Caption := 'Anrede';
    LC.Width := 150;
    LC := ListView1.Columns.Add;
    LC.Caption := 'Briefanrede';
    LC.Width := 250;
    while not (EOF) do
    begin
      LI := Listview1.Items.Add;
      LI.ImageIndex := 0;
->>>     LI.Data := Pointer(FieldByName('id').AsInteger); // ID speichern!
      LI.Caption := FieldByName('anrede').AsString;
      LI.SubItems.Add(FieldByName('briefanrede').AsString);
      Next;
    end;
    ListView1.Items.EndUpdate;
    close;
  end;
end;

Und so kommst Du an die ID:
Delphi-Quellcode:
procedure TFRM_Main.ListView1DblClick(Sender: TObject);
var
  id : Integer;
begin
  id := Integer(ListView1.Items[ListView1.ItemIndex].Data);
end;
:stupid:

Wenn ich jetzt total daneben gelegen habe war das schöne Gespräch für die Katz :-D

Plague 11. Mär 2004 15:22

Re: Listview Spalte ausblenden (visible := false)
 
@Sharky

Also das Programm kann ohne Probleme erzeugt werden, aber die Spalte (ID) wird immer noch angezeigt. Muss ich eventuell noch eine andere Einstellung treffen?

Danke
Thomas

Sharky 11. Mär 2004 15:33

Re: Listview Spalte ausblenden (visible := false)
 
Zitat:

Zitat von Plague
...Also das Programm kann ohne Probleme erzeugt werden, aber die Spalte (ID) wird immer noch angezeigt. Muss ich eventuell noch eine andere Einstellung treffen?....

Hai Plague,

bei meinem Code gibt es keine Spalte für die ID!! Die ID wird in der Eigenschaft .Data der Zeile gespeichert!

Plague 11. Mär 2004 15:39

Re: Listview Spalte ausblenden (visible := false)
 
Sorry war mein Fehler. Es war schon richtig, ich hab es nur in die Procedure für den falschen Button geschrieben. Jetzt klappt es wunderbar. Danke!!!


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