Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Suche Tabellen-VCL mit automatischer Sortierung (https://www.delphipraxis.net/118421-suche-tabellen-vcl-mit-automatischer-sortierung.html)

blackdrake 7. Aug 2008 13:18


Suche Tabellen-VCL mit automatischer Sortierung
 
Hallo.

Ich suche eine VCL, die eine mehrspaltige Tabelle erstellt. Jedoch sollte sie nicht wie Excel wirken, sondern eher wie der Windows Explorer bei der Detailansicht.

Mehrfachauswahlen sollten möglich sein.

Das Wichtige ist die automatische Sortierung in zwei Richtungen je Spalte. Der Benutzer soll die Datensätze nach seinem Ermessen Anordnen dürfen, ohne dass ich mit Bubblesort etc. rumhantieren muss.

Zusätzliche Anforderung: Ich habe nur die kostenfreie Turbo-Delphi Version. Die VCL muss also dynamisch in den Code einbindbar sein (ist das so ohne Weiteres bei Disclosed-Source-VCLs möglich?)

Kennt da jemand was feines?

PS: Ich kenne Torry.net zwar, aber mir fehlen Begriffe, wie man eine solche "Explorer-Style-Tabelle" VCL nennt.

Gruß
blackdrake

DeddyH 7. Aug 2008 13:27

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
Meinst Du so etwas: http://www.priyatna.org/sortlistview.php?

mkinzler 7. Aug 2008 13:33

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
Ein TlistView oder der VirtualTreeView

blackdrake 7. Aug 2008 14:24

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
Zitat:

Zitat von DeddyH

Hallo.

Vielen Dank. Genau sowas suche ich. Einfach aufgebaut und gut handzuhaben.

Ich hab aber irgendwie ein Problem mit der Einbindung. Ich habe mir die Demo-Application abgeschaut, bekomme aber diese kleinen "Sortierpfeile" nicht hin. Ich habe aus der DFM alles rausgeholt.

Das Problem ist, dass ich keine fremden VCLs einbinden kann, weswegen ich die Demo nicht direkt öffnen kann.

So sieht meine Test-Anwendung aus:

Delphi-Quellcode:
uses SortListViews, XPMan;

procedure TForm1.SortListView1CustomSort(Sender: TObject;
  ColIndex: Integer; Str1, Str2: String; var Res: Integer;
  var Handled: Boolean);
var
  n1, n2: Integer;
begin
  if (ColIndex = 2) then
  begin
    n1 := StrToIntDef(Str1, 0);
    n2 := StrToIntDef(Str2, 0);
    if (n1 = n2)
      then Res := 0 else
    if (n1 > n2)
      then Res := 1
      else Res := -1;
    Handled := True;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  SortListView1: TSortListView;
begin
  SortListView1 := TSortListView.Create(Form1);

  SortListView1.Parent := Form1;
  SortListView1.Top := 20;
  SortListView1.Left := 20;
  SortListView1.Width := 300;
  SortListView1.Height := 500;

  SortListView1.ViewStyle := vsReport;
  SortListView1.RowSelect := True;
  SortListView1.ReadOnly := True;
  SortListView1.HideSelection := False;
  SortListView1.OnCustomSort := SortListView1CustomSort;

  with SortListView1.Columns.Add do
  begin
    Caption := 'Blubb';
    Width := 150;
  end;
  with SortListView1.Columns.Add do
  begin
    Caption := 'Blubb';
    Width := 100;
    Alignment := taRightJustify;
  end;

  with SortListView1.Items.Add do
  begin
    Caption := 'Item 1';
    SubItems.Add('aaaaa');
    SubItems.Add('12345');
    SubItems.Add('kkkkk');
  end;
  with SortListView1.Items.Add do
  begin
    Caption := 'Item 2';
    SubItems.Add('iiiii');
    SubItems.Add('72334');
    SubItems.Add('sjfjs');
  end;
  with SortListView1.Items.Add do
  begin
    Caption := 'Item 3';
    SubItems.Add('uuiiu');
    SubItems.Add('92843');
    SubItems.Add('jhase');
  end;
  with SortListView1.Items.Add do
  begin
    Caption := 'Item 4';
    SubItems.Add('iouri');
    SubItems.Add('28342');
    SubItems.Add('lkasj');
  end;
  with SortListView1.Items.Add do
  begin
    Caption := 'Item 5';
    SubItems.Add('ooooo');
    SubItems.Add('91929');
    SubItems.Add('nsjsk');
  end;

  // SortListView1.Refresh;
end;
In der DFM der Demo steht auch nur folgendes:

Code:
  object SortListView1: TSortListView
    Left = 16
    Top = 24
    Width = 465
    Height = 337
    Columns = <
      item
        Caption = 'Column 1'
        Width = 100
      end
      item
        Caption = 'Column 2'
        Width = 100
      end
      item
        Alignment = taRightJustify
        Caption = 'Numbers'
        Width = 100
      end
      item
        Caption = 'Column 4'
        Width = 100
      end>
    HideSelection = False
    ReadOnly = True
    RowSelect = True
    SmallImages = ImageList1
    TabOrder = 0
    ViewStyle = vsReport
    OnCustomSort = SortListView1CustomSort
  end
Gruß
blackdrake

DeddyH 7. Aug 2008 14:42

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
Schau doch mal in die Sourcen der Demo, da gibt es auch nur eine Sortierroutine, die aussieht wie Deine. Ich kann mir das aber gegen 17:30 zu Hause gerne in Ruhe nochmal ansehen.

blackdrake 7. Aug 2008 14:58

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von DeddyH
Schau doch mal in die Sourcen der Demo, da gibt es auch nur eine Sortierroutine, die aussieht wie Deine. Ich kann mir das aber gegen 17:30 zu Hause gerne in Ruhe nochmal ansehen.

Hallo.

Die Sortierfunktion kommt auch von der Demo. Ich habe fast alles direkt übernommen. Aber bei mir kommen keine Pfeile. Die Ressourcen für die Up/Down-Pfeile sind in meiner EXE korrekt verlinkt. Ebenfalls habe ich alle gesetzten (!) DFM-Eigenschaften übernommen. Vielleicht fehlt eine Standard-Property, die nicht in der DFM steht, aber beim dynamischen Erzeugen auf False steht. (Wobei ich nichts dergleichen gefunden habe)

Gruß
blackdrake

DeddyH 7. Aug 2008 15:01

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
Es gibt nur eine weitere Published-Property und ist das Event OnCustomSort.

DeddyH 7. Aug 2008 16:56

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
So, habe mir die Kompo gerade mal installiert. Einfach eine davon auf eine leere Form und 2 Columns eingefügt, schon erscheinen die Pfeile. Also sind alle Standardeigenschaften bereits korrekt vorbelegt. Hast Du es mal mit Erzeugen statt Kompilieren versucht?

blackdrake 7. Aug 2008 16:59

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
Hallo.

Ja, ich erzeuge in der Regel immer.

Schau dir doch mal meinen Source (ZIP-File) von oben an. Er ist mit Turbo-Delphi erstellt und bindet die VCL dynamisch ein. Exe ist auch dabei.

Gruß
blackdrake

DeddyH 7. Aug 2008 17:07

Re: Suche Tabellen-VCL mit automatischer Sortierung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab' s! Verschieb mal im Source der Kompo das Loaded nach Public und rufe es im OnShow der Form auf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:26 Uhr.
Seite 1 von 2  1 2      

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