![]() |
einfache mehrzeilige Textausgabe
Hallo zusammen,
ich habe als absoluter Delphi-Neuling ein simples Problem, auf daß ich bisher noch keine zufriedenstellende Antwort gefunden habe. Ich möchte in einem Bereich der 'MainForm' Text mehrzeilig ausgeben (vergleichbar mit Print in Basic). Diesem Zweck kommt das Memo-Feld eigentlich schon nahe, wenn der Cursor zur Texteingabe nicht wäre. Labels sind nur einzeilig. Dann soll es noch Funktionen wie DrawText usw. geben, die furchtbar kompliziert aussehen... Inzwischen habe ich mir mit einem Memo-Feld (Enabled=Fals) beholfen; aber das kanns eigentlich nicht sein. Gibt es in Delphi wirklich keine einfache Textausgabefunktion? Für einen Hinweis wäre ich euch sehr dankbar. Gruß, JSch |
Re: einfache mehrzeilige Textausgabe
du kannst ein memo nehmen und die property readonly auf true setzen. Und dann eben mit MemoX.Lines.Add('meintext'); schreiben.
Was auch möglich wäre: Ein Label und dann die Caption wie folgt im Quelltext setzen:
Delphi-Quellcode:
oder eben den Text "hinmalen" (DrawText)
Label1.Caption := 'Zeile1' + #13 + #10 + 'Zeile2';
Mfg TObi |
Re: einfache mehrzeilige Textausgabe
Hallo Tobias,
vielen Dank für Deine Hinweise. Das mit dem Memo-Feld und dem ReadOnly=True habe ich versucht. Der Cursor bleibt aber nur solange inaktiv, solange man nicht mit der Maus ins Memo-Feld klickt. Dann erscheint der blinkende Cursor wieder, auch wenn man keine Zeichen eingeben kann. Gruß, JSch |
Re: einfache mehrzeilige Textausgabe
Schau dir das mal an
![]() hier wurde statt einem Memo ein Richedit verwendet. Ist im Prinzip das gleiche. Mfg Tobi |
Re: einfache mehrzeilige Textausgabe
Das mit dem Label fände ich persönlich besser.
Memos sind nunmal gedacht zur Texteingabe oder für so Sachen wie Logs, wo der Text auch kopiert werden muss. Für einen einfachen, nicht-markierbaren Text sind Memos gedacht. |
Re: einfache mehrzeilige Textausgabe
Ich würde definitiv ein Memo nehmen! :warn:
Der Cursor der dir so störend erscheint ist eigentlich ein Vorteil. Der Benutzer kann damit einfach Text (ins Clipboard) kopieren. Also ich habe mich schon öfters geärgert, weil manche Anwendungen ihre mehrzeiligen Texte nicht kopieren lassen. Abschreiben ist wirklich lästig. |
Re: einfache mehrzeilige Textausgabe
Zitat:
Schau mal im OI unter Wordwrap Uwe |
Re: einfache mehrzeilige Textausgabe
Hallo,
vielen Dank nochmals für Eure Tips und Anregungen. Inzwischen habe ich die Textausgabe so hinbekommen, wie ich das haben wollte :-D und zwar mit einem Memo-Feld. Mit der ganzen Rumprobiererei war mir nicht aufgefallen, daß ich zuerst das Memo-Feld und danach das Panel angelegt hatte - das Ganze umgedreht und schon gings. Zusammengefaßt für alle, die das gleiche Problem haben: 1. Ein Panel anlegen (Enabled = False setzen) 2. Ein Memo-Feld darauf platzieren (ReadOnly = Ture setzen) 3. Bei 'Lines (TStrings)...' soviele Leerzeilen eingeben, wie später Zeilen benötigt werden 4. Später im Quellcode Ausgaben z.B. mit ' Memo1.Lines.Strings[1]:='ABC'; ' vornehmen Das mag dem Profi womöglich holprig oder ungeschickt erscheinen aber im Moment tuts. Nochmals Danke. Bis denne, JSch |
Re: einfache mehrzeilige Textausgabe
Für einen einfachen Zeilenumbruch wie bei PHP ein \n benutzen.
Delphi-Quellcode:
label1.caption:='Hallo, erste Zeile\nZweite Zeile';
|
Re: einfache mehrzeilige Textausgabe
Zitat:
2. Statt vorher festzulegen, wieviele Zeilen es geben soll, einfach für jede neue Zeile
Delphi-Quellcode:
Memo1.Lines.Add('ABC');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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 by Thomas Breitkreuz