Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Panel-Caption nur einzeilig?


D. Annies - Sa 01.01.11 22:07
Titel: Panel-Caption nur einzeilig?
Hi, Delpher,
ich versuche mit folgendem Code, mehrere Zeilen an die Caption eines Panels zu übergeben:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
  bericht := '';
    if FileExists(Excel_da) then
    begin
      bericht := bericht + 'Datei Excel.exe ist auf der Platte vorhanden' + #13;
      ExcelYesNo := true;
    end
    else
      bericht := bericht + 'Datei Excel.exe fehlt auf der Platte!' + #13;
  //------------------------------------------------------------------
    if FileExists(Word_da) then
    Begin
      bericht := bericht + 'Datei Winword.exe ist auf der Platte vorhanden' + #13;
      WordYesNo := true;
    end
    else bericht := bericht + 'Datei Winword.exe fehlt auf der Platte!' + #13;
  //------------------------------------------------------------------
    if fileexists(SOffice_da) then
    Begin
      bericht := bericht + 'Paket StarOffice ist auf der Platte vorhanden' + #13;
      SOfficeYesNo := true;
    end
    else
      bericht := bericht + 'Paket StarOffice fehlt auf der Platte!' + #13;
    
    PanelBlitz(self);  // showmessage(bericht); 


    ////
    procedure TBuchMain.PanelBlitz(sender: Tobject);
    begin 
      timer2.Enabled := true;
      Panel1.caption := bericht;
      Panel1.Parent := BuchMain;
      Panel1.Visible := true; Panel1.BringToFront;
    end;
    ////


Aber leider bekomme ich nur eine Zeile zu sehen, obwohl es ja mehrere sind (z.B. wenn ich showmessage verwende.

Wer hat eine Idee?
Gruß, Detlef


Moderiert von user profile iconGausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Sa 01.01.2011 um 22:14


D. Annies - Sa 01.01.11 22:19

Habe jetzt ein Label auf dem Panel platziert (Align = alClient), so geht es schon mal, aber wie kann man genau
die variable Größe des Panels skkalieren?
Gruß, Detlef


platzwart - Sa 01.01.11 23:01

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
aber wie kann man genau die variable Größe des Panels skkalieren?
Gruß, Detlef


Was meinst du genau?!?


D. Annies - Sa 01.01.11 23:03

Autsch, ich meine natürlich die variable HÖHE des Panels, wenn es mehrzeilig ist.
Det


Xion - Sa 01.01.11 23:14

Ich würde es so machen:


Delphi-Quelltext
1:
2:
3:
4:
5:
Label1.Caption:=Bericht; //ich glaube du solltest #13#10 statt #13 verwenden
Label1.AutoSize:=True;

Panel.Height:=Label1.Height+2*Label1.Top;
Panel.Width:=Label1.Width+2*Label1.Left;


D. Annies - Sa 01.01.11 23:20

Hi, Xion,
leider keine Veränderung zu vorher, Autosize ist auch schon im OI gesetzt.
Gretz, Det


Xion - Sa 01.01.11 23:21

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Habe jetzt ein Label auf dem Panel platziert (Align = alClient)


Das musst du noch abstellen ;) Das beißt sich natürlich mit AutoSize :D Also garkein Align, nur Left/Top müsstest du setzen.


D. Annies - So 02.01.11 09:42

Danke, Xion, jetzt klappt es!
Gruß, Detlef