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 schriftarten durchschalten (https://www.delphipraxis.net/87070-schriftarten-durchschalten.html)

everdream 22. Feb 2007 21:27


schriftarten durchschalten
 
'nabend!
ich suche eine methode, die es mir ermöglicht die mir zur verfügung stehenden schriftarten durchzuschalten, also speziell:
einen text in jeder vorhanden schriftart auszugeben.
wenn da wer was hätte, dann wär ich für heute abend glückseelig :angel:

danke schonmal im voraus!

mfg, max :cyclops:

bitsetter 22. Feb 2007 21:37

Re: schriftarten durchschalten
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Listbox1.Items:= screen.Fonts;
end;

everdream 22. Feb 2007 21:45

Re: schriftarten durchschalten
 
??? also so wie ich das hier gebastelt hab gibt mir das programm jetzt die liste aller schriftarten aus... sieht auch so aus als sollte der befehl das tun...

ich weiß nich, ob ich's falsch benutzt hab oder ob ich mich nur blöd ausgedrückt hab:
also, beispiel:
ich möchte den buchstaben 'a' in jeder vorhanden schriftart darstellen.
am liebsten wär mir dabei im moment ne for-to-do schleife, mit einer laufvariable, die die schriftart festlegt.
dann soll also die schleife durchlaufen, vom schema her etwa so:
Delphi-Quellcode:
for i:=1 to x do
begin
  listbox1.font:=listbox1.font+1; //natürrlich schwachsinn, aber vom prinzip her
  listbox1.items.add('a');
end;

bitsetter 22. Feb 2007 21:54

Re: schriftarten durchschalten
 
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  i: integer;
begin
  if Listbox1.Items.Count> 0 then
  for i:= 0 to Pred(Listbox1.Items.Count) do begin
    canvas.Font.Name:= Listbox1.Items.Strings[i];
    canvas.TextOut(10,i* 16, 'Hallo');
  end;
end;

Christian18 22. Feb 2007 21:55

Re: schriftarten durchschalten
 
Hi,

ich habe das Problem mal so gelösst.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var s : String;
      i : Integer;
begin
  s:='Dein Text kommt hier rein';

  for i:=1 to Screen.Fonts.Count - 1 do
    begin
      RichEdit1.Lines.Add(s);
      RichEdit1.SelAttributes.Name:=Screen.Fonts.Strings[i];
    end;
end;
PS: Ich hoffe ich konnte dir weiterhelfen. Und Herzlich Wilkommen erst mal.

MFG Christian18

everdream 22. Feb 2007 22:18

Re: schriftarten durchschalten
 
okay, also christians idee find ich recht nachvollziehbar und die müsste ja meiner und seiner meinung nach auch laufen, aber iwie ändert sich die schriftart bei mir nich... immer das gleich, und ich hab auch 'n RichEdit benutzt.
den weg von bitsetter versteh ich fast xD
wird da die schriftart nachträglich geändert?? sehr merkwürdig!

bitsetter 22. Feb 2007 22:41

Re: schriftarten durchschalten
 
Das 2. Beispiel von mir bezog sich auf das 1.
Delphi-Quellcode:
//im OI das Ivent onDrawItem für Listbox1 durch doppelklicken auswählen. //Delphi erstellt dann automatisch das Ivent, da schreibst du dann den Code rein.
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with Control as TListBox do
  begin
    if Index< screen.Fonts.Count then
    begin
      Canvas.FillRect(Rect);
      canvas.Font.Name:= screen.Fonts.Strings[Index];
      Canvas.TextOut(rect.Left, rect.Top,'a');
      canvas.Font.Name:= 'Arial';
      Canvas.TextOut(rect.Left+ 10, rect.Top, ' = '+ screen.Fonts.Strings[Index]);
    end;
  end;
end;

//im OI das Ivent onCreate für Form1 durch doppelklicken auswählen.
procedure TForm1.FormCreate(Sender: TObject);
begin
  Listbox1.Items:= screen.Fonts;
  Listbox1.Style:= lbOwnerDrawFixed;
end;
EDIT: Fontname in der Listbox wurde hinzugefügt
EDIT: jetzt auch noch mit Beschreibung

everdream 23. Feb 2007 16:28

Re: schriftarten durchschalten
 
:wiejetzt: sorry, bitsetter, aber um das zu verstehn sind meine kenntnisse glaub ich zu öberflächlich... :pale:

bitsetter 23. Feb 2007 17:28

Re: schriftarten durchschalten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist eine Demo:

everdream 23. Feb 2007 18:04

Re: schriftarten durchschalten
 
mkay,... also iwie scheint das ja zu funzen :gruebel: :gruebel: :gruebel: :gruebel: :gruebel:

danke auf jeden fall, vielleicht begreif ich das auch iwann noch :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 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