mehrzeiliger Text

Kyrius

Erfahrenes Mitglied
gott so viel fragen, ich könnt n Buch voll schreiben oO

also mal wieder eine Frage meinerseits!

Wie kann ich mehrzeiligen Text ausgeben, ohne mehrere Layer einzusetzen?

Sprich ein layer (oder eine EditBox oder schlag mich tod) mit 2-3 Zeilen.

geht das? wo ist das? wie mach ich das? hilfe?!
 
Unter BCB gibt es eine Komponente die nennt sich "Memo", probiers mal damit.

Greetz...
Sinac
 
k das teil sieht gut aus ;)

nur eine frage: wie kann ich die Zeilen ändern, während das programm läuft?

Memo1->Line1 = "Blah";

ist falsch, also wie gehts?
 
nein, so geht das euch net!

der Befehl heisst
Code:
Memo1->Lines->Add(Hier kommt dann der Text für eine Zeile rein!);

für jede Zeile musst du dann den befehl ausführen
 
Naja, fast richgtig, du musste den Parameter für den Aufruf der Methode
Memo1->Lines-Add() schon gerne in " " setzen oder eine Variable übergeben :)

Also so:
Code:
Memo1->Lines->Add("Hier kommt dann der Text für eine Zeile rein!");
oder
String text = "meine Zeile";
Memo1->Lines->Add(text);

Außerdem is der Ausdruck "Befehl" wohl etwas ungünstig gewählt :)

Greetz...
Sinac
 
Mehrezilige Anzeige ohne in einem Feld

Hi,

wenn ich Deine Frage richtig verstehe, möchtest Du beispielsweise einen längeren Text an ein Label, ein Memo oder sonst ein Feld übergeben und das Feld ist schmaler als der Inhalt. Oder anders ausgedrückt, der Text passt nicht in eine Zeile?

Dann muss Du nur für das entsprechende Feld WordWrap=true angeben.
Ausserdem musst du für das entsprechende Feld die Funktion AutoSize zulassen-

Beispiel:
Label1->AutoSize=true; Label1->Width=300; // Begrenzt
Label1->WordWrap=true;
Label1->Caption="Hallo, dies ist ein langer Text, der an ein Label übergeben wird. Er passt in keinem Fall in das in seiner Größe gebrenzte Label1, darum wird der Text automatisch umgebrochen ";

Die Werte für AutoSize oder Labelbreite kannst Du sowohl im Objektinspektor einstellen oder wie hier geschehen, im Quelletext einbinden.

Gruß
Giftzwockel
 
Mehrzeilige Memos

Hi noch mal,

wenn du unterschiedliche Meldungen oder Infos an ein Memo ausgeben willst, solltest Du die vorher als Variable definieren
Code:
String text1, text2;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
// Meldungen
text1= "Scio nescio";  // Lateinische Meldung
text2="Ups, I did it again"; // Englische Meldung
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{

Memo1->Lines->Add("Zwischen die Gänsefüsschen kannst Du direkt einen Text eintragen".)
Wenn Du Meldungen oder Routinen flexibler und übersichtlicher behandeln möchtest, solltest Du alle Meldungen entweder im Code selbst immer an ein und der selben Stelle verwalten (Siehe // Meldungen). Wenn Du später eine Meldung änderst und mit Variablen arbeitest, werden dann alle identischen Meldungen automatisch aktualisiert.
Code:
Memo1->Lines->Add(text1);
Memo1->Lines->Add(text2);

Bei kleineren, übersichtlichen Programmen kann man schon den Text direkt eingeben, besser und eleganter ist es, sich am Anfang etwas mehr Gedanken zum Programmaufbau zu machen und die erforderlichen Variablen korrekt zu definieren und zu Kommentieren.

Gruß
Giftzwockel
 
Zurück