Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Markierten Text aus AdvStringGrid in Zwischenablage kopieren (https://www.delphipraxis.net/56927-markierten-text-aus-advstringgrid-zwischenablage-kopieren.html)

Koani 13. Nov 2005 16:03


Markierten Text aus AdvStringGrid in Zwischenablage kopieren
 
Hi ;)

ich habe hier ein kleines Problem mit einem TAdvStringGrid

Und zwar will ich den im EditMode markierten Text der aktuellen Zelle in die Zwischenablege befördern.
(Normalerweise mit Strg+C ganz einfach machbar, wäre da nicht das MainMenu, das diesen Hotkey belegt (soll auch so sein, denn das Programm soll je nachdem ob nur reiner Text einer Zelle oder mehrere Zellen auf einmal markiert wurden entsprechend richtig kopieren) :)

Leider gibt es keine Property für den markierten Text, wenn ich "Stringgrid.CopySelectionToClipboard" benutze, wird die ganze Zelle kopiert, genau wie "Stringgrid.SelectedText" den ganzen Text der Zelle beinhaltet, nicht nur die Markierung :(


Kennt jemand von euch dafür ne Lösung?


Danke im voraus

~~Koani

toms 13. Nov 2005 18:27

Re: Markierten Text aus AdvStringGrid in Zwischenablage kopi
 
Hallo,

Du kannst den Text "manuell" in die Zwischenablage einfügen.
Aus den Zelle einen String bilden und in die Zwischenablage einfügen.

Koani 13. Nov 2005 19:21

Re: Markierten Text aus AdvStringGrid in Zwischenablage kopi
 
Das ist es ja gerade, wovon ich nicht weiß, wie ich es machen soll. Um die Markierung in einen String zu schreiben müsste ich sie erstmal abrufen können.

toms 13. Nov 2005 21:21

Re: Markierten Text aus AdvStringGrid in Zwischenablage kopi
 
etwa so?
http://www.swissdelphicenter.ch/de/showcode.php?id=1696

marabu 14. Nov 2005 08:34

Re: Markierten Text aus AdvStringGrid in Zwischenablage kopi
 
Hallo.

So nicht - dafür gibt es schon die Methode CopySelectionToClipboard. Ich würde in der Behandlungsroutine für Strg+C eine Fallunterscheidung machen. Wenn der inplace editor aktiviert ist, dann soll er sich selbst um die Zwischenablage kümmern:

Delphi-Quellcode:
begin
  with AdvStringGrid1 do
  begin
    if EditMode
      then SendMessage(GetFocus, WM_COPY, 0, 0)
      else CopySelectionToClipboard;
  end;
end;
Freundliche Grüße vom marabu

Koani 14. Nov 2005 17:01

Re: Markierten Text aus AdvStringGrid in Zwischenablage kopi
 
Zitat:

SendMessage(GetFocus, WM_COPY, 0, 0)
funzt wunderbar genau den befehl hab ich gesucht und nicht gefunden :)


danke marabu und natürlich euch allen für eure antworten :???:


mfg Koani


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:06 Uhr.

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