Hallo,
ich möchte einen Info-Text ausgeben und benutze dazu "ShowMessage(textmeldung)", wobei "textmeldung" vom Type String ist, und mit +sLineBreak formatiert ist.
D.h. die Zeilenende lege ich mit sLineBreak fest : textmeldung:='lange textzeile'+sLineBreak+'noch eine lange textzeile'+sLineBreak+'eine weitere lange textzeile'+sLineBreak;
Nun ist eine Textzeile breiter als 80 Zeichen und die Meldung wird automatisch umgebrochen.
Wie bekomme ich eine breitere Textausgabe hin
Oder was für Alternativen habe ich ?
Gruß
Uli
ShowMessage
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: ShowMessage
Erstmal ist das Problem, das das Widgetset/Betriebssystem spezifisch ist, ob und wo umgebrochen wird.
Was man machen kann, ist sich einen solchen Dialog selbst zu erstellen, dann hast du alles in der Hand. Ansonsten fällt mir einmal nichts dazu ein.
Was man machen kann, ist sich einen solchen Dialog selbst zu erstellen, dann hast du alles in der Hand. Ansonsten fällt mir einmal nichts dazu ein.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: ShowMessage
Hallo,
Danke für die Antwort.
Selber einen Dialog zu machen, ist mir aber zu aufwändig.
Gibt es sowas nicht schon fertig irgendwo (möglichst umsonst) ?
Bei der Gelegenheit:
Wie muss ich es machen, dass der Dialog sich automatisch schließt ?
Beispiel:
Programm startet
Meldungsbox "Initialisierung läuft, bitte warten..."
Wenn Prog.Init. fertig ist, soll sich die Messagebox automatisch schließen
Gruß
Uli
Danke für die Antwort.
Selber einen Dialog zu machen, ist mir aber zu aufwändig.
Gibt es sowas nicht schon fertig irgendwo (möglichst umsonst) ?
Bei der Gelegenheit:
Wie muss ich es machen, dass der Dialog sich automatisch schließt ?
Beispiel:
Programm startet
Meldungsbox "Initialisierung läuft, bitte warten..."
Wenn Prog.Init. fertig ist, soll sich die Messagebox automatisch schließen
Gruß
Uli
- kralle
- Lazarusforum e. V.
- Beiträge: 1196
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: ShowMessage
Moin,
Dann schaltetest Du die Editierbarkeit ab und spielst noch ein wenig mit den Eigenschaften des Rahmen.
Gruß Kralle
Du könntest eine TMemo nehmen und den Text dort reinschreiben (Immer so viele Zeichen pro Zeile wie Du möchtest.tolleware hat geschrieben: Fr 13. Sep 2024, 15:06 Gibt es sowas nicht schon fertig irgendwo (möglichst umsonst) ?
Dann schaltetest Du die Editierbarkeit ab und spielst noch ein wenig mit den Eigenschaften des Rahmen.
tolleware hat geschrieben: Fr 13. Sep 2024, 15:06 Bei der Gelegenheit:
Wie muss ich es machen, dass der Dialog sich automatisch schließt ?
Beispiel:
Programm startet
Meldungsbox "Initialisierung läuft, bitte warten..."
Wenn Prog.Init. fertig ist, soll sich die Messagebox automatisch schließen
Code: Alles auswählen
TMemo1.Close;
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
Re: ShowMessage
Nimm den TaskDialog. Schreibe den Text in die gleichnamige Property und ändere Width vom Defaultwert 0 auf einen Wert entsprechend deiner Stringlänge (in Pixeln). Darüber bietet TTaskDialog eine Vielzahl von Möglichkeiten (https://specials.rejbrand.se/TTaskDialog/):
Code: Alles auswählen
procedure MyShowMessage(AMsg: String; AWidth: Integer = 0; ACaption: String = ''; ATitle: String = '');
var
T: TTaskdialog;
begin
T := TTaskDialog.Create(nil);
try
T.Text := AMsg;
T.Width := AWidth;
T.Caption := ACaption;
T.Title := ATitle;
T.Execute;
finally
T.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
msg: string =
'Das ist eine sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr lange Meldung.' + LineEnding +
'Und noch eine Zeile.' + Lineending +
'Und noch eine...';
begin
MyShowMessage(msg, 600, 'Meldung', 'Meldungstext');
MyShowMessage(msg);
end;