Autor Beitrag
Tobias1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: Fr 04.11.05 22:00 
Ich habe ein Programm, in dem man Gleispläne erstellen kann; man kann mit Strg+C Teile des Plans herauskopieren.

In welchem Clipboard-Format sind die dann (CF_OBJECT??)?

Wie kann ich das Rauskopierte speichern, um es später wieder in die Zwischenablage zu kopieren, sodass man es im Programm wieder einfügen kann??

Danke schonmal

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
Tobias1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: Fr 11.11.05 14:01 
Gibt es eigentlich beliebig viele CF_Formate(selbst erstellbar) oder kann man nur CF_OBJECT alles mögliche zuweisen?

Wenn ich Gleispläne rauskopier, kann ich sie in Word einfügen; sie sind dann eine Art Clipart, d.h. man kann sie groß ziehen, ohne das man die Pixel sieht.

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 11.11.05 14:31 
Die Pläne werden wahrscheinlich in mehreren Formaten in die Zwischenablage kopiert und das Programm, das von dort Daten abholen möchte, kann dann das passendste Format auswählen...

Ich vermute mal, dass die Pläne in diesem Fall einmal in einem internen Format und eben in einem vektorbasierten Bildformat (daher keine Pixel...) verfügbar sind. (Und wenn die Pläne nicht wieder in das Programm einfügbar sind, dann gibts die vielleicht auch nur als Bild.)

Jedenfalls kannst du die Daten als Stream abholen und dann binär als Stream in eine Datei schreiben. Allerdings müsste dann auch das Format korrekt angegeben werden, wenn die Daten zurückgeschrieben werden. Aber ich vermute mal, dass es einfach nur ein Bildformat ist.
Versuchs doch mal über die TImage-Komponente...
Tobias1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: Fr 11.11.05 22:32 
Ich glaube nicht dass es ein Image ist, da die Gleise auch noch mehr Eigenschaften haben (z.B Höhe)

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: So 13.11.05 13:16 
Das Programm ist mit C++ geproggt. Eine änliche Kompo hab ich in D noch nicht geshen, weshalb ihc nicht glaube dass sich das mit irgendeiner unspezifischen D-Kompo lösen läst.
Tobias1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: So 13.11.05 19:26 
user profile iconFabian W. hat folgendes geschrieben:
Das Programm ist mit C++ geproggt. Eine änliche Kompo hab ich in D noch nicht geshen, weshalb ihc nicht glaube dass sich das mit irgendeiner unspezifischen D-Kompo lösen läst.


Wie bitte?, das hat doch damit nix zu tun; die Zwischenablage ist doch nicht C++ spezifisch; es ist doch total egal, mit was das Programm geschrieben wurde.
Und warum ne Komponente dazu?

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: So 13.11.05 19:43 
user profile iconTobias1 hat folgendes geschrieben:
user profile iconFabian W. hat folgendes geschrieben:
Das Programm ist mit C++ geproggt. Eine änliche Kompo hab ich in D noch nicht geshen, weshalb ihc nicht glaube dass sich das mit irgendeiner unspezifischen D-Kompo lösen läst.


Wie bitte?, das hat doch damit nix zu tun; die Zwischenablage ist doch nicht C++ spezifisch; es ist doch total egal, mit was das Programm geschrieben wurde.
Und warum ne Komponente dazu?
Ließ doch den Beitrag etwas aufmerksamer: Hab ich irgendwie gesagt dass das Clp was mit C++ zu tun hat? Ich hatte lediglich gesagt, dass ich ncith glaube das Problem mit eine unspeziefischen Kompo (wie zB TImage) zu lösen, da C++ solche nicht einsetzt. :roll:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 17.11.05 10:38 
user profile iconTobias1 hat folgendes geschrieben:
Ich glaube nicht dass es ein Image ist, da die Gleise auch noch mehr Eigenschaften haben (z.B Höhe)

Wenn du das Kopierte in Word einfügen kannst, dann MUSS es mindestens in einem Bildformat vorliegen!
Da du es zudem wieder in das Programm einfügen kannst, muss es zudem noch in einem anderen Format gleichzeitig vorliegen!
Aber wie man alle Inhalte inklusive deren Format-IDs aus der Zwischenablage bekommt, weiß ich leider nicht.

Jedenfalls noch ein Hinweis: Es gibt die Möglichkeit, zunächst in die Zwischenablage nur einen Hinweis zu legen, woher die Daten geholt werden können, und dann, wenn ein Programm diese haben möchte, diese zur Verfügung zu stellen. Wie das geht, weiß ich aber nicht.
Es könnte aber sein, dass du dem Programm über die Zwischenablage sagen musst, ich möchte dieses oder jenes Format...

Herausfinden kannst du das einfach: Kopiere und schließe das Programm komplett. Wenn du dann immer noch in Word einfügen kannst und nach einem erneuten Start des Programms auch in dieses, dann ist es nicht so, wie ich eben erläutert habe;
dann werden die Daten komplett kopiert, du bräuchtest also alles als Stream, aber wie das geht: keine Ahnung...

Was du mal machen kannst, wenn du nach dem Schließen des Programms nix mehr einfügen kannst: Mit Spy++ oder ähnlichen Tools die Botschaften überwachen, wenn du (während das Programm läuft) woanders einfügst...