Announcement

Collapse
No announcement yet.

PasteFromClipboard größer 65535 Byte?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PasteFromClipboard größer 65535 Byte?

    Programmiere mit Delphi7 und nutze u.a. in einer Richedit-Anwendung die Funktion PasteFromClipboard. Beim Einfügen großer Textfelder begrenzt die Funktion jedoch bei 65535 Byte (Stringlänge max 16 Bit). Das Einfügen der Zwischenablage in ein "Profiprogramm" funktioniert in kompletter Länge (ca 185000 Byte). Speichere ich die Windows-Zwischenablage in eine Datei (per Profiprogramm) und lese die Text-Datei in mein Programm ein, habe ich die Daten in voller Länge. Liegt die Begrenzung an meinen Compilereinstellungen? Habe als Compileroptionen nur die Standardeinstellung {$O-} und {$R *.DFM}.
    Bei den Standard-Proceduren gibt es keine Optionen für längere String z.B. longint. Wer kann helfen?

  • #2
    Das RichEdit in D7 basiert auf einen uralte API von Windows.
    Neuere Delphi-Versionen verwenden neuere WIndows-API's. Alternativ kannst du das TJCLRichEdit aus der JCL/JVCL verwenden.

    Comment


    • #3
      Danke für Rückmeldung. Muss etwas zu meiner Person sagen. Hatte im Beruf mit Assembler und mit einigen Hochsprachen zu tun, gegen Ende mit Turbo-Pascal (geringfügig). Programmiere hobbymäsig mit Delphi erst im Ruhestand (da war Delphi 7 top-aktuell). Arbeite nur für eigenen Gebrauch (nicht kommerziell).
      Habe jetzt im Internet gesucht und etwas über TJCLRichedit gelesen. Kann aber bisher nur wenig damit anfangen (verstehe in englisch nicht alles).
      Daher gibts .weitere Alternativen? Möchte ja das von mir entwickelte sehr umfangreiche Programm nicht neu erstellen. Bin leider erst jetzt durch Zufall auf die Begrenzung gestoßen.
      Habe einen Editor mit speziellen Funktionen entwickelt, den es so nicht gibt. Eigenartig ist nur, dass ich eine eingelesene große Datei (ca. 500 000 Byte) mit Strg C in voller Länge in den Zwischenpuffer übernehmen kann. Die Begrenzung liegt bei der Strg V-Funktion.

      a) ist TJCLRichEdit eine Komponente die als zusätzliche uses in Delphi7 integriert wird? Komme nämlich ansonsten mit dem eingeschränkten Komponenten-Umfang gut zurecht

      Comment


      • #4
        Ich habe die Lösung inzwischen gefunden! Beim Einfügen eines TRichedit-Objektes ist die Vorbesetzung des Parameters MaxLength = 0 (in Delphi 7). Dies soll angeblich "unbegrenzte" Zeilenzahl zulassen. Bei Datei-Öffnen gibt es tatsächlich nur die 2GByte-Grenze. Beim Einfügen (Strg+ V) begrenzt Wert Null aber den Text auf besagte 2 hoch 16 = 65535 Byte.
        Lösung: Setze MaxLength im Objektinspektor auf $7FFFFFF0 = 2147483632. Dann stehen volle 2 GByte zur Verfügung.
        Erkenntnis: Man soll sich nicht immer gleich durch vorschnelle Antworten auf neuere Produkte vertrösten lassen. Hartnäckigkeit wird belohnt!

        Comment

        Working...
        X