![]() |
mehrzeilige Infobox
Wenn ich eine ehrzeilige Infobox hab, wie kann ich das im Quelltext auf mehrere Zeilen verteilen, sonst meckert Delphi, das ihm die Zeile zu lang sei.
|
Re: mehrzeilige Infobox
Was meinst Du mit Infobox?
|
Re: mehrzeilige Infobox
Delphi-Quellcode:
MessageBox(Handle,'(1) Im Leistungsblock A werden die in den beiden doppelt gewichteten Fächern in den ersten drei Kurshalbjahren erzielten Leistungen in zweifacher Wertung und die im vierten Kurshalbjahr erzielten Leistungen in einfacher Wertung angerechnet.' ,'Info',MB_OK or MB_ICONINFORMATION);
|
Re: mehrzeilige Infobox
Delphi-Quellcode:
MessageBox(Handle,PChar('Dies ist die erste Zeile.'+#13#10+'Und dies die zweite.'),'Wuppdi',MB_OK or MB_ICONINFORMATION);
|
Re: mehrzeilige Infobox
ja das ist klar, wie das geht ist schon klar, aber wenn ich so 20x verfahre dann sagt delphi die zeile ist zu lang(länger als 1023 zeilen)
D.h. ich hab eine echt große infobox. Gibt es vielleicht Alternativen?!? |
Re: mehrzeilige Infobox
Du musst doch nur im Quelltext umbrechen.
|
Re: mehrzeilige Infobox
Bau dir eine neue Form und klatsch eim Memo oder Label drauf, dazu einen Ok-Button.
Das ist in diesem Falle besser als eine Informations-Box als Textanzeige zu missbrauchen. ;) |
Re: mehrzeilige Infobox
Wozu eine Form, wenn es eine MessageBox auch tut?
|
Re: mehrzeilige Infobox
Noch schnell ein praktische Beispiel, bevor er schreibt er hat es verstanden (und mein kleiner Beitrag sinnlos wäre):
Delphi-Quellcode:
Ein Informations-Box hat nur einen Sinn: Textanzeige ;) (Ja OK stimmt nicht ganz...)
MessageBox(Handle,'(1) Im Leistungsblock A werden die in den beiden doppelt '#13+
'gewichteten Fächern in den ersten drei Kurshalbjahren '#13+ 'erzielten Leistungen in zweifacher Wertung und die im '#13+ 'vierten Kurshalbjahr erzielten Leistungen in einfacher '#13+ 'Wertung angerechnet.' ,'Info',MB_OK or MB_ICONINFORMATION); |
Re: mehrzeilige Infobox
Das ist doch auch nur eine Textanzeige. Ich würde mir den Text evtl. als Konstante hinterlegen, im Quelltext entsprechend umbrechen und auf der Messagebox anzeigen.
|
Re: mehrzeilige Infobox
Und wie geht sowas, tut mir Leid...
|
Re: mehrzeilige Infobox
Ich dachte jetzt, er weis nur nicht, wie er lange Strings in der IDE umbricht... vor allem weil es ja eigentlich trivial ist, musste schnell ein Beispiel her. Wie er in der MessageBox umbricht wusste er ja.
Text auslagern: Neue Unit zum Projekt (z.B. ohne Formular) -> Datei -> Neu
Delphi-Quellcode:
Dort wo die Messagebox ist die Unit in der Uses-Klauses (am besten im implementations-Teil) einbinden und:
unit MyProject1Texte;
interface const txt_MeldungZumFeldBlabla = 'Das ist Feld Blabla mit der Funktion:'#13#13+ // Zeilenumbruch in MessageBox 'BlubBlubBlubBlubBlub'; [...]
Delphi-Quellcode:
MessageBox(Handle,txt_MeldungZumFeldBlabla ,'Info',MB_OK or MB_ICONINFORMATION);
|
Re: mehrzeilige Infobox
Delphi-Quellcode:
const derText = 'Dies ist ein langer Text, '+sLineBreak+
'der im Quältext umgebrochen werden muss'; .... MessageBox(Handle,PChar(derText),'Trallalla',MB_OK or MB_ICONERROR); |
Re: mehrzeilige Infobox
Alles klar Danke vielmals!
|
Re: mehrzeilige Infobox
Der Text ist IMHO bereits viel zu lang, um den mit Gewalt in ein eigentlich für einzeilige Sachen gedachtes Dingens zu stecken. Außerdem würde ich mal überlegen, den Text in einer Datei zu hinterlegen und nicht in der EXE. Insofern wäre was gefordert, was LoadFromFile beherrscht. Oder wie wärs mit INI ? 8)
|
Re: mehrzeilige Infobox
Beim aktuellen Kenntnisstand und wenn es nicht so viele Meldungen der Art sind, ist das doch OK?
Werden lange Textkonstanten nicht sowieso vom Compiler in die Ressourcen ausgelagert :gruebel: |
Re: mehrzeilige Infobox
Zitat:
Delphi-Quellcode:
Als bessere Alternative zu const.
resourcestring
StrText = '...'; |
Re: mehrzeilige Infobox
Mehr als 1024 Byte geht aber nicht bei Ressourcestrings.
|
Re: mehrzeilige Infobox
Zitat:
|
Re: mehrzeilige Infobox
Nein, das hatte ich auch einmal versucht, daher weiß ich das.
|
Re: mehrzeilige Infobox
Mal abgesehen davon, dass es ja wohl wenig Sinn hätte...
Für derart lange Strings sind andere Lösungen ja ohnehin sinnvoller. Wie soll man mit so langen Strings im Quelltext noch den Überblick bewahren? |
Re: mehrzeilige Infobox
Liste der Anhänge anzeigen (Anzahl: 1)
Das Thema ist ja jetzt genug durchgekaut, aber sonntags darf man ja mal bisschen spielen. :stupid: Habe mal aus der Objektablage ein vorgefertigtes Formular genommen (irgendwas mit OkBottomDialog, in D7 bei Dialoge). Im OI Memo draufgemacht, den Borderstyle auf bsNone gesetzt und die Farbe auf clBtnFace. Und noch diese eine Zeile :
Delphi-Quellcode:
Muss der Text unbedingt in die EXE, dann eben Lines.Add... verwenden und fertig. Das schreiben hier hat jetzt 5mal länger gedauert, als diese Mini-Form zusammenzuklicken.
procedure TOKBottomDlg.FormCreate(Sender: TObject);
begin mem1.Lines.LoadFromFile('unit1.pas'); end; |
Re: mehrzeilige Infobox
Wobei das eine mal wieder nix mit dem anderen zu tun hat, gell?
|
Re: mehrzeilige Infobox
Was hat womit nichts zu tun ? :shock: Ich wollte gerade die Anfänger darauf aufmerksam machen, dass in Delphi vieles schon fertig bereitliegt und es nur benutzt/gefunden werden muss. Häufig wird auch unnötig viel rumgewurschtelt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 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