Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi font im memo? (https://www.delphipraxis.net/62748-font-im-memo.html)

tom_po 8. Feb 2006 22:45


font im memo?
 
wie kann ich eine memo mit meiner font-komponente definieren?

benutze diesen Code, aber ohne Erfolg:
Delphi-Quellcode:
procedure Takn.Label5Click(Sender: TObject);
var i: integer;
begin
fontdialog1.Execute;
FontDialog1.Font := memo1.Font;
  for i := 0 to (memo1.ControlCount - 1) do
    if (memo1.Controls[i] is TButton) then
      (memo1.Controls[i] as TButton).Font :=
        FontDialog1.Font
end;
danach benutze ich eine tnpdf-komponente zur Darstellung im pdf-format. Aber der Font ändert sich nicht, wie definiert!!

turboPASCAL 8. Feb 2006 23:11

Re: font im memo?
 
Ist das Memo ein Standard-Memo von Delphi ? :gruebel:

Der Jan 9. Feb 2006 07:03

Re: font im memo?
 
Zitat:

Zitat von tom_po
benutze diesen Code, aber ohne Erfolg:
Delphi-Quellcode:

fontdialog1.Execute;
FontDialog1.Font := memo1.Font;

Wie soll das auch gehen? Vertausch mal die beiden Zeilen. Könnte helfen.... :)

tom_po 9. Feb 2006 08:04

Re: font im memo?
 
na klar, jetzt geht's, danke. Da stand mir irgendeiner auf der Leitung...

marabu 9. Feb 2006 08:12

Re: font im memo?
 
Hallo Leute - besser so:

Delphi-Quellcode:
with FontDialog do
begin
  Font.Assign(Memo.Font);
  if Execute then
    Memo.Font.Assign(Font);
end;
Grüße vom marabu

tom_po 9. Feb 2006 08:40

Re: font im memo?
 
danke wiedermal, marabu, hab's jetzt so:
Delphi-Quellcode:
procedure Takn.Label5Click(Sender: TObject);
  begin
   with FontDialog1 do
    begin
    Font.Assign(Memo1.Font);
    if Execute then
    Memo1.Font.Assign(Font);
    end;
  end;
aber sag mal, wieso ist das so besser?

ich stelle ja das pdf-file mit meiner tnpdf-Komponente dar, wenn ich aber jetzt den Font aus meiner Memo übernehmen will gibt's ne Fehlermeldung:

Delphi-Quellcode:
//printpdf1.Font.Name:=pohelvetica;
//printPDF1.Font.Size:=20;
printPDF1.Font := memo1.font;
printPDF1.MemoOut(30,940, Memo1);
Message beim Kompilieren:
[Fehler] AknUni.pas(263): Inkompatible Typen: 'TPDFFont' und 'TFont'

der Font-Teil des tnpdf sieht so aus:
Delphi-Quellcode:
Type TPDFOrientation = (poPortrait, poLandscape);
Type TPDFBrushStyle = (poSolid, poDashed, poBeveled, poInset, poUnderline);
Type TPDFFontName = (poHelvetica,poHelveticaBold,poHelveticaOblique,
poHelveticaBoldOblique,poCourier,poCourierBold,poCourierOblique,
poCourierBoldOblique,poTimesRoman,poTimesBold,poTimesItalic,
poTimesBoldItalic,poSymbol,poZapfDingbats);

type TPDFFont = class
public
Name:TPDFFontName;
Size:Integer;
end;

marabu 9. Feb 2006 10:23

Re: font im memo?
 
Ich wollte dich darauf hinweisen, dass du vielleicht auf das Abbrechen des FontDialogs reagieren solltest, anstatt den Wunsch des Benutzers einfach zu ignorieren.

Die Zuweisung von TFont an TPDFFont muss fehlschlagen. Den Grund sagt dir der Compiler - die beiden sind nicht kompatibel. Allerdings würdest du bei Kompatibilität "besser" so vorgehen:

Delphi-Quellcode:
printPDF1.Font.Assign(memo1.font);
Du darfst nicht vergessen, dass mit dem assignment operator mitunter nur Zeiger kopiert werden - ein deep copy (alle Felder und Strukturen) erreichst du nur mit Assign().

marabu

-=wWw=- AK23 9. Feb 2006 13:05

Re: font im memo?
 
somit hättest du den gesamten Text in einer einzigen
Schriftart.

Ich hab da so eine Idee, ich schmeiß mal delphi an :zwinker:

-=wWw=- AK23 9. Feb 2006 13:13

Re: font im memo?
 
Mist. Unkompatible typen.

Naja, wie auch immer, ich würde dir empfehlen auf Richedit umzusteigen.
Jetzt kenn ich die PDF Komponente nicht die du benutzt, aber ich denke das das
funktionieren sollte.

So, hier noch mal mein falscher Denkansatz:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
try
  fontdialog1.Execute;
finally
  richedit1.SelAttributes.Charset:=fontdialog1.Font;
end;
end;
jetzt muss man noch dazu sagen, dass meine delphi-fähigkeiten äußerst eingeschränkt sind.
da gibt es sicher elegantere (und funktionierende) lösungen.

tom_po 9. Feb 2006 14:34

Re: font im memo?
 
marabu:

printPDF1.Font.Assign(memo1.font);

assign geht bei mir nicht, wird bei printpdf1.font.??? nicht gefunden, bzw. angezeigt!

was meinst du zum Vorschlag von Niklas (danke noch für dein Input) betr. der Verwendung von richedit anstatt von Memo?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz