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
Duplikowanie - prośba o optymalizację makra
Autor Wiadomość
zyzio 
Praktyk


Dołączył: 06 Cze 2011
Posty: 90
Skąd: Podkarpacie
Wysłany: 16 Maj 2017, 20:37   Duplikowanie - prośba o optymalizację makra

Witam. Swego czasu poszukiwałem możliwości przypisania skrótów klawiszowych do poleceń duplikujących zaznaczone obiekty z uwzględnieniem ich szerokości i wysokości - chodzi o narzędzie znajdujące się na dockerze "Transformacja" (poniżej także zrzut ekranu), a ponieważ nie znalazłem takiej możliwości stworzyłem metodą łopatologiczną 4 macra duplikujące zaznaczenie odpowiednio w górę, dół, lewo i prawo no i do nich jak wiadomo można już sobie przypisać skróty klawiszowe.

Generalnie przy prostych nieskomplikowanych kształtach macra się sprawdzają ale problem pojawia się przy bardziej skomplikowanych rysunkach, ponieważ kod nie jest zoptymalizowany i działa o wiele wolniej niż domyślne polecenie "zastosuj do duplikatu" i tutaj moja prośba do Was o wskazówki jak przyspieszyć działanie kodu. Poniżej przykład, którego używam do duplikowania zaznaczenia w prawo.
Na chwilę obecną używam jeszcze X3.
Z góry dzięki za sugestie.

Kod:

Sub Duplikowanie_prawo()
   
    If Not CheckSelection() Then Exit Sub
    ActiveDocument.BeginCommandGroup "MySteps"
    Dim OrigSelection As ShapeRange
    Set OrigSelection = ActiveSelectionRange
    Dim dup1 As ShapeRange
    Set dup1 = OrigSelection.Duplicate()
    ActiveDocument.ReferencePoint = cdrMiddleRight
    dup1.Stretch -1#, 1#
    dup1.OrderToFront
    dup1.CreateSelection
    ActiveSelection.ObjectData("Name").Value = "Copy"
    dup1.Flip cdrFlipHorizontal
    ActiveDocument.EndCommandGroup
End Sub



 
 
tegraf 
Ekspert
tegraf


Pomógł: 74 razy
Dołączył: 21 Mar 2011
Posty: 1954
Skąd: Zielona Góra
Wysłany: 16 Maj 2017, 20:45   

Specjalnie się na Corelu nie znam, ale wydaje mi się, że Twoje makro nie robi tego, co załączony zrzut z Corela.

Zrzut z ekranu sugeruje wykonanie duplikatu z przesunięciem, natomiast makro (o ile dobrze odczytuję) robi duplikat obiektu i odbicie lustrzane, gdzie osią obrotu jest prawa krawędź. To to samo, ale nie zawsze.

Dla pewności: jeżeli swoim makrem potraktujesz kwadrat dwukolorowy (np. z lewej zielony, z prawej czerwony), to po potraktowaniu go tym makrem dalej masz z lewej zielony/z prawej czerwony - czy odwrotnie?
 
 
zyzio 
Praktyk


Dołączył: 06 Cze 2011
Posty: 90
Skąd: Podkarpacie
Wysłany: 16 Maj 2017, 20:53   

Właśnie dlatego jest to łopatologiczny kod, ponieważ wykonuje kilka czynności imitując rezultat działania domyślnego polecenia "Zastosuj do duplikatu".
Nic lepszego nie wymyśliłem dlatego właśnie proszę o sugestie :)
 
 
tegraf 
Ekspert
tegraf


Pomógł: 74 razy
Dołączył: 21 Mar 2011
Posty: 1954
Skąd: Zielona Góra
Wysłany: 16 Maj 2017, 21:03   

http://community.coreldra.../p/52528/250969
 
 
zyzio 
Praktyk


Dołączył: 06 Cze 2011
Posty: 90
Skąd: Podkarpacie
Wysłany: 16 Maj 2017, 21:16   

Dzięki tegraf, wykorzystałem ten oznaczony zieloną ramką, jest nieco lepiej ale w porównaniu z domyślnym poleceniem kod wciąż działa zauważalnie wolniej no ale to już coś :)
 
 
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.07 sekundy. Zapytań do SQL: 12