![]() |
Formatieren mit "format"
Hallo, Delphi-Praktiker,
ich möchte in einer Message-Box mehrere Zeilen mit Text und Zahlen in Spalten sauber untereinander ausgeben. Meine Versuche, das mit der function "format" zu erreichen, schlugen bisher fehl: Wahrscheinlich durch die proportionale Schrift stehen die Spalten ziemlich wild untereinander. Wie kann ich das Ziel erreichen ? Wie kann ich den Font für die Message-Box notfalls auf Courier ändern (nicht-proportionale Schrift) ? Kann man evtl. mit einem Tabulator arbeiten, dessen Position und Lage (rechts-, linksbündig) definiert ist ? Vielen Dank, Klaus-Peter |
Re: Formatieren mit "format"
Hallo Klaus-Peter,
ich bin ziemlich sicher, dass deine Idee realisierbar ist, aber ich würde das nie so anfassen. Der Aufwand steht einfach in keinem Verhältnis zum Nutzen. Warum baust du dir nicht schnell einen eigenen Dialog mit den gewünschten Fähigkeiten? Freundliche Grüße |
Re: Formatieren mit "format"
Liste der Anhänge anzeigen (Anzahl: 1)
Ansonsten geht es auch etwas komplizierter.
Delphi-Quellcode:
uses ComCtrls, ExtCtrls;
function MessageDlgEx(const MsgCaption, Msg: String; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; var i, NewHeight: Integer; Lv: TListView; Dlg: TForm; LItem: TListItem; LiColumn: TListColumn; Img: TComponent; begin Dlg:= CreateMessageDialog(Msg, DlgType, Buttons); with Dlg do try Caption := MsgCaption; HelpContext := HelpCtx; Lv:= TListView.Create(Dlg); Lv.Top := 5; Lv.Left := 5; Lv.Width := Dlg.ClientWidth- Lv.Left * 2; Lv.Height := 50; Lv.Parent := Dlg; Lv.Color := Dlg.Color; Lv.BorderStyle := bsNone; Lv.ViewStyle := vsReport; Lv.ShowColumnHeaders := false; LiColumn := Lv.Columns.Add; LiColumn := Lv.Columns.Add; LItem := Lv.Items.Add; LItem.Caption := 'Zeile1'; LItem.SubItems.Add('567'); LItem := Lv.Items.Add; LItem.Caption := 'Zeile2'; LItem.SubItems.Add('789'); LItem := Lv.Items.Add; LItem.Caption := 'Zeile3'; LItem.SubItems.Add('679'); TImage(FindComponent('Image')).Visible:= false; for i := 0 to Pred(ComponentCount) do if Components[i] is TButton then begin NewHeight:= (Lv.Top* 2 + Lv.Height)- TButton(Components[i]).Top; if NewHeight> 0 then TButton(Components[i]).Top := TButton(Components[i]).Top + NewHeight else NewHeight := 0; end; Height := Height + NewHeight; Result := ShowModal; finally Free; end; End; procedure TForm1.Button1Click(Sender: TObject); begin if MessageDlgEx('Test', '', mtConfirmation, mbOKCancel , 0) = mrYes then ShowMessage('Ok'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 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