![]() |
MessagBox in anderer Schriftart
Hi Leute,
ich habe eigentlich einfach nur vor, die Schriftart einer stinknormalen MessageBox zu ändern. unten bei dem großen Pfeil wird die Schriftart für das Label geändert. So, nun hab ich noch ne stelle markiert und zwar die, wo, wie ich denke, die größe für den textbereich festgelegt wird... :? naja auf jeden fall kommt es vor, dass bei veränderter schriftart, der text nicht vollständig auf der messagebox sichtbar ist. also abgeschnitten ist. und das möchte ich verhindern. habe probiert beim Label Autosize:=True anzuwenden, jedoch ohne erfolg. der text wird ja auch wahrscheicnlich durch das TextRect begrenzt.. So sehe ich das zumindest. naja auf jeden fall funzt das net :( und bräuchte dringend hilfe. hat da jemand eine idee? Hier ein auszug der Dialogs.pas:
Delphi-Quellcode:
function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons): TForm; ... if ButtonWidths[B] = 0 then begin TextRect := Rect(0,0,0,0); <---------------------------------------------- Windows.DrawText( canvas.handle, PChar(LoadResString(ButtonCaptions[B])), -1, TextRect, DT_CALCRECT or DT_LEFT or DT_SINGLELINE or DrawTextBiDiModeFlagsReadingOnly); ... TMessageForm(Result).Message := TLabel.Create(Result); with TMessageForm(Result).Message do begin Name := 'Message'; Font.Name := 'Verdana' //Default ist wohl Tahoma <----------------------------------- Parent := Result; ALeft := IconTextWidth - TextRect.Right + HorzMargin; if UseRightToLeftAlignment then ALeft := Result.ClientWidth - ALeft - Width; SetBounds(ALeft, VertMargin, TextRect.Right, TextRect.Bottom); end; ... end; end; Ciao :D |
Re: MessagBox in anderer Schriftart
Hi n0b0dy,
wenn Du rechtlich geschützten Code kopieren musst, dann konzentriere Dich bitte auf das Wesentlichste. Die oben gepostete Menge war eindeutig zu viel. Poste bitte nur die relevante Stelle, aber nicht sooo viel. ...:cat:... |
Re: MessagBox in anderer Schriftart
ui sry. :(
aber geht klar ! beim nächstenmal werd ichs berücksichtigen :) [EDIT] Hoffe so ists nun besser :) [/EDIT] |
Re: MessagBox in anderer Schriftart
Wieso kopierst du dir die Procedure nicht in eine eigene Unit und veränderst den Stringt mit 'Verdana' in das, was du willst?
Oder darf man das nicht? Was anderes: Ich finde das gar nicht schön, wenn ein Programm Fehlermeldungen anzeigt, die aus meinem Windows-Style herausfallen. Das sieht sehr überladen aus... Außerdem is es unprofessionell (außer du setzt es gezielt und passend ein...)... :wink: Grüße Faux |
Re: MessagBox in anderer Schriftart
glaube mir es ist SEHR passend. wirste mir noch bestätigen, wenns erstmal hier freeware ist *g*
ne, aber ich kopiere ja den text in eine eigene procedure und habe da auch Verdana eingetragen. das prob ist nur das, dass das Label auf der MessageForm zu klein für Verdana ist, und somit Teile des Textes abgeschnitten sind.... im ersten thread beim ersten pfeil wird wohl die größe festgelegt mit Windows.Draw.... wahrscheinlcih nimmt der dazu die StandardSchriftart von windows. aber da Verdana ja um eineiges Breiter ist, sieht man später nur Teile einer Frage oder so. und Ich wollte nun wissen, wie man das RICHTIG macht, mit der schriftart ändern :) |
Re: MessagBox in anderer Schriftart
Zitat:
dass für die Textausgabe benötigt wird und legt das Ergebnis in TextRect ab. Natürlich muss vorher der Font eingestellt werden. Du tust es danach... |
Re: MessagBox in anderer Schriftart
ja dann sag mir doch mal bitte mit was ich den Font festlegen soll, bzw wie?
unten da wird nur die schriftart vom label verändert. wie soll ich denn oben bei windows.Draw ne schriftart festlegen? |
Re: MessagBox in anderer Schriftart
Zitat:
Delphi-Quellcode:
Und passende Stelle gefunden? :zwinker:
//...
begin Result := TMessageForm.CreateNew(Application); with Result do begin BiDiMode := Application.BiDiMode; BorderStyle := bsDialog; {=>}Canvas.Font := Font;{<=} { /\ } { || } { || } //... Versuch das da mal... Bye |
Re: MessagBox in anderer Schriftart
Hai n0b0dy,
wie rufst Du das denn auf? Wenn ich es so mache kann ich den Font angeben:
Delphi-Quellcode:
procedure TForm1.btn_ShowDialogClick(Sender: TObject);
var myDialog : TForm; begin myDialog := CreateMessageDialog('blubb',mtInformation,[mbYes,mbNo]); try myDialog.Font.Name := 'Script'; myDialog.ShowModal; finally myDialog.Free; end; end; |
Re: MessagBox in anderer Schriftart
Zitat:
Noch ein Tip: Im grunde mußt du den Font vor
Delphi-Quellcode:
ändern, da der da ja schon gezeichnet wird, Informationen die er braucht sind ja im Canvas, sprich Font & Co, also oben mal schaun was ich geschrieben hatte und beachten, was Sharky gemacht hatte, dann liegt die lösung auf der Hand!
//...
Windows.DrawText( canvas.handle, PChar(LoadResString(ButtonCaptions[B])), -1, TextRect, DT_CALCRECT or DT_LEFT or DT_SINGLELINE or DrawTextBiDiModeFlagsReadingOnly); //... Die Lösung ist ganz ganz einfach :zwinker: Bye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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