Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 29.05.09 18:09 
Hallo!

Und wieder eine Frage!

Wie erzeuge ich ein nicht-modales Infofenster, dessen Grösse (=Breite) sich an den angegebenen Text anpasst?
Ein Dialogfeld erzeugen, auch ohne Buttons, kann ich. Aber ich möchte, dass lediglich ein Meldungsfenster sichtbar wird, das einen Text wie "Dateien werden kopiert, bitte warten." anzeigt, wobei der Text auch kürzer oder länger sein kann. Und während das Fenster sichtbar ist, wird kopiert oder was auch immer.

Das Fenster soll auch folgende Symbole anzeigen können:
mtCustom, mtInformation, mtConfirmation, mtError, mtWarning
... ihr wisst schon, was ich meine! :wink:

Also - ein Fenster, da aussieht wie zB. eine MessageBox, nur ohne Buttons und nicht modal.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 29.05.09 18:23 
Schau dir einmal CreateMessageDialog an, das sollte sein was du suchst. ;-)
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Sa 30.05.09 13:58 
Mit CreateMessageDialog erzeugt man ein modales Dialogfenster, oder? Ich werde wohl ein normales TForm nehmen und entsprechend anpassen müssen...
Trotzdem danke!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Sa 30.05.09 14:24 
Ja, wenn Du ein normales Fenster nimmst, dann würde ich sagen, dass Du LabelWieAuchImmerEsHeisst.Autosize:=true; setzt und dann bei FormMeldung.OnShow() dann guckst, wie groß das Label ist und das Form dann entsprechend angleichst.
Ich hoffe, dass das jetzt gerade in Deinem Sinne ist - oder?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 30.05.09 15:50 
user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Mit CreateMessageDialog erzeugt man ein modales Dialogfenster, oder? Ich werde wohl ein normales TForm nehmen und entsprechend anpassen müssen...
Sag mal warum schaust du dir eigentlich nicht an was man dir vorschlägt... :autsch: Ich hatte schon verstanden was du machen willst...
Und falls deine F1-Taste kaputt ist, poste ich dir mal die Hilfe dazu...
Zitat:
Call CreateMessageDialog to create a message dialog that will be used several times in an application. CreateMessageDialog returns a dialog of the type specified by the DlgType parameter and with the buttons indicated by the Buttons parameter. Users can copy messages created using CreateMessageDialog to the clipboard by pressing Ctrl+C.

Note: CreateMessageDialog does not display the dialog form. The application must display this form when it is needed by calling its ShowModal method.
Du bekommst also ein fertiges Formular (als TForm ganz normal) mit den ganzen Komponenten und Inhalten erzeugt und kannst es dann anzeigen (in deinem Fall mit Show statt ShowModal) und ggf. vorher verändern und mit weiteren Komponenten ergänzen...
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Sa 30.05.09 23:15 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Und falls deine F1-Taste kaputt ist, poste ich dir mal die Hilfe dazu...
Noch funktioniert meine Tastatur...

Ich hab's mir angeschaut, und als ich dann das mit der ShowModal-Methode gelesen habe - naja, ShowModal eben... Und da habe ich gedacht, das ist nicht, was ich brauche.
Ok, es funktioniert, aber auch wenn man keine Buttons anzeigt, ist die Höhe des Fensters so, als wären Buttons vorhanden. Nun kann man die Höhe zwar einstellen, aber auf welchen Wert? Wie soll ich die "Höhe" des Textes bekommen?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  aForm: TForm;
begin
 aForm := CreateMessageDialog('Message', mtInformation, []);
 aForm.Show;
end;

Ich habe mir in der Zwischenzeit eine normale TForm gebastelt.
Danke trotzdem!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 30.05.09 23:21 
Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  MyDialog: TForm;
  MessageLabel: TLabel;
begin
  MyDialog := CreateMessageDialog('Message', mtInformation, []);
  MessageLabel := MyDialog.FindComponent('Message'as TLabel;
  MyDialog.ClientHeight := MessageLabel.Top + MessageLabel.Height;
  MyDialog.Show;
  ...
Hast du keine Delphiversion mit Quelltext? Dann installiere dir am besten Turbo Delphi, denn da kannst du einfach den Quelltext anschauen und siehst da u.a., dass das erzeugte Label mit dem Text den Namen Message bekommt (und das ggf. größere Bild den Namen Image). ;-)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
    with TMessageForm(Result).Message do
    begin
      Name := 'Message';
      ...
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 31.05.09 11:31 
Hab mir den Quelltext gar nicht angesehen, wollte schnell weiterkommen, hab nur "ShowModal" gelesen, und das war's.
*betroffen schau* :oops:
Nochmals danke, werde dann wohl den Dialog nutzen!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!