Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

TADVStringGrid oder TNextGrid

  Alt 12. Feb 2007, 13:07
Hallo,

ich hatte den Auftrag ein Programm optisch etwas aufzupeppen und dazu die o.g. Gridkomponenten gekauft und beide in einem Projekt ausprobiert.
Vielleicht steht der eine oder andere vor dem gleichen Problem deshalb hier meine Erfahrungen.
Wenn jemand ergänzt, wäre ich dankbar.

Ausprobiert wurde noch das Expressquantrum Grid.
Sicherlich die mächtigste aber auch die bezüglich Einarbeitung aufwendigste Lösung.
Dabei ist nicht der einmalige Einarbeitungsaufwand signifikant, sondern der Aufwand für Dritte bei der Programmpflege.

Jetzt zu TADVStringGrid oder TNextGrid.

Beide sind für die gewünschte Aufgabe gleichermaßen geeignet und beide haben kleine Macken, sprich Bugs.
ADV ist umfangreicher, Next verfolgt einen moderneren Ansatz.
Die Objectorientierung von Next ist fortgeschrittener. Hier sind Spalten z.B. Objecte, wärend sie bei ADV quasi Variablen sind.

ADV: Cells[1,2] := inttostr(i);
Next: Cells[1,2].asInteger := i;

Gerade wenn das Grid vom Anwender konfiguriert werden soll, bietet Next einige Vorteile.

So kann eine Column über ihren Namen angesprechen werden.

CellbyName('lfd',1].asInteger;

Dieser Name ist konstant und damit unabhängig von der physischen Position im Grid.
Zusätzlich wird zwischen Columnindex und Position unterschieden.
Die tatsächliche Position steht in einer eigenen Variablen.

Bei ADV ist zum Verschieben von Columns eine aufwendigere Programmierung notwendig.
In einer selbst zu entwickelnden Datenstruktur muss Position/Index der Spalte gehandelt werden.

Next dürfte im Handling etwas schneller sein, da der Spalte bereits zur Entwurfszeit ein Editor zugeordnet wird und
dazu notwendige Parameter einmalig initialisiert werden.
Eine Combobox wird z.B. einmalig für die Spalte initialisiert.
Das führt natürlich dazu, dass es nur schwer oder nicht möglich ist, in der gleichen Spalte, abhängig vom Datensatz,
unterschiedliche Editoren zu verwenden.

Bei ADV wird beim Selektieren einer Cell über einen Event der Editortyp abgerufen.
Das Comboboxtemplate der Gridsteuerung ist nur einmal vorhanden und die Liste muss bei jedem Aktivieren initialisiert
werden.
Vorteil der Inhalt kann abhängig von der Row variant sein.

In Next ist das RowMove eleganter gelöst.
Einmal wird eine rote Linie für die Einfügeposition angezeigt und zum anderen kann der Drag/Drop Vorgang in jeder
beliebigen Spalte der Quellzeile aktiviert werden.

ADV benötigt eine fixe Spalte und nur in dieser wird ein Pfeil für die neue Position angezeigt.
Ist keine fixe Spalte vorhanden, so muß das Verschieben über den Dragdrop Mechanismus erfolgen.
ADV handelt in diesem Fall ein automatisches Scrollen im Grid bei Erreichen der obersten oder unterten Zeile im sichtbaren Bereich.
Bei Next ist hier eigene Programmierung angesagt.

ADV bietet mehr optische Möglichkeiten als Next. So z.B. Farbverläufe in Kopfzeilen oder im Grid.
Next läßt zwar eine Style-Auswahl zu, die sieht aber ohne Eigeninitative etwas altbacken aus.

Die Darstellung von Nodes - Spalten geht bei beiden, sieht aber im ADV etwas eleganter aus.

ADV beherrscht das Row und das Col Merging, Next benötigt hier mehr Aufwand.

Also im großen und ganzen ein Unentschieden.
Wobei ADV in der Optik und Next in der Funktionalität punktet.

Wie sind eure Erfahrungen?

Mit Gruß
Peter
  Mit Zitat antworten Zitat