Juergens-Workshops.de Forum
Photopaint X4 - CorelScript und Zwischenablage - Druckversion

+- Juergens-Workshops.de Forum (https://forum.juergens-workshops.de)
+-- Forum: Corel Grafik Forum (https://forum.juergens-workshops.de/forumdisplay.php?fid=65)
+--- Forum: Corel Photo Paint (https://forum.juergens-workshops.de/forumdisplay.php?fid=94)
+--- Thema: Photopaint X4 - CorelScript und Zwischenablage (/showthread.php?tid=36143)



Photopaint X4 - CorelScript und Zwischenablage - kede93 - 27.02.2015

Hallo,

Folgendes Problem:
Ich möchte in einem CorelScript eine bzw. mehrere Ebenen in die Zwischenablage kopieren und in einem neuen Fenster öffnen lassen ("Neu aus Zwischenablage").

Ist das durch ein CorelScript machbar oder müssen Makros verwendet werden?

Vielen Dank schon einmal!


Photopaint X4 - CorelScript und Zwischenablage - koter - 27.02.2015

Hallo Kede,

kede93 schrieb:Ist das durch ein CorelScript machbar oder müssen Makros verwendet werden?

ob das mit einem Skript möglich ist, weiß ich nicht. Ich würde mich in diesem Fall auch nicht mit einem Skript herumquälen, da das mit einem Makro nur ein Zweizeiler ist:
Code:
Sub NeuVonAuswahl()
    ActiveDocument.Layers.Selection.Copy
    Application.CreateDocumentFromClipboard
End Sub
Der Zweizeiler kopiert die Ausgewählen Objekte und erstellt daraus ein neues Dokument.

Ich habe grundsätzlich nichts gegen eine PN. Hier jedoch ist sie nicht nötig. Wenn wir das hier im Forum abhandeln, können auch andere profitieren oder helfen.

Da nichts Geheimzuhaltendes in der PN steht, erlaube ich mir daraus zu zitieren:

kede93 schrieb:Wie gut kennst du dich insgesamt mit Corel Photopaint, dem CorelScript und den Möglichkeiten in den Makros aus?

Mittelmäßig, ich bin nur Gelegenheitsprogrammierer und mit Bitmaps kennen sich viele hier im Forum viel besser aus.

kede93 schrieb:...Könntest du beispielsweise ein Makro erstellen, welches zum Einen mehrere Scripte ausführt...

Ja das geht, wenn sich die Skripte nicht gegenseitig ausschließen.

kede93 schrieb:...und ggf. zwischendurch eine oder mehrere Ebenen kopiert und in einem neuen Fenster öffnet und speichert...

Dazu müssen die Ebenen (Objekte) entweder eindeutig benannt sein oder vorher vom Benutzer ausgewählt werden.
Es kann sein, dass an dieser Stelle das Makro enden und ein zweites gestartet werden muss.

kede93 schrieb:...und zum anderen einen in einer Eingabemaske vor Beginn des Ausführens eingegebenen Schriftzug in das Dokument einfügt?...

Grundsätzlich ja. Es können aber Probleme mit der Schriftfarbe (z.B. dunkele Schrift auf dunkelem Hintergrund) auftreten. Auch die Positionierung könnte schwierig werden.

kede93 schrieb:...Sollte ja eigentlich nicht sehr kompliziert sein, wenn man sich mit den Möglichkeiten der Makros auskennt oder?

Das lässt sich nicht leicht vorhersagen, man erkennt die Probleme oft erst beim programmieren.

kede93 schrieb:...Wäre super wenn du mir helfen könntest.

Das will ich gern versuchen. Dazu brauche ich etwas genauere Angaben und Beispieldateien (die Skripte und PP-Dateien).

Und: Ganz so trivial wie Du meinst ist die Aufgabe nicht. Es kann also lange dauern und der Erfolg ist nicht garantiert.

Kede, es wäre auch gut, wenn Du den Leuten die Dir Anworten eine kleine Rückmeldung gibst. Das motiviert dazu, Dir auch in Zukunft zu helfen. (klick)

Gruß

Koter


Photopaint X4 - CorelScript und Zwischenablage - kede93 - 27.02.2015

Hallo koter,

Vielen Dank für die schnelle Antwort und den Zweiteiler!

Wie würde ich im Makro denn umsetzen, dass der Text, den ich vor dem Ausführen in TextBox1 eingetippt habe als Objekt (wenn möglich in weiß mit Schriftart Arial, fett und in 40pt) in das Dokument eingefügt wird?

Und bekommt man es hin, dass beim Speichern der Dateiname auch dieser Eingabe entspricht?

Ich hoffe ich bekomme das Projekt mit eurer Hilfe so hin, wie ich es mir gedacht habe.


Photopaint X4 - CorelScript und Zwischenablage - koter - 27.02.2015

Hallo Kede,

Code:
Dim Pfad As String
Dim Dateiname As String
Dateiname = Trim(TextBox1.text)
Call TextEinfügen(Dateiname)
ActiveDocument.SaveAs(Pfad & Dateiname & ".cpt", cdrCPT).Finish

Sub TextEinfügen(text As String)
    Dim Skript As Object
    Dim x As Double, y As Double
    Set Skript = Application.CorelScript
    x = ActiveDocument.SizeWidth / 2
    y = 50
    With Skript
        .TextTool x, y, False, True, 0
        .TextSetting "Fill", "255,255,255"
        .TextSetting "Font", "Arial"
        .TextSetting "TypeSize", "40.000"
        .TextSetting "TSWeight", "4096"
        .TextSetting "Justify", "2"
        .TextAppend text
        .TextRender
    End With
    Set Skript = Nothing
End Sub

Gruß

Koter