Przejdź do treści

Schowek windowsowy

Kopiowanie do schowka

Od wersji 4.6 została dodana funkcjonalność kopiowania do schowka wartości stringowych. Wystarczy w kodzie metod NEOSowych wywołać funckę CopyToClipboard({parametr}) aby po stronie klienta wartość została umieszczona w schowku. Funkcje kopiowania do schowka obsługuje klient VCL jak i WEB. Zatem niezależnie od podłączonego klienta funkcjonalność działa tak samo. Ponadto możliwe jest też wykonanie metody CopyToClipboard z poziomu API, a więc możemy używać tej funkcjonalności również w metodach statycznych.

Poniżej znajduje się przykład w jaki sposób można skorzystać z w/w funkcjonalności:

CopyToClipboard(_value.ToString());

lub

GUI.CopyToClipboard(_value.ToString());

Wklejanie ze schowka

Podobnie została też dodana funkcja, aby programowo uruchomić wklejenie treści ze schowka do bieżącego pola edycyjnego pod aktualną pozycję kursora. Aby z niej skorzystać, wystarczy napisać:

PasteFromClipboard();

Powyższa funkcja zadziała poprawnie jedynie wtedy, gdy w trakcie jej wywołania mamy aktywne jakieś pole edycyje i w nim stoi kursor. Jeśli powyższą funkcję chcemy wywołać z przycisku, w który klika użytkownik, to przycisk taki należy podpiąć jako dziecko pola edycyjnego, w którym ta funkcja ma zadziałać. Bo tylko wtedy klikanie na przycisk powoduje, że focus klawiatury jest w polu edycyjnym. Jeśli będzie to zwykły przycisk na formie, to taki przycisk przejmuje focus klawiatury i funkcja wklejenia nie działa, gdyż nie ma gdzie wkleić tekstu. Aby temu zapobiec, możemy programowo przekierować focus do konkretnego pola, np do pola NAZWA:

SetFocus("NAZWA");
PasteFromClipboard();

Ponieważ schowek jest przechowywany po stronie klienta, to z poziomu kodu C# (który się wykonuje po stronie serwera) nie da się odczytać programowo zawartości schowka, ani przypisać go do jakiejś zmiennej.