Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi anstelle von 'ShowMessage' formatierten Text anzeigen lassen (https://www.delphipraxis.net/47912-anstelle-von-showmessage-formatierten-text-anzeigen-lassen.html)

juergen 17. Jun 2005 20:04


anstelle von 'ShowMessage' formatierten Text anzeigen lassen
 
Hallo zusammen,
ich habe nun einiges gesucht aber leider nicht das gefunden was ich benötige.
Ich gebe über einen Buttonklick ein Messagefenster aus. Hier habe ich aber das Prob, dass ich hier keinen formatierten Text ausgeben kann. (Absätze, eingerückter Text ect.)
Ich kann zwar auf eine feste Monitor-Auflösung den Messagetext "anpassen" , aber sowie man eine andere Auflösung verwendet, sieht es halt chaotisch aus...

Was könnt ihr mir als Alternative zum ShowMessage empfehlen?

Bitte so antworten, dass ich als Newbie es auch verstehe ;-)

Vielen Dank schon mal vorab!

Gruß Jürgen

Daniel G 17. Jun 2005 20:08

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
Ich empfehle dir da einfach mal "MessageBox". Damit kannst du dem Fenster ein typisches Icon (Fragezeichen, Warnzeichen etc. pp.) verpassen und das Fenster außerdem noch mit einem individuellen Titel versehen.

Übrigens:
Auch mit showmessage kann man einen formatierten Text ausgeben. Um z.B. eine Neue Zeile zu beginnen, nimmst du:

Delphi-Quellcode:
showmessage('Zeile 1' + #13#10 + 'Zeile 2');
mfg
Daniel

Pr0g 17. Jun 2005 20:10

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
Du könntest dir auch nen eigenen MessageDialog erstellen (Form mit ShowModal anzeigen). Den kannst du dann beliebig Formatieren.

MfG Pr0g

Pseudemys Nelsoni 17. Jun 2005 20:44

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
Delphi-Quellcode:
ShowMessage(Format('Zeile1%sZeile2%0:sZeile3%0:sZeile4', [#13#10]));
usw

juergen 17. Jun 2005 21:57

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
Erste einmal vielen Dank an alle!
Mit der Möglichkeit der Formatierung im ShowMessage bin ich schon ein ganzes Stück weiter.
Aber:
ich glaube MessageBox wäre noch besser :-)
Ich habe nun einiges probiert damit und auch verschiedene Codeschnipsel ausprobiert, aber mein Delphi5 gibt mir immer folgende Fehlermeldung aus:
"Unbekannte Anweisung: 'Messagebox'

Hat jemand eine Ahnung woran das liegen könnte?

Grüße Jürgen

Daniel G 17. Jun 2005 22:09

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
Delphi-Quellcode:
application.messagebox
Für die Parameter kannst du die Delphi - OH zu Rate ziehen.

[Edit] Hast du eigentlich die Unit "Dialogs" bzw. "Windows" in der Uses - Klausel?[/Edit]

juergen 17. Jun 2005 22:59

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
@Daniel G:
Danke für Deine schnelle Antwort.
Ich hatte mir vorher schon in der Hilfe die Parameter angeschaut.
Es kommt aber immer diese Fehlermeldung... Als ob Delphi mit Messagebox nichts anfangen kann.
Ich denke aber, dass ich nicht in der Lage bin den Code richtig zu schreiben.

Die Unit "Dialogs" bzw. "Windows" sind in der Uses - Klausel...


Wie genau müsste der Code denn geschrieben werden um z.B. erst einmal nur "Text-Probe" anzuzeigen?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
//Test Messagebox

function MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;

end.
Meine ganzen "Versuche" hierzu will ich erst gar nicht zeigen...;-)
Grüße Jürgen

Daniel G 17. Jun 2005 23:04

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
Moment, ich mach dir mal eben ein Beispiel fertig... Und du versprichst mir, ein gutes Buch über Delphi zu lesen, ja?

[Edit]
So dala:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
MessageBox(application.Handle,'Dies ist ein Text','Das der Titel',MB_OK   or MB_ICONWARNING);
end;

end.
Erklärung:

Zuerst erstellst du ein Formular, packst ein Button darauf und klickst diesen Doppelt an. Dann schreibst du in das OnClick-Event wie oben zu sehen ist, folgendes:

Delphi-Quellcode:
MessageBox(application.Handle,'Dies ist ein Text','Das der Titel',MB_OK   or MB_ICONWARNING);
Eigentlich müsste sich das von selbst erklären. Mit dem logischen "or" verknüpfst du halt mehrere Attribute.

Bei Fragen geht's am Besten per PN weiter... Sonst werden wir noch OT... ;)

Die Muhkuh 18. Jun 2005 07:25

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
Hi,

ich verlinke mal auf Matzes Standard-Dialoge Tutorial, dort ist auch alles gut erklärt.

http://www.pri-dev.net/tutorial0,de.html

juergen 18. Jun 2005 12:25

Re: anstelle von 'ShowMessage' formatierten Text anzeigen la
 
Vielen Dank an Daniel G und Spider für Eure Mühen!
Beides ist für mich sehr hilfreich.
Mein Prob war, dass ich "erwartet" hatte, dass wie bei ShowMessage sich von ganz allein ein Fenster auch bei Messagebox öffnet...

Allen ein schönes, sonniges Wochenende!

Grüße Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 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