![]() |
AW: Zeichenlänge eines Memo zu klein
Beim Memo die Eigenschaft WordWrap auf false stellen müssten einen automatischen Zeilenumbruch verhindern.
|
AW: Zeichenlänge eines Memo zu klein
Setze einen Breakpoint am Anfang deiner Procedure und steppe durch. Kleiner Hinweis: ich hab den Code oben noch mal ein wenig abgeändert, denn das Add gehört in den Try-Block und die Fehlermeldung e.message sollte man ebenfalls protokollieren.
|
AW: Zeichenlänge eines Memo zu klein
mit Wordwrap funzt nicht, da die Zeile ja zu lang ist.
immer noch der gleiche "Fehler", dass die Anzahl Zeilen = 1 ist. Kann es sein, dass er den String als eine Zeile einliest? |
AW: Zeichenlänge eines Memo zu klein
Zitat:
1. Welche Delphi-Version? Die Frage gilt der Unicode-Unterstützung: Ab Delphi 2009 sind Strings unicodefähig und nicht mehr auf 256 Zeichen begrenzt. 2. Wo hast du FehlerListe deklariert? Doch hoffentlich als globale Variable, wie im Beispielcode vorgeschlagen, und nicht in der Procedure Runterladen. 3. Zeig uns doch bitte mal deinen Code, inkl. FormCreate, ButtonKlick und Runterladen. Zitat:
|
AW: Zeichenlänge eines Memo zu klein
TFormMain.FormCloseQuery ist etwas "ungünstig" zum Speichern, aber vorallem zum Freigeben.
Das Gegenstück zum OnCreate ist OnDestroy, also was man im OnCreate erstellt, gibt man es im OnDestroy frei. Denn eine Form die geschlossen wird, kann auch wieder angezeigt werden, ohne sie neu zu erstellen. Und OnCloseQuery wird nicht immer aufgerufen, denn z.B. die Freigabe via Free schließt die Form direkt, ohne Nachfrage. |
AW: Zeichenlänge eines Memo zu klein
Zitat:
In meinen Anwendungen wird jedoch niemals eine Form via Free geschlossen, sondern immer durch vom Anwender ausgelöste Aktionen wie Button- oder Menüklick oder Alt-F4 usw. Insofern muß ich jetzt wohl nich alle meine Projekte durchgehen und eine Ereignisbehandlung für OnDestroy hinzufügen :?: Ich dachte immer, wenn ich Close in der Hauptunit aufrufe, wird das Programm beendet. Gilt natürlich nicht für Close in weiteren Forms, die mit Show oder ShowModal angezeigt werden. Aber du hast natürlich recht: besser sind Freigaben und Ähnliches in OnDestroy aufgehoben. |
AW: Zeichenlänge eines Memo zu klein
Strings sind übrigens seit Delphi 2(!!) nicht mehr auf 256 Zeichen begrenzt. Wieso die Stringliste nur eine Zeile enthält, könnte in der Tat mit nicht erkannten Zeilenumbrüchen zu tun haben. Unter Windows ist der Zeilenumbruch #13#10, unter Unix #13 und AFAIK unter MacOS #10. Was passiert denn, wenn Du den empfangenen String mal in einer Datei speicherst und diese mit Notepad (nicht Wordpad) öffnest? Ist das dort auch nur eine Zeile (ggf. mit "komischen Zeichen" drin)?
|
AW: Zeichenlänge eines Memo zu klein
Zitat:
|
AW: Zeichenlänge eines Memo zu klein
TForm.Close schließt grundsätzlich erstmal nur die Form (quasi Hide/Visible), aber gibt sie nicht frei (außer man gibt z.B. im OnClose das caFree an).
Bei der MainForm ist da aber noch eine Besonderheit, denn wird diese geschlossen, dann wird der Schliessenbefehl an Application weitergegeben, genauso wie Minimieren da auch an Application durchgeht. MainForm ist die Form, welche bei Application.MainForm registriert ist. Und standardmäßig wird die erste TForm, welche über CreateForm erstellt wird, automatisch als MainForm registriert. MDI-Forms werden beim Schließen (Close) ohne einen OnCloseQuery-Aufruf direkt mit caFree dichtgemacht. Ach ja, als Gegenstück von OnClose könnte man OnShow ansehen. |
AW: Zeichenlänge eines Memo zu klein
Zitat:
Und den "alten" ![]() Seit mindestens D2 ist "String" kein generischer Typ, sondern leitet nur an die "aktuelle" String-Definition weiter. Also AnsiString und seit D2009 den UnicodeString. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz