Beiträge von skoschke

    Hallo,

    ich habe Tabellenzeilen in der Höhe begrenzt

    Code
    row.ASet(WPAT_BoxMinHeight, H);
    row.ASet(WPAT_BoxMaxHeight, H);

    und möchte nun reagieren, wenn der Benutzer mehr Text eintippt wie in die Zelle passt.

    Daher wird im KeyUp folgendes gemacht:

    Code
    par := fWPRichText.ActiveParagraph;
    // Texthöhe;
    th := par.LineHeight(0) * par.LineCount;
    //oder par.HeightTotal
    // Zellenhöhe
    par.ParentRow.AGet(WPAT_BoxMaxHeight, zh);
    if th > zh then
      begin
          showmessage('zu hoch');   
      end;

    aber die Zeilenhöhe wird viel größer ermittelt als die Höhe des Textes, selbst wenn dieser eine Zeile mehr hat als dargestellt werden kann!

    (Beispiel Texthöhe ca. 720 und Zeilenhöhe Tabelle ca. 1780)

    Werden hier unterschiedliche "Einheiten" verwendet (das eine in Twips, das andere in Pixel?) und wenn ja wie kann ich umrechnen?

    Leider gibt die Hilfe nur an, das das Integer Werte sind, aber nicht welche Einheit...

    Ciao

    Stefan

    Das Problem war, dass ich bei der Implementierung des Beispiels in mein Programm mit CPMoveBack irgendwie nicht in die Tabelle zurück gekommen bin, um auf die Tabelle zugreifen zu können.

    Der Tip mit rtfdata.AppendTable war genau der richtige Ansatz!

    Jetzt habe ich die Tabelle im Zugriff und kann damit arbeiten.

    Vielen Dank!

    Ciao

    Stefan

    Irgendwie stehe ich auf dem Schlauch:

    Ich erstelle Textboxen im Header mit

    Code
    WPRichText1.TextObjects.InsertTextBox(b, h, rtfdata,
              SpecialText.FirstPar)

    Nun habe ich folgendes vor:

    Ich möchte in der Textbox eine Tabelle haben, mit einer Zeile und einer Spalte.

    Dort wäre es ein einfaches, die Textgröße abzufragen und wenn der Text nicht passt entsprechend als Hinweis rote Rahmen der Zelle rechts oder unten anzuzeigen.

    Ein weiterer Grund für die Tabelle ist, dass der Benutzer nicht den gesamten enthaltenen Text markieren und löschen kann, denn damit wird auch automatisch die Textbox selbst entfernt!

    In der Tabellenzelle kann er tun und lassen was er will, da kann er nichts kaputtmachen.

    Ich bekomme es allerdings nicht hin, das Beispiel mit einer InputTextbox für meine Textboxen im Header umzusetzen:

    Ziel sind Textboxen, deren eine Tabellenzelle vom Programm gefüllt werden, die der Benutzer aber danach editieren kann.

    Ciao

    Stefan

    Hallo,

    in der C:\WPTools\Demos\P) Premium\TextBox habe ich in der rechten Textbox mal versucht, den Einzug der Zeilen zu verändern, das funktioniert zwar, aber die Ruler-Anfasser und die gestrichelte Hilfslinie sind weitab von der Position der zu verändernden Texte!

    Schiebe ich den Ruler 5mm bekomme ich auch einen Einzug von 5mm, aber für den "normalen Anwender" später sollten die Ruleranfasser und die Hilfslinie schon mit dem Text der Textbox übereinstimmen!

    Kann man das irgendwie "hinbiegen"?

    Ciao

    Stefan

    Hallo,

    ich füge Felder in ein Dokument ein, diese kann man (das ist erlaubt) komplett umformatieren, Schriftfarbe, Größe, fett, ...

    Wird nun der Inhalt des Feldes im MailMergeGetText gesetzt ist die Formatierung futsch :-(

    Gibt es eine Möglichkeit, die Formatierung des Feldes für dessen Inhalt zu übernehmen?

    Ciao

    Stefan

    Folgendes schützt bei Verwendung der Del-Taste vor Löschen der Feldmarkierungen wenn einzelne Zeichen gelöscht werden:

    Code
    WPRichText1.ProtectedProp :=WPRichText1.ProtectedProp +[ppisInsertPoint];

    Wird aber ein Textbereich, welcher Felder enthält, markiert und Del gedrückt, ist alles incl. der Felder weg :-( Aber auch da wird es bestimmt einen Trick geben?

    Ciao Stefan Edit:

    ich gebe mir mal selbst die Antwort:

    Code
    WPRichText1.ProtectedProp := WPRichText1.ProtectedProp +
        [ppisInsertPoint, ppIsMergedText, ppProtectSelectedTextToo];

    bringt den gewünschten Effekt :-)

    Ich dachte ich finde durch Debugging die richtige Stelle, aber leider erfolglos:

    Ich möchte das rote <<Feldname>> zum Beispiel durch '[' Feldname ']' ersetzen da unsere Anwender das so gewohnt sind.

    Gibt es da eine Möglichkeit?

    Und eine zweite Frage in diesem Zusammenhang: kann man verhindern, dass der Nutzer solche Felder löscht?

    Ciao

    Stefan

    Wie im Demo füge ich Bilder über InsertOnPaint ein:

    Das funktioniert auch für bmp, jpg, png, nicht aber für z.B. bei gif oder tif

    Gibt es einen Weg, auch diese Formate in einem wpobjImage abzulegen?

    Ciao

    Stefan

    Hallo,

    im Textbox-Demo kann man das ganz gut nachvollziehen:

    Demo starten und dann mit der Toolbar eine Tabelle erzeugen.

    Wenn man nun in die Tabelle klickt steht der Cursor exakt in der angeklickten Zelle, soweit so gut.

    Klickt man nun in eine Textbox kommt erst der Rahmen und beim zweiten Klick steht der Cursor in der Textbox, auch gut.

    Klickt man nun wieder in die Tabelle (z.B. Zeile 2 Spalte 1) steht der Cursor in der letzen Zelle dieser Zeile!
    Erst beim zweiten Klick auf die gewünschte Zelle ist der Cursor richtig!

    Bleibt man mit Klicks in der Tabelle werden die Zellen richtig angesteuert, aber nach einem zwischenzeitlichen Klick in eine Texbox wird nach Wechsel auf die Tabelle wieder zuerst die falsche (letzte) Zelle der Tabelle aktiviert!

    Da ich im OnChangeCursorpos mit der Cursorposition arbeite, ist das natürlich nicht schön, kann das irgendwie geändert werden?

    Ciao

    Stefan

    Danke für den Hinweis!

    Ich habe alle Eventhandler auskommentiert, außer OnGetSpecialText und OnTextObjectClick, und in den Events exakt den Code eingefügt, mit der die Demo die Textboxen in den Headern erstellt bzw. editiert!

    Sobald ein MouseDown auf einer Textbox erfolgt, sehe ich den Cursor an den Dokumentanfang springen und das Dokument scrollt an den Anfang!

    Den einzigen Unterschied zur Demo sehe ich darin, dass die Demo bereits Text enthält, wogegen ich mit einem leeren Dokument starte?

    Ich bin echt ratlos, daran suche ich seit 3 Tagen!

    Kann man das beschriebene Verhalten durch "ungünstige" Propertys des WPRichText erzeugen?

    Ciao

    Stefan

    Hallo,

    ich versuche mal zu beschreiben wo das Problem liegt:

    - Es ist ein Dokument erstellt mit mehreren Textboxen.

    - ich klicke auf eine solche Textbox, aber da springt der Cursor schon im MouseDown an den Dokumentanfang und das Dokument wird nach oben gescrollt und das gewünschte Textobjekt verschwindet aus dem Sichtbereich

    - damit wird dann ein falsches, gerade unter dem Cursor befindliches Textobjekt angewählt.

    Im TextObject.Mouseup habe ich

    Wie kann ich das temporäre Springen des Cursors an den Dokumentanfang verhindern?

    Ciao

    Stefan

    Hallo,

    ich habe die Version 8.05.2 installiert, in der Demo werden unten in einer Tabellenzelle angeordnete Texte jetzt korrekt markiert.

    Nur in meiner davon abgeleiteten Komponente ist alles beim Alten und ich bekomme nicht heraus, warum!

    Kann man die Version irgendwie zur Laufzeit abfragen, im Designer wird das ja unter RTFText angezeigt.

    Edit:

    In der Demo hatte ich mit der Maus nur Textteile markiert und gesehen, es funktioniert jetzt, in meiner Ableitung wird aber jeweils der gesamte zellentext markiert!

    Nein, ich habe die aktuelle Version implementiert, die aber immer noch einen Fehler hat:

    Markiert man mit der Maus einen Teil des unten stehenden Textes, ist die Markierung hellblau korrekt so hoch wie der Text, markiert man aber alles wird die Markierung wieder so hoch wie die ganze Tabellenzelle!

    Gleiches passiert per Code, SelStart und sellLength < Textlänge funktioniert, SelLength = Textlänge macht die Markierung wieder wie Zellenhöhe! (SelectParagraph ebenso).

    Ich bewege mich mit der TAB-Taste durch die Tabelle und z.B. bei Preisen soll dann der (unten in der Zelle stehende) Preis komplett markiert sein, so dass der Benutzer sofort was anders tippen kann ohne erst Del drücken zu müssen...

    Ciao

    Stefan

    Zitat

    Ist dieses visuelle Problem wirklich so kritisch?

    Für meinen Chef schon ;-) , besonders wenn die Tabellenzeile sehr viel höher als eine Zeile ist, sieht das doch recht komisch aus.

    Es wird erwartet, dass ich ein bestehendes Projekt welches Lieferscheine / Rechnungen / etc. darstellt, auf WPTOOLS umstelle und für die Kunden soll optisch am besten alles so aussehen wie seit 'zig Jahren gewohnt.
    Ich halte diese Anforderung auch für verständlich...

    Wenn es in absehbarer Zeit ein Update gibt wäre das hervorragend, dann kann ich mich anderen Punkten des Projekts widmen!

    Trotzdem wäre es für mich interessant zu erfahren wie man nur ein paar einzelne Zeichen eines Paragraphen in Schriftfarbe / Hintergrundfarbe ändert ;-)

    Ciao

    Stefan

    Edit:

    Bin schon am Download der neuen Version, vielen Dank!