Autor | Thema: Stringarray in die Zwischenablage | | Datum:30.09.02 08:27 
(Werner.Menegoni@SKF.com) | |
Hallo
Ich brauche Euere Hilfe
Ich arbeite mit Profan 6.0 und stehe vor folgendem Problem
Mein Programm erstellt ein Stringarray und das will ich in
die Zwischenablage kopieren.
Es muss Text sein, damit ein anderes Programm dies verarbeiten kann.
Das Array hat maximal 50 Zeilen mit je max 100 Zeichen
Ich habe ein Beispiel anhängt wie es NICHT geht
vielleicht kann mir jemand helfen
Gruss Werner
'Testprogramm
Declare sz%
Declare Array$[10]
Declare Zeile$
Cls
ClearClip
let sz% = 0
WhileNot @equ(sz%,11)
let Zeile$ = " Dies ist Zeile ",sz%
let Array$[sz%] = Zeile$
PutClip Zeile$
inc sz%
EndWhile
let sz% = 0
WhileNot @equ(sz%,11)
let Zeile$ = Array$[sz%]
print Zeile$
inc sz%
EndWhile
print
print " String aus der Zwischenablage"
print GetClip$()
waitinput
|
| | Datum:30.09.02 18:06 
(galaxy@mrk-soft.de) | |
Hallo,
das geht auch so nicht, PutClip überschreibt den alten Wert
natürlich immer, was logisch ist.
Aber selbst ein Array lässt sich so nicht übergeben, den ein
Array ist ja nichrs anderes, als Text im Speicher an
verschieden stellen.
Möglich wäre, den Array-Inhalt als 1 String aufzusumieren,
mit Trennzeichen und diesen String dann komplett zu
übertragen. Da in Profan 6.6 aber ein String nur 255
Zeichen sein darf, wirste hier um Bereichsvariablen nicht
vorbeikommen. auf meiner Page, Tip 6 ist ein Code für
die Zwischenablage und Bereichs-Variabeln.
www.mrk-soft.de
|
| | Datum:01.10.02 09:08 
(Werner.Menegoni@skf.com) | |
Erst mal Dankeschön für die schnelle Antwort.
Ich habe mir dein Programm runter geladen.
Funktioniert aber leider nur halb.
Ich kann mit dem 'neuem Befehl'GetClip32 zwar die Zwischenablage auslesen.
Aber leiter nicht, und das brauche ich, nichts in die Ablage schreiben.
Vielleicht liegt es daran das ich unter NT arbeite.
Mit der WindowsAPI liege ich noch auf dem Kriegsfuss, so das ich die Def nicht exakt nachvollziehen kann.
Möglich, das es noch andere Möglichkeiten gibt ???
Gruss Werner
|
| | Datum:01.10.02 12:14 
(galaxy@mrk-soft.de) | |
Hallo,
die Procedure "PutClip" erwartet eine Bereichsvariable.
Viel API steht zum schreiben nicht dahinter, Openclipboard()
öffnet das Device, SetClipboardData() schreit in die
Zwischenablage und CloseClipboard() schliest das Device wieder.
grad getestet. Funktioniert unter Win 98 / ME und NT / XP.
|
| | Datum: 02.10.02 12:40 
(Werner.Menegoni@SKF.com) | |
Hallo Thorsten
Danke schön. ich habe den Fehler gefunden
Und zwar musste ich mich doch mit WindosAPI befassen
habe wieder dazugelernt.
Der aufruf
OpenClipBoard(GetActiveWindow()) 'clipboard öffnen
setzt vorraus, dass ein Fenster geöffnet ist.
Das war bei mir nicht der Fall.
Das ist erledigt nun ist mein Problem gelöst
nochmals vielen Dank
|
|
|