Corel FORUM Strona Główna Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
Wstaw (ze schowka) jako tekst niesformatowany
Autor Wiadomość
Artur Miernik 



Pomógł: 49 razy
Wiek: 52
Dołączył: 18 Lip 2010
Posty: 1608
Skąd: Starachowice
Wysłany: 8 Kwiecień 2015, 17:46   Wstaw (ze schowka) jako tekst niesformatowany

Patrząc na ten wątek, pomyślałem sobie, że być może warto naprawić to co od dawna nie działa w Corelu tak, jak trzeba, czyli wstaw specjalnie jako tekst (niesformatowany). Chodzi o to, żeby wstawiona fraza nie lądowała na środku strony, w ramce tekstu o szerokości tejże strony, lecz wklejała się tam, gdzie ustawiliśmy kursor narzędzia tekst. I lepiej niech nic nie robi się, jeśli kursor tekstowy nie jest ustawiony.

Poniższy kod działa i pochodzi z makra nagranego podczas wywołania edycja/ wklej specjalnie… jako tekst:
Kod:
Sub wklej_niesformatowane()
    ' Description:
    '     Wstawia tekst ze schowka jako niesformatowany
    ActiveLayer.PasteSpecial "Text"
    Dim Paste1 As ShapeRange
    Set Paste1 = ActiveSelectionRange
End Sub


Kłopot w tym, że nie wiem co powinienem wpisać w miejsce As ShapeRange.

Radźcie Panowie.
 
 
Shame 
Red Dot Corporation



Wersja CorelDRAW: X7
Pomógł: 213 razy
Wiek: 40
Dołączył: 19 Kwi 2012
Posty: 2565
Skąd: Poznań
Wysłany: 8 Kwiecień 2015, 20:08   

String?
 
 
chezare 



Pomógł: 402 razy
Dołączył: 24 Gru 2010
Posty: 4551
Skąd: Grodzisk Mazowiecki
Wysłany: 11 Kwiecień 2015, 14:09   

Ja bym na Twoim miejscu nic nie wpisywał. :-)
" …gdzie ustawiliśmy kursor narzędzia tekst. I lepiej niech nic nie robi się, jeśli kursor tekstowy nie jest ustawiony."
Artur, musisz się zdecydować jaki ma być kursor. :-)
Ja się w tym wszystkim zupełnie nie orientuję, ale widziałbym to tak. Najpierw trzeba ustalić pozycję kursora. Przyjmijmy że mamy kurX i kurY, które określają położenie kursora. Jak mamy te dane, to trzeba skonstruować coś takiego:

Dim Paste1 As ShapeRange
Set Paste1 = ActiveSelectionRange
Paste1.PositionX = kurX
Paste1.PositionY = kurY


Pozycja została zmieniona, ale pojawia się kolejny problem, jak zmienić rozmiar ramki
tekstowej tak żeby pasowała do tekstu?
Poza tym w taki sposób wstawia się tekst jak najbardziej sformatowany, choć nie tak jak w dokumencie z którego zostaje kopiowany, ta ramka ma przypisany font, jego rozmiar itd.

Przeczytałem to co napisałem i widzę, że to bez sensu jest. Jak ustalić pozycję gdzie ta ramka ma zostać wstawiona? Trzeba kliknąć w to miejsce, ustawić kursor w tym miejscu i co teraz? Jak uruchomić to makro, z klawiatury? To powinno działać tak jak wstawianie grafiki, wybierasz plik i klikasz gdzie ma zostać wstawiona jego zawartość.
 
 
Artur Miernik 



Pomógł: 49 razy
Wiek: 52
Dołączył: 18 Lip 2010
Posty: 1608
Skąd: Starachowice
Wysłany: 11 Kwiecień 2015, 15:44   

Do makra, o ile będzie działało, podwiąże się skrót, np.: [ctrl]+[shift]+[v] i po kłopocie.
 
 
maroQ 
Doradca


Pomógł: 16 razy
Wiek: 40
Dołączył: 08 Lut 2011
Posty: 117
Skąd: Kalisz
Wysłany: 14 Kwiecień 2015, 14:22   

Popracujcie sobie nad tym kodem:
Kod:
Sub PasteText()
    Dim txt As String
    txt = ClipboardGetText()
   
    If txt <> "" Then
        Dim x As Double, y As Double
        If ActiveDocument.GetUserClick(x, y, 1, 10, False, cdrCursorExtPick) = 0 Then
            ActiveLayer.CreateParagraphText x, y, x + 2, y - 2, txt
        End If
    Else
        MsgBox "Schowek nie zawiera tekstu", vbInformation, "-/\-"
    End If
End Sub

Function ClipboardGetText() As String
    Dim dob As DataObject
   
    Set dob = New DataObject
    dob.GetFromClipboard
    ClipboardGetText = dob.GetText
End Function

To jest samo wstawianie ze schowka w oparciu o kliknięcie użytkownika. Wymiary pola tekstowego można sobie ustawić wedle uznania.
 
 
chezare 



Pomógł: 402 razy
Dołączył: 24 Gru 2010
Posty: 4551
Skąd: Grodzisk Mazowiecki
Wysłany: 15 Kwiecień 2015, 20:39   

Artur, Szaman naprawił wstawianie tekstu. Teraz tylko sobie dorobisz skrót i gitara. :-)
U mnie działanie procedury skończyło się na deklaracji

za co odpowiedzialna jest windowsowa biblioteka:

Po podłączeniu działa. :-)
Jeśli jednak spróbujecie wkleić ze schowka grafikę, to skończy się taki pomysł na:

i nie zobaczycie tekstu o tym, że w schowku tekstu nie ma. :-)
Oczywiście to drobny mankament, który można naprawić, np.:
Kod:
Function ClipboardGetText() As String
    Dim dob As DataObject
           On Error Resume Next
    Set dob = New DataObject
    dob.GetFromClipboard
    ClipboardGetText = dob.GetText
End Function

Na początku wydawało mi się, że to nie ma sensu, ale jestem coraz bliżej tego, żeby się do nowej funkcji przyzwyczaić. :-) Szaman zasłużył na pochwałę.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.12 sekundy. Zapytań do SQL: 13