Delphi: Tabellendaten in die Zwischenablage kopieren

Nicht immer kann man alle Wünsche eines Anwenders vorhersehen, und dies bei der Präsentation der Daten im jeweiligen Programm berücksichtigen, ob bei den verwendeten Charts, Reports oder auch bei weiterführenden Auswertungen wie Summensalden. Hier ist es sinnvoll, um ein Programm nicht übermäßig aufzublähen, in dem man versucht jeden Einzelwunsch zu erfüllen, einfach entsprechende Routinen einzubauen, mit denen man die Daten einer Tabelle, welche oft mithilfe eines Grids oder einer entsprechenden Liste, präsentiert werden, einfach in die Zwischenablage kopieren kann.

Von hier aus kann der Anwender die Daten dann leicht in ein Drittprogramm einfügen, wo er die Daten etwa für eine Präsentation aufbereiten kann oder mithilfe eines Tabellenkalkulationsprogramms nach Herzenslust nach seinen Wünschen bearbeiten kann.

3 Beispielroutinen (Delphi) zeigen, wie einfach dies möglich ist, am Beispiel eines NextGrids (Bergsoft) oder einer AdvOutlookList (TMS) – ein Anpassen an eingebaute oder andere Grids oder Listen sollte aber für niemanden ein Problem darstellen.

uses …, clipbrd;

procedure CopyToClipBoard(const xGrid: TNextGrid); overload;
procedure CopyToClipBoard(const xGrid: TAdvOutlookList); overload;

procedure copyToClipBoard(const xGrid: TAdvOutlookList); overload;
var
s: string;
g, x,i: Integer;
Inhalt: TStrings;
begin
if xGrid.GroupCount=0 then exit;
s := “;
for x := 0 to xGrid.Columns.Count – 1 do
s := s+xGrid.Columns[x].Caption + #9;
s := s + #13#10;
for g := 0 to xGrid.GroupCount – 1 do
begin
if xGrid.Groups[g].ChildCount>0 then
begin
for x := 0 to xGrid.Groups[g].ChildCount – 1 do
begin
Inhalt:=xGrid.Groups[g].ChildItem[x];
for I := 0 to Inhalt.Count-1 do
s:=s+Inhalt[i]+#9;
s:=s+#13#10;
end;
end;
end;
clipboard.AsText:=s;
end;

procedure copyToClipBoard(const xGrid: TNextGrid);
var
s: string;
r, c: Integer;
begin

if xGrid.RowCount > 0 then
begin
s := “;
for r := 0 to xgrid.Columns.Count – 1 do
s := s + Trim(xGrid.Columns[r].Header.Caption) + #9;
s := s + #13;
for r := 0 to xgrid.RowCount – 1 do
begin
for c := 0 to xGrid.Columns.Count – 1 do
s := s + Trim(xGrid.Cell[c, r].AsString) + #9;
s := s + #13;
end;
Clipboard.AsText := s;
end;
end;

Natürlich lässt sich das Ganze noch individueller gestalten, zum Beispiel könnte man über einen Parameter festlegen, ob die Spaltenüberschriften ausgegeben werden sollen oder nicht, oder man könnte nur bestimmte Abschnitte, etwa die aktuell markierte Zeile exportieren usw.

Aktuelle Top Aktionen bei Acer, HP, Lenovo, Bitdefender & Co

Notebook & PC Angebote:
» HP Extra Aktion: 100 Euro Extra sparen bei HP Notebooks ab 999 Euro. Gutscheincode und alle Infos hier im HP Store
» Top bei Otto: Sehr gute HP Notebook Angebote mit Extras wie 4 Jahre Garantie und mehr
» Aktion im Lenovo Store: Bis zu 15% auf ausgewählte und recht gute Artikel (IdeaPad und Yoga Notebooks, Tablet PCs, Gaming Notebooks und PCs)
» Große Rabattaktion bei Acer: bis 21.05.2018 gibt es 15% Rabatt auf ultraschlanke Notebooks der Acer Swift Serie
» Notebooksbilliger.de WM Special:Jede Woche 11 neue Top Angebote>
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick

Aktuelle Bitdefender Aktionen:
» Neue Aktion: Bitdefender 39 Euro Flat mit 5 Geräten
» Bitdefender +1 Jahr dazu-Aktion
» Die neue Bitdefender 40% und mehr Rabatt Aktion
» Top für neue PCs! Bitdefender Internet Security 2018 PC Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95

Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Avira Antivirus - Ihr Virenschutz 2018

Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.