Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Clipboard ändern mit Daten-typ... (https://www.delphipraxis.net/73244-clipboard-aendern-mit-daten-typ.html)

glkgereon 14. Jul 2006 11:47


Clipboard ändern mit Daten-typ...
 
Hi,

Ich möchte mit einer Delphi-Anwendung Daten an ein Java-Programm übergeben.
Dazu nutze ich das Clipboard...
ausgelesen wird das ganze in Java mittels
Code:
qt = (String) transferData.getTransferData(new DataFlavor("text/html;class=java.lang.String"));
nun habe ich versucht den text einfach mit TClipboard einzufügen...
Delphi-Quellcode:
var CP: TClipBoard;
begin
  CP:=TClipBoard.Create;
  CP.SetTextBuf(PChar(Text));
  CP.Free;
end;
funktioniert zwar auch, nur Java kann es nicht auslesen... :?
ich vermute dass ich als Typ irgendwie das entsprechende für "text/html" setzen muss...nur wie ginge das?

Bernhard Geyer 14. Jul 2006 12:12

Re: Clipboard ändern mit Daten-typ...
 
Datenaustausch über das Clipboard? Was ist den das für eine Lösung?

Schau dir z.B. lieber mal JNI an.

glkgereon 14. Jul 2006 12:15

Re: Clipboard ändern mit Daten-typ...
 
nein... :-)

auch der User soll per Hand über das Clipboard daten eingeben können (das ist gesetzt!!!)

von daher ist dieses Interface sowieso vorhanden und da ist es (imho) das logischste und einfachste das auch mit dem delphi-programm direkt mitzunutzen.

Muetze1 14. Jul 2006 12:20

Re: Clipboard ändern mit Daten-typ...
 
Warum oben so umständlich?

Delphi-Quellcode:
begin
  ClipBoard.AsText := Text;
end;
1. Du brauchst keine Instanz von TClipBoard anlegen - genaus wie Printer, Application, Screen, etc exisitiert eine globale Instanz. Nutze diese und erstelle nicht einfach neue (siehe Hilfe).

2. TClipBoard hat eine Eigenschaft AsText und diese reicht vollkommen, wenn du Text zuweisen willst. (Siehe Hilfe)

glkgereon 14. Jul 2006 12:26

Re: Clipboard ändern mit Daten-typ...
 
Ja gut...ist kürzer....aber nicht mein problem... :?

Es ist weiterhin so dass dieser Java-Befehl das nicht auswertet.

Und bevor nochmehr kommt in die richtung "dann halt java ändern" oder so...
eigentlich soll der User aus dem Browser mit C&P arbeiten. Dies wird anscheinend in einem speziellen Format gemacht, welches in Java eben mit "text/html" auszulesen ist.
Dieses Tool stellt nun eine Vereinfachung dar (Proxy mit auto-Clipoboard) und sollte möglichst exakt die selbe schnittstelle nutzen.

Bernhard Geyer 14. Jul 2006 12:26

Re: Clipboard ändern mit Daten-typ...
 
Zitat:

Zitat von glkgereon
nein... :-)

auch der User soll per Hand über das Clipboard daten eingeben können (das ist gesetzt!!!)

von daher ist dieses Interface sowieso vorhanden und da ist es (imho) das logischste und einfachste das auch mit dem delphi-programm direkt mitzunutzen.

Ich halte eine Benutzerstelle welche über die Zwischenablage läuft in 99,9% für unpassend. Die 0,1% wo es Sinnvoll ist sind Tools die Verbesserungen/Erweiterungen an der Clipboard-Funktionaltität von Windows vornehmen.

glkgereon 14. Jul 2006 12:34

Re: Clipboard ändern mit Daten-typ...
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von glkgereon
nein... :-)

auch der User soll per Hand über das Clipboard daten eingeben können (das ist gesetzt!!!)

