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.

Werbung

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

Angebote bei Acer
» Großer Acer Herbst Sale:Bis zu 200 Euro Rabatt auf viele Acer Notebooks, Convertibles, Gaming Notebooks und PC, Monitore und mehr bei den Acer Herbst Angeboten bis 02.10.2018


Angebote bei HP
» HP Back To School 2018: Viele HP Notebooks, Convertibles und Drucker im Angebot


Angebote bei Lenovo
» Lenovo Top Wochenangebote: Heiße ThinkPad und IdeaPad Wochenangebote mit großer Auswahl und dicken Rabatten


Weitere Möglichkeiten
» Top bei Otto: Sehr gute HP Notebook Angebote, teils mit Extras wie 4 Jahre Garantie und mehr
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick


Aktuelle Bitdefender Aktionen:
» Top Angebot: Bitdefender "The Darkest Minds Promotion" mit kostenlosem Gewinnspiel und Angebot Total Security 2019 MultiDevice nur 39,99€ statt 79,99 Euro (50% Rabatt)
» Bitdefender Sommer-Aktion Version 2019 mit 15 Euro Rabatt auf Bitdefender Antivirus Plus 2019 (3 Geräte und 1 Jahr), 30 Euro Rabatt auf Bitdefender Internet Security 2019 (3 Geräte und 1 Jahr) und 40 Euro Rabatt auf Bitdefender Total Security Multi Device 2019 (5 Geräte und 1 Jahr)
» Bitdefender +1 Jahr dazu-Aktion
» Top für neue PCs! Bitdefender AntiVirus Plus Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95
Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Werbung
Bitdefender: 40% Rabatt auf die neue Total Security 2019

Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.