Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Suche ein StringGrid das wie eine ListBox behandelt wird

  Alt 4. Okt 2007, 07:46
Guten Morgen

Zitat von Jackie1983:
aber es gibt kein Funktionen wie indexofobject(spalte); oder Delete(zeile)
es wird dein Mangel an Programmiererfahrung sein, dass du DeleteRow nicht als Analogie zu Delete(Zeile) erkennst. Bei deiner Suche nach IndexOfObject(spalte) musst du wissen, dass beim StringGrid jeder Zelle ein Object zugeordnet werden kann. Wenn du nur ein Object je Spalte benötigst, dann nimm die Zelle mit dem Index 0:

Delphi-Quellcode:
with StringGrid do
begin
  Objects[iCol, 0] := Pointer(42);
  idx := Rows[0].IndexOfObject(Pointer(42));
  ShowMessage(BoolToStr(idx = iCol));
end;
// Getippt und nicht getestet
Ich habe beim Verlinken der Unit GridUtils offenbar eine ältere Fassung erwischt. Da ich den Beitrag mit der neuesten Fassung selbst nicht lokalisieren kann, hänge ich die Unit nochmal an.

Zitat von Cyberbob:
Was spricht gegen ein TListView?
Die ListView ist kein genereller Ersatz für ein StringGrid. Sie ist vornehmlich als Kernbaustein des Windows Explorers mit W95 eingeführt und seither stetig weiterentwickelt worden. Das StringGrid hingegen ist die Implementierung einer Sparse Matrix. Dabei handelt es sich um einen abstrakten Datentyp, der speziell auf die Verwaltung dünn besiedelter Matrizen ausgelegt ist. Als generellen Ersatz würde ich eher den VirtualTreeView von Mike Lischke sehen, aber den kann ich keinem Programmieranfänger empfehlen.

Freundliche Grüße
Angehängte Dateien
Dateityp: pas gridutils_197.pas (4,5 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat