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
Zastap zaznaczony tekst
Autor Wiadomość
kek 
Praktyk



Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017
Posty: 81
Skąd: Polska
Wysłany: 21 Lipiec 2020, 09:48   Zastap zaznaczony tekst

Witam.
Naczytałem się tematów aż głowa boli, a tego co potrzebuję nie znalazłem.
Ale do rzeczy.
Mam słowo jako "tekst ozdobny", zaznaczam go myszką (podwójny klik) i wybieram makro, które ten wyraz zamieni na inny (podany w makrze).
Znalazłem różne przykłady, ale wszystko wstawia tekst jako akapitowy, a mi jest potrzebny w poprzednio zaznaczonym miejscu jako "ozdobny".
Da się tak zrobić?

Pozdrawiam
 
 
restauro 



Wersja CorelDRAW: CorelDraw X4 ,X7
Pomógł: 574 razy
Dołączył: 25 Lis 2009
Posty: 7680
Skąd: Gdynia
Wysłany: 21 Lipiec 2020, 12:02   

Zaznacz tekst i wybierz opcję

zamiana.png
Pobierz Plik ściągnięto 379 raz(y) 81.35 KB

 
 
kek 
Praktyk



Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017
Posty: 81
Skąd: Polska
Wysłany: 21 Lipiec 2020, 12:17   

restauro napisał/a:
Zaznacz tekst i wybierz opcję


Nie o to chodzi. Makro ma zastąpić tekst innym (podanym jako zmienna w Makrze).
Np. Mam napisane "Jeden". Zaznaczam ten tekst uruchamia makro, które zmienia mi napis na "Dwa".
To tylko przykład.
 
 
kek 
Praktyk



Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017
Posty: 81
Skąd: Polska
Wysłany: 21 Lipiec 2020, 13:43   

Mam coś takiego, ale to wypisuje tekst w zadanym miejscu (w tym wypadku pozycja 2, 2).
A ja chcę zastąć istniejący napis.

Sub zamienText()
Dim napis As Shape
Set napis = ActiveLayer.CreateArtisticText(2, 2, "Dwa")
End Sub
 
 
kek 
Praktyk



Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017
Posty: 81
Skąd: Polska
Wysłany: 24 Lipiec 2020, 07:56   

Jakoś nikt oprócz RESTAURO nie podjął rękawicy, szkoda, bo mi już brakuje pomysłów.
Doszedłem już do tego aby zastępować obiekt (text) nowym, ale nie trafia on w odpowiednie miejsce.
Niby taka prosta sprawa, zastąpić kilka liter innymi i temat nie do przeskoczenia.
Oto co sam zdziałałem:

Sub zText()
Dim s As Shape
Dim origText As String
Dim newText As String
Dim finalText As String
Dim x As Double, y As Double
newText = "Dwa"
Set s = ActiveSelection.Group
s.GetPosition x, y
origText = s.Text.Story
s.Delete
ActiveLayer.CreateArtisticText x, y, newText
End Sub
 
 
restauro 



Wersja CorelDRAW: CorelDraw X4 ,X7
Pomógł: 574 razy
Dołączył: 25 Lis 2009
Posty: 7680
Skąd: Gdynia
Wysłany: 24 Lipiec 2020, 13:15   

Musisz poczekać , osoby zajmujące się programowaniem wpadają na forum niezbyt często .
Temat jest otwarty , jest więc szansa że za jakiś czas ?

Możesz sprawdzić ,kto ostatnio był aktywny i napisać na PW.
 
 
kek 
Praktyk



Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017
Posty: 81
Skąd: Polska
Wysłany: 24 Lipiec 2020, 14:54   

Dzięki Restauro za dobre słowo.
W międzyczasie napisałem kilka innych makr usprawniających mi pracę.
Przygotowanie szablonu z 10 minut zmniejszyłem przez to do 1 minuty!
Gdybym jeszcze przeskoczył problem z tematu, to miałbym kolejne makra i znów urwałbym kilka minut z przygotowania.

Pozdrawiam
 
 
kek 
Praktyk



Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017
Posty: 81
Skąd: Polska
Wysłany: 27 Lipiec 2020, 14:15   

Witam.
Na ponad 130 przeglądających nic, zero podpowiedzi, ech życie...
Ale żeby nie było, zrobiłem wreszcie coś co w pełni mnie zadowala.
Program wykonuje to co chciałem w 99%, i tak jak chciałem.
Makro poniżej, może przyda się jeszcze komuś.

_______________

Sub ZastapText()
Dim nowy$, x As Shape
nowy = ("Dwa")
Set x = ActiveLayer.Shapes.FindShape("Kolor", cdrTextShape)
x.Text.Story.Text = nowy
End Sub
_______________

Może jest i prostszy sposób, ale ja na niego nie wpadłem.

Temat do zamknięcia.

Pozdrawiam
 
 
Martin Nez 
Doradca
Grafik?


Wersja CorelDRAW: 2019
Pomógł: 14 razy
Dołączył: 29 Sty 2011
Posty: 114
Skąd: Czmoń
Wysłany: 23 Listopad 2020, 17:59   

Witam,
spróbuj tego:

Kod:
Sub kek()
    Dim nowy As String
    nowy = "inny"
    ActiveShape.Text.Selection.Replace (nowy)
End Sub


Pozdr,
MN
 
 
kek 
Praktyk



Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017
Posty: 81
Skąd: Polska
Wysłany: 30 Grudzień 2020, 07:26   

Martin Nez napisał/a:
Witam,
spróbuj tego:

Kod:
Sub kek()
    Dim nowy As String
    nowy = "inny"
    ActiveShape.Text.Selection.Replace (nowy)
End Sub


Pozdr,
MN


Witaj.
Późno odpisuję, ale dopiero zauważyłem, że jeszcze ktoś pisze w tym temacie.
Dzięki za skrypt, lecz jest jeden problem.
Twój program nie zastępuje wyrazu innym lecz dopisuje nowy do już istniejącego.
To co sam stworzyłem używam codziennie i się sprawdza.
Makra to jest to. Wykonują za mnie pracę i nie popełniają błędów :)

Pozdrawiam
 
 
Martin Nez 
Doradca
Grafik?


Wersja CorelDRAW: 2019
Pomógł: 14 razy
Dołączył: 29 Sty 2011
Posty: 114
Skąd: Czmoń
Wysłany: 4 Luty 2021, 19:43   

To co opisałeś dzieje się u mnie jeśli nie zaznaczę wyrazu, który chcę podmienić tylko umieszczę kursor w jakimś miejscu. Wcześniej pisałeś, że dwuklikiem zaznaczasz wyraz i wtedy działa prawidłowo (no, tak prawie, bo nie dodaje spacji na końcu, ale to proste do poprawienia :) ).

Pozdr,
MN
 
 
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.08 sekundy. Zapytań do SQL: 16