Das Notes Forum

Lotus Notes / Domino Sonstiges => Tipps und Tricks => Thema gestartet von: Axel am 03.05.05 - 15:19:11

Titel: Klasse für Zwischenablage
Beitrag von: Axel am 03.05.05 - 15:19:11
Hi,

ich habe im Internet eine Klasse zum Schreiben und Lesen von Daten von/ in die Zwischenablage gefunden. Das Ganze habe ich in eine Script-Bibliothek gepackt. Damit lässt sich die Klasse sehr leicht in eigene Datenbanken integrieren.


Beispiel (die Bibliothek muß mit Use "..." eingebunden sein):

Dim clsClipBoard As New ClipBoard
Dim strTemp As String

strTemp = "Das kommt in die Zwischenablage"
clsClipboard.Contents = strTemp  'Schreiben der Daten in die Zwischenablage
...

...
Messagebox clsClipboard.Contents  'Lesen aus der Zwischenablage
...


Die Klasse lässt sich sowohl in Datenbanken für Notes 5 als auch in Notes 6.5 verwenden.


Axel
Titel: Re: Klasse für Zwischenablage
Beitrag von: Glombi am 03.05.05 - 15:23:40
Das kommt mir irgendwie bekannt vor, siehe

http://www.atnotes.de/index.php?board=7;action=display;threadid=14538

Andreas
Titel: Re: Klasse für Zwischenablage
Beitrag von: Axel am 03.05.05 - 16:02:49
Hi Andreas

richtig, aber siehe hier: http://www.atnotes.de/index.php?topic=22744.0

Die Klasse in diesem Thread hatte ich mal auf Basis eines Codestückes aus dem Internet erstellt. Es hat sich aber herausgestellt, dass das nicht sauber funktioniert hat. Den Code hatte ich damals auf der Seite gefunden, zu dem du damals den Link gepostet hattest.

Deswegen war ich nochmal auf der Suche und habe nun den obigen Code gefunden. Den habe ich getestet und der funktioniert ohne Probleme.


Axel
Titel: Re: Klasse für Zwischenablage
Beitrag von: Glombi am 03.05.05 - 16:06:02
Ok, vielen Dank.
Es wäre interessant zu wissen, warum der "alte" Code bei Dir nicht geht. Ich verwende den in einigen Anwendungen und da gibt es kein Problem.

Andreas
Titel: Re: Klasse für Zwischenablage
Beitrag von: Axel am 03.05.05 - 16:19:27
Hi,

evt. ist das abhängig von Betriebssystem und/oder der Notes-Version. Ich hab's mit Notes 5 und 6.5 unter Windows XP SP2 getestet. Die Daten wurden nur bei jedem zweiten Mal übernommen. Dazwischen wurde die Zwischenablage gelöscht.

Brathaenchen hatte ja den gleichen Effekt. Da ist mir aber nicht bekannt was für ein OS da im Spiel war.

Ich hab' mal versucht einen Grund dafür zu finden, aber ohne Erfolg.

Unter welchen Betriebssystem setzt du denn den Code ein?

Axel

 
Titel: Re: Klasse für Zwischenablage
Beitrag von: Glombi am 03.05.05 - 16:21:07
Ich denke der alte Code läuft unter Win XP SP1 und Win 2000.

Andreas
Titel: Re: Klasse für Zwischenablage
Beitrag von: Axel am 03.05.05 - 19:58:38
Hi,

ich habe den "alten" Code mal unter Windows 2000 getestet und es kommt zum gleichen Ergebnis. Beim ersten Mal funktionierts, beim zweiten Mal ist die Zwischenablage leer, beim dritten Mal funktionierts wieder usw.

Keine Ahnung warum. Die neue Klasse funktioniert.


Axel
Titel: Re: Klasse für Zwischenablage
Beitrag von: Marinero Atlántico am 03.05.05 - 23:42:16
Von dem Effekt (beim ersten mal funktioniert es, danach nicht mehr) hört es sich so an, als würde die Ressource Zwischenablage nicht korrekt geschlossen. Konnte es aber am Code selbst nicht sehen.
Titel: Re: Klasse für Zwischenablage
Beitrag von: muR am 14.03.06 - 16:36:45
Hallo,
ich stell mich etwas doof an.
Wohin muß ich die Class speichern. Ich habe die Clipboard Class als eigenen Skrip-Biblothek gespeichert und wollte es dann mit Use einbinden. Läuft aber nicht.
Wie muß ich es richtig machen?
Danke für Euere Hilfe.
Titel: Re: Klasse für Zwischenablage
Beitrag von: Axel am 14.03.06 - 16:41:02
Was läuft nicht? Fehlermeldung?

Das mit der eigenen Script-Lib ist schon richtig.


Axel
Titel: Re: Klasse für Zwischenablage
Beitrag von: cash am 23.03.07 - 10:53:45
habe die Klasse bei mir eingebunden. Habe allerdings wenig Ahnung...

Habe einen Button erstellt unter

Options steht use cClipboard (Name der Bibliothek)

unter Declarations steht Dim test_string As String

und unter Click dann

Sub Click(Source As Button)
   

   test_string=uidoc.FieldGetText("Ersteller")
   Dim clip_board As New ClipBoard
   clip_board.Contents = test_string
   
   If test_string <> clip_board.Contents Then
      Messagebox "Failure!"
   End If

Es kommt die Fehlermeldung: Variant does not contain an object

Sofern ich statt test_string=uidoc.FieldGetText("Ersteller")

z. B. test_string = "Test" hinschreibe wird schön Test in die Zwischenablage kopiert aber wie schaffe ich es jetzt einen bestimmten Feldinhalt zu verwenden?

Cash
Titel: Re: Klasse für Zwischenablage
Beitrag von: Axel am 23.03.07 - 13:18:29
Sofern ich statt test_string=uidoc.FieldGetText("Ersteller")

Wo und wie hast du denn die Variable uidoc deklariert und initialisiert?

Wo hast du denn den Button erstellt, Ansicht oder Maske.


Axel
Titel: Re: Klasse für Zwischenablage
Beitrag von: cash am 23.03.07 - 13:50:40
Vielen Dank für den Hinweis jetzt klappt es....

Der Button ist übrigens in einer Maske

Gruß

Cash