von daher ist dieses Interface sowieso vorhanden und da ist es (imho) das logischste und einfachste das auch mit dem delphi-programm direkt mitzunutzen.

Ich halte eine Benutzerstelle welche über die Zwischenablage läuft in 99,9% für unpassend. Die 0,1% wo es Sinnvoll ist sind Tools die Verbesserungen/Erweiterungen an der Clipboard-Funktionaltität von Windows vornehmen.

Ok, Katze aus dem Sack :-)

Es geht um Datensammlung im internet.

Das könnte zum Beispiel verwendet werden um ein Wörterbuch aufzubauen... (nur als Beispiel).
Da könnte man via C&P den Text ins Programm tuen.
Als vereinfachung könnte man nur Copy machen und das Programm guckt automatisch im Clipboard.
Soweit haben wir ein Programm. in Java.

Nun kommt ein zweites Programm (ein Proxy) welches auch das Copy erspart und automatisch (falls die Seite bestimmte bedingungen erfüllt) den qt ins Clipboard schiebt.

Man könnte jetzt versuchen das Java-Programm nach Delphi zu übersetzen (Nein, weil aufwand zu groß) oder den Proxy in Java zu schreiben (Nein weil keine Ahnung^^).
Klar wäre es sauberer in einem Programm, aber einerseits habe ich (bzw haben wir) zZ nicht allzuviel Zeit uns in die entsprechenden Themen einzuarbeiten (Proxy können wir in Delphi, das Parsen in Java....), dann muss die Clipboard-Schnittstelle für den User sowieso auf jeden fall erhalten bleiben und was noch dazukommt ist das wir den Parser auch ohne den Proxy weitergeben können müssen.

Summa Summarum macht das, dass die Architektur erstmal so bleibt....

DGL-luke 14. Jul 2006 12:46

Re: Clipboard ändern mit Daten-typ...
 
Du erstellst ein TClipboard? :shock:

Da kommen ja ganz neue Bräuche auf... In clipbrd ist bereits die Variable "Clipboard" definiert und initlisiert.

Also ich würde da einfach Clipboard.AsText nehmen. Ansonsten solltest du mal sehen, ob es bei ClipboardFormat sowas wie text/html gibt. (gibts aber laut psdk nicht :? )

Muetze1 14. Jul 2006 13:23

Re: Clipboard ändern mit Daten-typ...
 
Zitat:

Zitat von DGL-luke
Du erstellst ein TClipboard? :shock:

Da kommen ja ganz neue Bräuche auf... In clipbrd ist bereits die Variable "Clipboard" definiert und initlisiert.

Also ich würde da einfach Clipboard.AsText nehmen. Ansonsten solltest du mal sehen, ob es bei ClipboardFormat sowas wie text/html gibt. (gibts aber laut psdk nicht :? )

@DGL-Luke: Ignorier mich ruhig.

@glkgereon: Was das text/html soll, rätsel ich auch immernoch. Ansonsten: hast du denn schonmal probiert ob Text welcher mit AsText dem ClipBoard hinzugeführt wurde (und die globale Instanz, keine selbst erzeugte) vielleicht ankommt?

glkgereon 14. Jul 2006 13:26

Re: Clipboard ändern mit Daten-typ...
 
Zitat:

Zitat von Muetze1
Ignorier mich ruhig.

@glkgereon: Was das text/html soll, rätsel ich auch immernoch. Ansonsten: hast du denn schonmal probiert ob Text welcher mit AsText dem ClipBoard hinzugeführt wurde (und die globale Instanz, keine selbst erzeugte) vielleicht ankommt?

nunja...dieses "text/html" stammt nicht von mir....aber es war soweit ich weiss notwendig damit Text (Inklusive Tabellen u.ä.,) der vom Browser mittels Strg+C Kopiert wurde erkannt wird.
Und genau das ist ja mein Problem, das Text der mit Clipboard.AsText:='abc'; reingetan wird NICHT erkannt wird...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 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