Beiträge von FGexner

    Hallo,

    ich glaube, dass ich den Grund dafür schon gefunden habe. In Version 5.35.2 gab es CurrFontName in der Record-Deklaration von TWPPaintExtraParams noch nicht. Da dies ein TFontName also ein String ist fürt das FillChar in der Methode TWPRTFEnginePaint.SetCanvasAttr in Zeile 4202 letztendlich zu dem Fehler in der Zeile 4505. Beheben konnte ich den Fehler durch eine zusätzliche Zeile vor FillChar

    Code
    CanvasExtraParams.CurrFontName := '';

    Vielleicht hilft das weiter und wird ggf. in die nächste Version mit übernommen.

    Gruß, C. Exner

    Hallo,

    ich habe die Version vom 16.12.2007 soeben runter geladen und installiert. Ich benutzte FastMM4 zur Speicherlochdetektion. Bei der oben genannten Version tritt ein Speicherloch auf. Dies wird je nach Größe der geladenen Datei mehrere MB groß!

    Dies Stelle scheint immer die selbe zu sein. Wenn auch der Weg zum Speicherloch immer wieder unterschiedlich zu sein scheint. Die Dick ausgegebene Zeile taucht bei jeder Speicherlochdetektion auf.

    Hier ein exemplarischer Stacktrace:
    -------------------------------------------------------------------------------
    A memory block has been leaked. The size is: 20

    Stack trace of when this block was allocated (return addresses):
    402EFA [System][@GetMem]
    404E01 [System][@NewAnsiString]
    404E2C [System][@LStrFromPCharLen]
    42E903 [Graphics][TFont.GetName]
    504901 [WPRTEPaint.pas][WPRTEPaint][TWPRTFEnginePaint.SetCanvasAttr][4505]
    42E614 [Graphics][TFont.SetData]
    42E8E7 [Graphics][TFont.SetHeight]
    512010 [WPRTEPaint.pas][WPRTEPaint][PaintLine][8759]
    51B33F [WPRTEPaint.pas][WPRTEPaint][TWPRTFEnginePaint.PaintRTFPage][10867]
    77EF6C02 [GdiDrawStream]

    The block is currently used for an object of class: Unknown

    The allocation number is: 24529

    Current memory dump of 256 bytes starting at pointer address 19AA430:
    01 00 00 00 05 00 00 00 41 72 69 61 6C 00 6E AD 03 81 80 80 80 80 80 80 00 00 00 00 E1 A4 9A 01
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ED 59 00 00 FA 2E 40 00 07 3E 40 00 CE 41 40 00
    3C 3E 40 00 7A D0 4C 01 C8 42 43 00 B2 8F 40 00 CD 9F 40 00 16 2F 40 00 25 3E 40 00 16 2F 40 00
    25 3E 40 00 19 42 40 00 ED 29 42 00 6B 3E 40 00 E1 3D 41 00 E0 35 43 00 6B 3E 40 00 9D 35 43 00
    A6 40 43 00 14 00 00 00 D4 D2 41 00 47 AE FD 07 08 6E 62 00 80 80 80 80 80 80 80 80 80 80 80 80
    80 80 80 80 B8 51 02 F8 00 00 00 00 71 A5 9A 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    C3 59 00 00 FA 2E 40 00 07 3E 40 00 CE 41 40 00 3C 3E 40 00 7A D0 4C 01 C8 42 43 00 B2 8F 40 00
    CD 9F 40 00 16 2F 40 00 25 3E 40 00 16 2F 40 00 25 3E 40 00 19 42 40 00 ED 29 42 00 6B 3E 40 00
    . . . . . . . . A r i a l . n ­ . € € € € € € . . . . á ¤ š .
    . . . . . . . . . . . . . . . . í Y . . ú . @ . . > @ . Î A @ .
    <z> @ . . / @ .
    % > @ . . B @ . í ) B . k > @ . á = A . à 5 C . k > @ . 5 C .
    ¦ @ C . . . . . Ô Ò A . G ® ý . . n b . € € € € € € € € € € € €
    € € € € ¸ Q . ø . . . . q ¥ š . . . . . . . . . . . . . . . . .
    Ã Y . . ú . @ . . > @ . Î A @ . <z> @ . . / @ . % > @ . . B @ . í ) B . k > @ .


    Gruß, C. Exner

    Hallo,

    sehr merkwürdig. Ich kann den Fehler hier sowohl mit "alten" Dokumenten von Version 5.30 (geöffnet in 5.30.3) reproduzieren, als auch mit neuen Dokumenten (angelegt mit 5.30.3). Daher stammte auch die Beispieldatei. Die Screenshots zeigen ja auch, dass die Tabelle an Ort und Stelle bleibt. Das Problem waren die zusätzlichen Linien (Siehe ScreenShot Vorher und Nachher).
    Nehme ich den Quelltext raus (siehe Post oben) klappt alles. Wie verfahren wir weiter?

    Gruß, Christian Exner

    Hallo,

    das löst das Problem. Doch wie soll ich jetzt vorgehen. Vorerst kommentiere ich es aus. Wie wird es beim nächsten Update sein? Muss ich mir diese Stelle merken und jedes mal mit Auskommentieren order gibt es eine "globale" Lösung im nächsten Update?

    Gruß, Christian Exner

    Hallo,

    folgender Aufbau eines Dokuments erzeugt reproduzierbar bei mir Probleme:

    Tabelle A: Eine Zeile, zwei Spalten
    in Tabelle A Zelle 1/2 kommt Tabelle B mit z.B. 4 Spalten und vier Zeilen

    Tabelle A hat keine sichtbaren Rahmen.
    Tabelle B erhält nur einen Ausenrahmen sowie z.B. Zelle 2/2 eine Unterlinie.

    Dieses Dokument wird abgespeichert und neu geladen. Tabelle B hat ab diesen Zeitpunkt veränderte Zellrahmen: Ausenrahmen weiterhin vorhanden, Spalte 2..4 (Zeile 1..4) -> Unterlinien.

    Ist das ein Anwenderfehler (Flags falsch gesetzt) oder ein möglicher Fehler beim laden des Dokuments? Vorher benutzte Version 5.30.0 ohne diesen Fehler.

    Danke für die Hilfe.

    Gruß, C. Exner

    Hallo,

    Ich weiß nicht, ob es ein Fehler ist, aber wenn man bei einem neuen Dokument vor einem Tastendruck in WPRichText eine Grafik einfügt, entsteht kein Undo-Schritt. Erstellt man ein neues Dokument und drück z.B. die Leertaste und fügt dann eine Grafik ein, wird ein Undo-Schritt angelegt für das einfügen der Grafik.
    Dieses Verhalten lässt sich auch mit dem WordProcessor der Demosoftware reproduzieren (Neues Dokument, Einfügen -> Grafik). Selbes verhalten bei "LoadFromFile(<DateiName>)" -> Default WithClear = FALSE -- kommt einem Insert gleich.

    Vielen Dank für die Mühe.

    Christian Exner

    P.S.: Danke für die 5.20.7 Klappt jetzt mit GIF und PNG

    Hallo,

    folgendes Problem. Ich nutzte nicht GraphicEx sondern die zwei einzelnen Projekte für png und gif. Laden / speichern drag & drop klappt wunderbar solange die Property WriteObjectMode auf wobRTF steht. Stellt man diesen Modus um auf wobStandardAndRTF funktioniert drag and drop sowie das Laden vorher gespeicherte Dokumente. Werden diese nun verändert und neu gespeichert (mit dem WriteObjectMode wobStandardAndRTF) werden die GIF und PNG-Grafiken nicht mehr geladen. Word und OpenOffice zeigen diese aber dennoch an.

    Die Frage ist nun, warum klappt alles bei wobRTF und nicht bei wobStandardAndRTF.

    Gruß, Chris

    Hallo,

    ich habe eine eigene Klasse von TWPOimage abgeleitet. Ich zeichne in der Methode Paint mit bereits vorhandenen Methoden auf die Canvas (Übergabeparameter toCanvas und BoundsRect). Das zeichnen selber klappt sehr gut. Nur das TextOut mach Probleme.
    Bei der von Paint Übergebenen Canvas verhält sich die Methode TextOut bzgl. der Parameter X und Y nicht wie erwartet X=Links Y=Oben sondern X=Links und Y=Untern vom Text.
    Das liegt soweit ich es herausbekommen konnte wohl mit unter an dem MapMode der Canvas (MM_ANISOTROPIC). Der Workaround wäre die Berechnungen für Y entsprechend anzupassen, wenn der MapMode nicht der erwartete ist. Da es aber sehr viele TextOut's in den ganzen Methoden sind, möchte ich gerne wissen, ob es eine Möglichkeit gibt das kurzfristig umzuschalten, so das TextOut(X,Y,Text) wieder das erwartete Verhalten einer Canvas mit MapMode MM_TEXT hat. Den MapMode umzustellen klappt nicht, da dann alle Koordinaten (BoundsRect) nicht mehr korrekt sind.

    Vielen Dank für die Hilfe, Chris

    Hallo,

    WPTools 5.20.6, Delphi 2006

    ich habe wie in der Hilfe beschrieben eine ActionList mit einer Action des Typs TWPToolsCustomEditContolAction. Auf meinem Formular habe ich auch die passende WPCombobox (cbsTrueTypeFonts). Ich habe auch alles zugewiesen (WPRichText -> ActionList, Action -> Combobox).
    Erhält die WPRichtext-Komponente jetzt den Focus zeigt Combobox nichts an. Setzt man den Cursor an eine Stelle im bereits geschriebenen Text, zeigt die Combobox den entsprechenden Font des Textes an.
    Soweit ich das sehe zeigt die Combobox immer am ende eines Paragraf nichts an.
    Wo liegt also der Fehler?

    Gruß Chris

    P.S.: Packt man die Combobox auf einen WPToolPanel und weißt diesen dann WPRichText zu, funktioniert alles[/img]

    Hallo,

    ich soll diese Komponenten für Delphi 2006 testen. Die Demo gibt es aber nur bis Delphi 2005 daher test auf Delphi 7, aber das nur am rande.
    Ich habe mir die Demo herunter geladen und getestet und bin soweit sehr zufrieden. Dennoch stellen sich mir ein paar Fragen, die darüber entscheiden, ob diese Komponenten von meiner Firma gekauft werden:

    Wir haben ein Applikation die diverse Diagramme aufgrund von Daten erzeugt. Diese Diagramme möchte ich per Klick einfügen. Dies sollte kein Problem sein. Aber ich möchte darüber "informiert werden", wenn:
    - Die Grafik vom Anwender in der Größe verändert wird
    - Ein Rechtsklick auf die Grafik kommt
    @ Größenänderung: Die Grafik soll in der gewünschten größe neu gezeichnet werden (kein Strechtdraw!!!)
    @ Rechtsklick: Der Inhalt der Grafik soll angepasst werden, mit einem Dialog o.ä.
    All die Einstellungen (Größe / Anpassung des Inhalts etc.) sollte ich auch speichern können (es reicht ein freie String-Variable o.ä. da es nur ca. 12 Parameter sind)
    Ist es überhaupt sinnvoll hierfür ein Grafik-Objekt zu verwenden oder sollte man eine eigene Klasse ableiten. Gibt es dafür HowTo's
    Ich muss diese Grafik auch beim Laden des Dokuments "erkennen" und entsprechend den Inhalt anpassen.

    Ansonsten bin ich wirklich begeistert und nahe an der empfehlung zum kauf. Super Komponenten!!!!

    Gruß, Christian Exner

    [Edit] All diese Wünsche müssen natürlich nur in dem eigenen Fileformat erfüllt werden. RTF oder andere müssen diesen Anforderungen nicht mehr genügen [/Edit]