Autor |
Beitrag |
fsg4u
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 07.10.05 12:39
hey
wahrscheinlich ganz einfache Frage. Mein Programm kopiert einen String in die Zwischenabalge. Klappt auch ohne Probleme.Aber wenn ich das Programm schließe.Ist die Zwischenablage wieder leer.
Wie kann ich das beheben??
danke FSG
ps. ich lasse das Programm automatisch schließen mit close;
FSG
Moderiert von Klabautermann: Postings zusammengefaßt.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 07.10.05 13:07
Wie du das Programm schließt ist dabei uninteressant, aber wie kopierst du den String? Vermutlich fängst du das Schreiben an, kopierst dann den String, gibst die Zwischenablage aber nicht frei oder sowas.
Wie es geht:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| uses ClipBrd;
Clipboard.AsText := 'Test'; |
Oder auch mit den normalen Funktionen CopyToClipboard oder so von einem Memo o.ä.
Jedenfalls bleibt damit bei mir alles in der Ablage, auch wenn das programm geschlossen wird.
|
|
fsg4u 
Hält's aus hier
Beiträge: 12
|
Verfasst: Sa 08.10.05 11:19
ich hab jetzt mal meinen ganzen Code geschickt. Und so bleibt es leider nicht in der zwischenablage(hab die inetadresse natürlich geändert)
Noch irgendeine Idee?
Danke FSG
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| unit ipclientpas;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,QClipbrd,urlmon, ExtCtrls;
type TForm1 = class(TForm) Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private public end;
var Form1: TForm1; e:textfile; ip1:string; implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin UrlDownloadToFile(nil, 'http://blablabla.de/ip.htm', 'c:\ip.htm', 0, nil); assignfile(e,'c:\ip.htm'); reset(e); readln(e,ip1); closefile(e); ClipBoard.AsText:=ip1; timer1.enabled:=true; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin close; end;
end. |
Moderiert von Gausi: Delphi-Tags hinzugefügt.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 14.10.05 10:43
Du hast nicht geschrieben, dass du dein Programm auch für Linux schreibst!
Die benutzte QT-Bibliothek für Crossplatform-Development löscht in der Tat den Zwischenablageninhalt wieder.
Das liegt an der Konzeption der Zwischenablage unter Linux wenn ich das recht sehe, aber darauf muss ich ja hier nicht näher eingehen.
Klar ist:
Unter Windows funktioniert es erst mal, wenn du statt QClipBrd für Crossplatform einfach die Unit ClipBrd nur für Windows benutzt.
Und für Linux musst du dann ggf. mit Compilerdirektiven arbeiten...
Und wenn du mit Linux gar nicht arbeiten willst, dann musst du nur das Q vor der ClipBrd-Unit löschen und alles geht. In diesem Fall würde ich mich allerdings fragen, warum du überhaupt die Crossplatform-Unit benutzt hast.
Diese haben nämlich auch andere etwas eigentümliche Verhaltensweisen, die mit der Qt-Bibliothek zusammenhängen...
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Fr 14.10.05 11:06
und gibts nen grund warum du nen timer anmachst um das prog zu beenden? kannste auch einfach so ins oncreate oder onactivate close schreiben...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Fr 14.10.05 11:13
Na ja, dann wäre wohl ein Projekt ohne ein Fenster das beste. Warum ein Fenster erzeugen wenn man es anschl. sofort wieder schließt?
Lg Martin
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 14.10.05 12:01
Amateur hat folgendes geschrieben: | und gibts nen grund warum du nen timer anmachst um das prog zu beenden? kannste auch einfach so ins oncreate oder onactivate close schreiben... |
Dein Username passt ja wie die Faust aufs Auge
(Das ist natürlich ein Scherz  )
Das geht jedenfalls nicht, schließlich wird das Fenster ja da gerade erst erzeugt, da KANN man es nicht wieder schließen.
Aber klar ist, exakt der Quelltext, der jetzt in dem FormCreate liegt kann natürlich 1-zu-1 in den Projekt-Quelltext und das Fenster aus dem Projekt raus.
(Menü Projekt --> Quelltext anzeigen, dort kann dann alles zwischen begin und end mit dem Code aus FormCreate ersetzt werden.)
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Fr 14.10.05 14:46
man kann über
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.FormActivate(Sender: TObject); begin close; end; |
das fenster wieder schließen lassen. der name passt nicht wie die faust aufs auge!
aber natürlich wäre ne consolenanwendung oder ganz ohne fenster das beste! thx
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 17.10.05 10:03
Ich meinte FormCreate, da geht es nicht! Deshalb hab ich ja auch von "dort wird ja das Fenster gerade erst erzeugt" gesprochen!
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Mo 17.10.05 14:07
ja ok deswegen hatte ich ja auch geschrieben oncreate oder onactivate... ist ja auch egal. jedenfalls geht es so. und das ist das wichtigste...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
|