Autor |
Beitrag |
p_m
Hält's aus hier
Beiträge: 9
|
Verfasst: Mo 21.05.07 15:31
Könnt ihr mir mal bitte eine vereinfachte Methode eines solchen Codes geben: 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:
| procedure TForm2.Schrift1Click(Sender: TObject); begin if DSchrift.Execute then Label1.Font.Name := DSchrift.Font.Name; Label2.Font.Name := DSchrift.Font.Name; Label1.Font.Size := DSchrift.Font.Size; Label2.Font.Size := DSchrift.Font.Size; Label1.Font.Style := DSchrift.Font.Style; Label2.Font.Style := DSchrift.Font.Style; Label1.Font.Charset := DSchrift.Font.Charset; Label2.Font.Charset:= DSchrift.Font.Charset; BSpeichern.Font.Name:=DSchrift.Font.Name; BSpeichern.Font.Size:=DSchrift.Font.Size; BSpeichern.Font.Charset:=DSchrift.Font.Charset; BAusgeben.Font.Name:=DSchrift.Font.Name; BAusgeben.Font.Size:=DSchrift.Font.Size; BAusgeben.Font.Charset:=DSchrift.Font.Charset; BDiagramm.Font.Name:=DSchrift.Font.Name; BDiagramm.Font.Size:=DSchrift.Font.Size; BDiagramm.Font.Charset:=DSchrift.Font.Charset; BDiagramm2.Font.Name:=DSchrift.Font.Name; BDiagramm2.Font.Size:=DSchrift.Font.Size; BDiagramm2.Font.Charset:=DSchrift.Font.Charset;
end; | geht um eine FontDialog-Anweisung wäre nett !!!!! Danke schon mal im voraus Moderiert von Christian S.: Delphi-Tags repariert
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Mo 21.05.07 15:38
Würdest du deinen Quelltext bitte mit den Delphi-Tags formatieren.
Vielen Dank.
Du könntest z.b. mit with arbeiten:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| with Label1.Font do begin Name := DSchrift.Font.Name; Size := DSchrift.Font.Size; Style := DSchrift.Font.Style; end; |
Ich weis nicht ob du direkt den Font-Teil übergeben kannst, hab grad kein Delphi das zu testen:
Delphi-Quelltext 1:
| Label1.Font := DSchrift.Font; |
EDIT: Die letzte Variante funktioniert auch, ist also die einfachste.
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 21.05.07 15:48
Chatfix hat folgendes geschrieben: | Ich weis nicht ob du direkt den Font-Teil übergeben kannst, hab grad kein Delphi das zu testen:
Delphi-Quelltext 1:
| Label1.Font := DSchrift.Font; |
EDIT: Die letzte Variante funktioniert auch, ist also die einfachste. |
Die einfachste mag es sein, aber so sollte man es nicht machen...
Besser:
Delphi-Quelltext 1:
| Label1.Font.Assign(DSchrift.Font); |
Der Grund: Mit letzterem Code werden lediglich die Attribute kopiert, nicht aber der vorhandene Zeiger auf eine Instanz von TFont durch einen anderen überschrieben.
Wenn man das nämlich macht, dann wird wohl eine Änderung an einer der beiden Font-Eigenschaften auch bei der anderen ankommen.
Das hab ich nicht getestet, aber ich glaube, dass es so ist...
// EDIT: Nö, ist nicht so. Vielleicht ist die Zuweisung doch dasselbe wie Assign. Keine Ahnung.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Mo 21.05.07 16:01
jaenicke hat folgendes geschrieben: | Der Grund: Mit letzterem Code werden lediglich die Attribute kopiert, nicht aber der vorhandene Zeiger auf eine Instanz von TFont durch einen anderen überschrieben.
Wenn man das nämlich macht, dann wird wohl eine Änderung an einer der beiden Font-Eigenschaften auch bei der anderen ankommen.
Das hab ich nicht getestet, aber ich glaube, dass es so ist...
// EDIT: Nö, ist nicht so. Vielleicht ist die Zuweisung doch dasselbe wie Assign. Keine Ahnung. |
Die Set-Methode des Font-Properties macht ein Assign.
Stefan
_________________ Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mo 21.05.07 16:07
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:
| procedure TForm2.Schrift1Click(Sender: TObject); begin if DSchrift.Execute then begin Label1.Font.Name := DSchrift.Font.Name; Label2.Font.Name := DSchrift.Font.Name; Label1.Font.Size := DSchrift.Font.Size; Label2.Font.Size := DSchrift.Font.Size; Label1.Font.Style := DSchrift.Font.Style; Label2.Font.Style := DSchrift.Font.Style; Label1.Font.Charset := DSchrift.Font.Charset; Label2.Font.Charset:= DSchrift.Font.Charset; BSpeichern.Font.Name:=DSchrift.Font.Name; BSpeichern.Font.Size:=DSchrift.Font.Size; BSpeichern.Font.Charset:=DSchrift.Font.Charset; BAusgeben.Font.Name:=DSchrift.Font.Name; BAusgeben.Font.Size:=DSchrift.Font.Size; BAusgeben.Font.Charset:=DSchrift.Font.Charset; BDiagramm.Font.Name:=DSchrift.Font.Name; BDiagramm.Font.Size:=DSchrift.Font.Size; BDiagramm.Font.Charset:=DSchrift.Font.Charset; BDiagramm2.Font.Name:=DSchrift.Font.Name; BDiagramm2.Font.Size:=DSchrift.Font.Size; BDiagramm2.Font.Charset:=DSchrift.Font.Charset; end; end; |
hättest du gescheit formatiert, wäre dir (hoffentlich) aufgefallen, dass du ein begin end; vergessen hast. verkürzen könnte man das zB so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm2.Schrift1Click(Sender: TObject); var names: array[1..6] of string = ('Label1', 'Label2', 'BSpeichern', 'BAusgeben', 'BDiagramm', 'BDiagramm2'); i: integer; begin if DSchrift.Execute then for i := 1 to 6 do with findcomponent(names[i]).Font do begin Name := DSchrift.Font.Name; Size := DSchrift.Font.Size; Charset := DSchrift.Font.Charset; end; end; |
oder du weißt gleich die komplette font zu.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm2.Schrift1Click(Sender: TObject); var names: array[1..6] of string = ('Label1', 'Label2', 'BSpeichern', 'BAusgeben', 'BDiagramm', 'BDiagramm2'); i: integer; begin if DSchrift.Execute then for i := 1 to 6 do with findcomponent(names[i]) do Font := DSchrift.Font; end; |
mfg
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Mo 21.05.07 16:35
Hallo,
oder, wenn das in das Anwendungslayout passt, leg die Komponenten auf ein Panel.
Dann braucht man nur die Fonteigenschaft des Panels ändern, vorrausgesetzt die Eigenschaft ParentFont der Komponenten hat den Wert True. Einzelne Komponenten kann man davon ausschließen indem man bei diesen ParentFont auf False setzt.
Dann bleibt die Codezeile übrig:
Delphi-Quelltext 1:
| Panel.Font := DSchrift.Font; |
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 21.05.07 18:27
Moin!
@ p_m: Könntest du dem Thread bitte einen aussagekräftigen Titel geben (z.B. "Font-Eigenschaft mehrerer Controls auf einmal setzen"), damit man auch ohne Durchlesen ahnen kann, worum es hier geht?  Danke.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
|