AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Schriftart,farbe usw. Projektweit festlegen
Thema durchsuchen
Ansicht
Themen-Optionen

Schriftart,farbe usw. Projektweit festlegen

Ein Thema von wfs12 · begonnen am 23. Mai 2007 · letzter Beitrag vom 23. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
wfs12

Registriert seit: 15. Nov 2006
60 Beiträge
 
Delphi 7 Personal
 
#1

Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 00:44
Guten abend besteht irgendwie die Möglichkeit, dass man die Font Eigenschaften nicht nur für eine Form, sondern für alle Forms des Projektes auf einmal festlegen kann?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 00:51
Na klar geht das : stelle alles auf einer Musterform ein. Schiebe die in die Objektablage und sage nicht neu -> Form, sondern fische sie bei andere -> ?? raus.
Gruß
Hansa
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#3

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 05:59
Hallo,

das ist aber eigentlich nur die halbe Antwort.
Wie mach ich das wenn schon "100" Forms existieren?

Grüsse
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#4

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 09:10
Zur Laufzeit oder zur Designzeit?

Schau mal in die Hilfe unter ControlCount/Controls. Iteriere alle Formen der Anwendung und dort alle Controls durch, damit sollte es zur Laufzeit geht. Zur Designzeit: such Dir nen guten Texteditor, der in mehreren Dateien parallel suchen&ersetzen kann, öffne alle .dfms im Textformat und ersetze sie dort.
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 09:46
Zitat von CCRDude:
Zur Laufzeit oder zur Designzeit?

Schau mal in die Hilfe unter ControlCount/Controls. Iteriere alle Formen der Anwendung und dort alle Controls durch, damit sollte es zur Laufzeit geht. Zur Designzeit: such Dir nen guten Texteditor, der in mehreren Dateien parallel suchen&ersetzen kann, öffne alle .dfms im Textformat und ersetze sie dort.
Das geht natürlich nur, wenn die Werte vorher vom Standard abweichen, da sonst die Eigenschaften nicht in der DFM gespeichert sind.

Alternativ: Eine Ableitung von TForm erstellen, die gewünschten Werte dort einstellen (evtl. gleich mittels Registry oder INI auch von aussen einstellbar machen) und in allen Projektdateien mittels Global Search & Replace TForm durch deine neue Klasse ersetzen. Neue Fenster dann über die Methode von Hansa.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 10:06
Das lässt sich über eine Form-Factory regeln.
Anstatt das Formular wie üblich direkt zu erzeugen wird folgende Procedure aufgerufen:
Delphi-Quellcode:
procedure GlobalCreateForm(InstanceClass: TComponentClass; var Reference);
var
  Instance: TComponent;
begin
  Instance := TComponent(InstanceClass.NewInstance);
  TComponent(Reference) := Instance;
  try
    Instance.Create(Application);
  except
    TComponent(Reference) := nil;
    raise;
  end;
  if Instance is TForm then
     with Instance as TForm do
     begin
        // Font zentral ändern
        // man sollte die Einstellung natürlich nicht hart codieren
        // sondern beim Progstart laden (z.B. aus INI-Datei)
        Font.Size := 12;
     end;
end;
Beispiel:
Delphi-Quellcode:
var
   frm : TMyForm;
begin
   GlobalCreateForm(TMyForm, frm); // statt Application.CreateForm()
   frm.ShowModal;
   ...
Andreas
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#7

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 10:08
@hsg: Hmmm... also der Fontname der Form selber ist bei mir immer drin (zumindest wo ich gerade reingeschaut habe) - der von Controls natürlich nicht, aber da kommt ja ParentFont zur Geltung, sprich da muss nicht zwingend etwas ersetzt werden?
(wobei deine Methode natürlich eleganter ist, das geb ich zu )

@shmia: oh je, an der .dpr rumpfuschen, das mag die IDE aber eigentlich gar nicht
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 10:46
Zitat von CCRDude:
@hsg: Hmmm... also der Fontname der Form selber ist bei mir immer drin (zumindest wo ich gerade reingeschaut habe) - der von Controls natürlich nicht, aber da kommt ja ParentFont zur Geltung, sprich da muss nicht zwingend etwas ersetzt werden?
(wobei deine Methode natürlich eleganter ist, das geb ich zu )

@shmia: oh je, an der .dpr rumpfuschen, das mag die IDE aber eigentlich gar nicht
Font.Size ist nicht enthalten (könnte man aber wohl über Font.Height setzen), okay, Zeichensatz mag wohl noch gehen, aber es gibt genug Properties die bei Default-Werten nicht in der DFM stehen und dann sitzt du mit deiner Lösung auf dem Schlauch

shmia will ja nicht unbedingt an der .dpr rumpfuschen, obwohl auch das geht. Man muss nur beachten, dass die Applikation am Schluss ein Hauptfenster hat, mit dem die VCL arbeiten kann (z.B. zum Bestimmen wie lange die MessagePump am Leben erhalten werden muss).
Alle weiteren Fenster sollte man sowieso nicht über den normalen Automatismus öffnen lassen, sondern es explizit an den geeigneten Stellen im Source-Code selber erledigen (und dort kann man dann anfangen zu streiten, ob man
Application.CreateForm(TMyForm,myFrm) oder
 myForm := TMyForm.Create(self); oder eben shmias Variante benutzt. Wobei diese Variante sich nur zur Laufzeit auswirkt. Braucht man das visuelle Feedback zur Designzeit (z.B. Anordnung von Controls bei Änderung der Schriftart und Größe) funktioniert die Form-Factory nicht.

Aber wie heisst es so schön: Alle Wege führen nach Rom (ich will aber nach Paris! )
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 12:51
Zitat von WS1976:
Wie mach ich das wenn schon "100" Forms existieren?
Wer zu spät kommt, den bestraft das Leben.

Alle DFMs durchsuchen, ersetzen usw., müsste zwar schon gehen, aber ob dann nicht unliebsame Quereffekte auftreten ?

Die DFM sieht dann nicht so aus :

object TForm1: TForm sondern die Objektablage produziert solche Forms :

inherited frm2: Tfrm Manche sagen deshalb auch "benutze die Form-Inheritance". Setzt die genaue Planung zu spät ein, dann dürften die meisten Vorteile verloren gehen. Zusätzlich müsste nämlich dann noch in allen abgeleiteten Forms in diesem Falle noch das wohl vorhandene Font = entfernt werden, usw. Wäre wohl sehr mühselig. Da bleibt wohl wirklich nur Laufzeit übrig. Oder alles neu und dieses mal richtig machen. Meine Formulare haben fast alle immer einen Vorfahren, weil immer irgendwas dazukommt und sei es nur eine Checkbox. Da die Bedienung aber einheitlich sein soll sind Tastatur- und Mausereignisse allerdings schon sehr früh in der Form-Hierarchie eingebaut. Eigentlich schade, dass solche mächtigen Sachen von kaum einem benutzt werden. Wäre bei mir irgendein Font projektweit umzustellen, das wäre eine Sache von 1 Min. !
Gruß
Hansa
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Schriftart,farbe usw. Projektweit festlegen

  Alt 23. Mai 2007, 13:43
Hansa, man kann sich aber einen kleinen blöden Translator schreiben, der einfach in der DFM die 1.Zeile ändert, sowie in den korrespondierenden PAS-Dateien in die USES-Klausel den Modulnamen der 'Vater-Form' sowie in die Deklaration der Form die Abhängigkeit von der Vaterform ablegen.

Ich hab das schon oft gemacht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 Uhr.
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