Ins Clipboard einen Text kopieren ?
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ins Clipboard einen Text kopieren ?
Hallo,
ich möchte gerne einen Text ins Clipboard senden.
Kein Problem habe ich hinbekommen.
Das Problem ist nur, sobald ich Clipboard.Free aufrufe ist der Text wieder Weg.
Ich weiß das es unter Linux (bei mir aufjedenfall) immer wieder zu Probleme, kommt wenn ich einen Text Markiere. Daher die Frage ist es ein bug in der Clipbrd Unit. oder ein Bug unter Linux oder evltl. auch nur Ubuntu ?
ich möchte gerne einen Text ins Clipboard senden.
Kein Problem habe ich hinbekommen.
Das Problem ist nur, sobald ich Clipboard.Free aufrufe ist der Text wieder Weg.
Ich weiß das es unter Linux (bei mir aufjedenfall) immer wieder zu Probleme, kommt wenn ich einen Text Markiere. Daher die Frage ist es ein bug in der Clipbrd Unit. oder ein Bug unter Linux oder evltl. auch nur Ubuntu ?
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Text aus der Zwischenablage kopieren ?
Hallo,
warum geht folgedner Code nicht ?
Ich habe gesehen, beim VCL EDiT das sie das da genauso so machen.
und in einigen Foren Beiträgen in der DP machen sie das auch so.
und die Zwischenablage ist auch was drin. Aber es geht einfach nicht.
AsText ist leer !
EDIT:
Seltsam, wenn ich das Open weglasse scheint es zu gehen.... Aber warum ?
warum geht folgedner Code nicht ?
Code: Alles auswählen
Clipboard:=TClipboard.Create(ctClipboard);
Clipboard.Open;
if Clipboard.HasFormat(CF_TEXT) then
Writeln('"',Clipboard.AsText,'"','\',Clipboard.FormatCount);
und in einigen Foren Beiträgen in der DP machen sie das auch so.
und die Zwischenablage ist auch was drin. Aber es geht einfach nicht.
AsText ist leer !
EDIT:
Seltsam, wenn ich das Open weglasse scheint es zu gehen.... Aber warum ?
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Wieso erstellst du eigentlich nen Clipboard?
Sollte nicht ein direkter Zugriff möglich sein, wenn eh nur Text drin ist.
PS: ich betrachte das mal als ein Thema.
Sollte nicht ein direkter Zugriff möglich sein, wenn eh nur Text drin ist.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
Clipboard.AsText := 'Test';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := Clipboard.AsText;
end;
Johannes
Ist zwar eine Weile her, aber evtl. fehlt dir die Antwort noch!pluto hat geschrieben:Dann bleibt das Problem noch das sobald die Anwendung beendet wird, der Markierte Text weg ist.... gibt es da eine Möglichkeit ?
Das Problem ist bekannt und passiert bei vielen Programmen so, Abhilfe schaffen die Clipboard-Manager.
Für Gnome -> glipper
Für KDE -> klipper
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
ich habe Gnome..... ist das Programm nicht immer Oben beim Start ?
das ist immer ägerlich da kopiere ich was in einem Dialog schließe es und dann kann ich es nicht mehr einfügen....
werde ich mal ausprobieren... danke.
(Warten lohnt sich halt)
edit01: Vielen Dank für den Tipp, habe es gerade Installiert und bin sehr zufrieden damit.
das ist immer ägerlich da kopiere ich was in einem Dialog schließe es und dann kann ich es nicht mehr einfügen....
werde ich mal ausprobieren... danke.
(Warten lohnt sich halt)
edit01: Vielen Dank für den Tipp, habe es gerade Installiert und bin sehr zufrieden damit.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Ins Clipboard einen Text kopieren ?
Ich habe wieder Probleme mit der Cliboard:
Ich habe bisher noch keine Möglichkeit gefunden diese grenze von 99 Zeichen zu ändern.
Wenn ich jetzt diese Code ausführe geht das bei kleinern Texten Problemlos:
Sobald ich aber den ganzen Text Kopieren möchte geht das schon nicht mehr. Kann mir jemand sagen ob es evtl. noch eine bessere/andere Möglichkeit gibt einen Text in die Zwischenablage zu Kopieren ? Oder mache ich was Falsch ? Wenn ja was ?
Edit01: Ich weiß das der letzte Beitrag etwas länger her ist, aber ich denke es lohnt sich dafür nicht einen neuen Thread aufzumachen oder ?
Edit02: Es kommt folgende Fehler Meldung:
Ich habe bisher noch keine Möglichkeit gefunden diese grenze von 99 Zeichen zu ändern.
Wenn ich jetzt diese Code ausführe geht das bei kleinern Texten Problemlos:
Code: Alles auswählen
procedure TPLEdit_TextBuffer_StringList.Edit_Copy(const aStrList:TStrings=nil);
var
StrList:TStrings;
x,i,c:Integer;
str:String;
begin
NoInsertKey:=True;
if Assigned(aStrList) then
StrList:=aStrList
else
StrList:=TStringList.Create;
for i:=BlockList[0].BlockStart.y to BlockList[0].BlockEnd.y-1 do begin
c:=UTF8Length(Lines[i]);
for x:=1 to c do begin
if isSel(x,i) then begin
str:=str+Lines[i][x];
end;
end; // for x
StrList.Add(str);
str:='';
end; // for i
if not Assigned(aStrList) then begin
Clipboard.Clear;
Clipboard.AsText:=StrList.Text
StrList.Free;
end;
end; // TPLEdit_TextBuffer_StringList.Edit_Copy
Edit01: Ich weiß das der letzte Beitrag etwas länger her ist, aber ich denke es lohnt sich dafür nicht einen neuen Thread aufzumachen oder ?
Edit02: Es kommt folgende Fehler Meldung:
Gdk-ERROR **: file gdkselection.c: line 246 (gdk_string_to_compound_text): assertion failed: (property.encoding == gdk_atom_intern ("COMPOUND_TEXT", FALSE) && property.format ==
aborting...
/media/sda6/Michael/lazarus-0.9.27.src//tools/runwait.sh: line 17: 7197 Abgebrochen $CommandLine
MFG
Michael Springwald
Michael Springwald
Re: Ins Clipboard einen Text kopieren ?
Wie kommst du denn auf die Idee mit den 99 Zeichen?
Aus Synedit kannst du doch auch grosse Texte kopieren. Schau halt nach wie's da gemacht ist.
Aus Synedit kannst du doch auch grosse Texte kopieren. Schau halt nach wie's da gemacht ist.
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Ins Clipboard einen Text kopieren ?
Ich habe das schon 100% so gemacht wie das synedit gemacht habe, aber es geht einfach nicht.
Komischerweise habe ich den Effekt: Wenn ich einmal etwas kleiners kopiert habe und dann alles Markiere geht es manchemal
Ich meine ich habe diese Zahl durch Tests damals ermittelt. Genau weiß ich das auch nicht mehr.
Ich finde es nur seltsam das es mit kleineren Texten geht und mit größeren nicht geht. Mit GTK2 geht es im Übrigen auch nicht.
Hast du das bei dir auch so gelöst wie das Beispiel von Oben ?
Komischerweise habe ich den Effekt: Wenn ich einmal etwas kleiners kopiert habe und dann alles Markiere geht es manchemal
Ich meine ich habe diese Zahl durch Tests damals ermittelt. Genau weiß ich das auch nicht mehr.
Ich finde es nur seltsam das es mit kleineren Texten geht und mit größeren nicht geht. Mit GTK2 geht es im Übrigen auch nicht.
Hast du das bei dir auch so gelöst wie das Beispiel von Oben ?
MFG
Michael Springwald
Michael Springwald
Re: Ins Clipboard einen Text kopieren ?
Bei WOPR? Nö, da schmeisse ich ja auch verschiedene Formate aufs Clipboard:pluto hat geschrieben: Hast du das bei dir auch so gelöst wie das Beispiel von Oben ?
Code: Alles auswählen
fcfnative := RegisterClipboardFormat('application/woprtext');
fcfplain := RegisterClipboardFormat('text/plain');
Code: Alles auswählen
ClipBoard.AddFormat(fcfnative, fCopyNode.Streamer.Stream);
strm := TMemoryStream.create;
StringToMemStream(TWoprDocument(fCopyNode).ConvertToPlain, strm);
ClipBoard.AddFormat(fcfplain, strm);
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Ins Clipboard einen Text kopieren ?
Damit kopierst du CODE in die Zwischen Ablage ?
MFG
Michael Springwald
Michael Springwald
Re: Ins Clipboard einen Text kopieren ?
Beides. Einmal Text für's kopieren zu anderen Anwendungen und einmal das interne Format mit allen Formatierungen für den Gebrauch innerhalb von WOPR oder verschiedenen Instanzen von WOPR. Man könnte auch noch HTML ins Clipboard legen.pluto hat geschrieben:Damit kopierst du CODE in die Zwischen Ablage ?
Man kann ja jeden Stream ins Clipboard schmeissen.