Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Komponenten Eigenschaft im Stapel ändern (https://www.delphipraxis.net/204198-komponenten-eigenschaft-im-stapel-aendern.html)

Eppos 5. Mai 2020 15:41

Komponenten Eigenschaft im Stapel ändern
 
Hallo zusammen,

gibt es eine Möglichkeit, durch z.B. suchen/ersetzen, eine Eigenschaft einer Komponente zu ändern?
Beispiel: 100 Forms mit einem DBGrid, für jede Spalte die Schriftgröße auf 10 ändern

Danke und Gruß

Delphi.Narium 5. Mai 2020 16:15

AW: Komponenten Eigenschaft im Stapel ändern
 
Sollte gehen:

Die DFMs enthalten ja die Quelltexte der Formulare.

Was Du nun benötigst wäre ein Programm, das alle DFMs liest.

DBGrids kannst Du durch Textzeilen in dieser oder ähnlicher Form erkennen:
Delphi-Quellcode:
dbg: TDBGrid
Diese Zeilen kennzeichnen den Beginn eines DBGrids.

Dahinter folgen nun diverse Eigenschaften des DBGrids.

Die Spalten des DBGrids beginnen in dieser Art:
Delphi-Quellcode:
Columns = <
Mit
Delphi-Quellcode:
item
beginnt jeweils eine Spalte des DBGrids.
Dahinter folgen die Eigenschaften der jeweiligen Spalte.
Bei meinem Delphi ist die Schriftgröße 8 aus dem Objektinspektor in der DFM so zu finden:
Delphi-Quellcode:
Font.Height = -11
Um daraus die Schriftgröße 10 zu machen, muss man die -11 in -13 verwandeln, also
Delphi-Quellcode:
// aus
Font.Height = -13
// wird
Font.Height = -11
Aber: In der DFM stehen nur die Werte, die von den Standardwerten abweichen.

Bei meinem Delphi muss ich daher eine Spalte mit Standardwerten für die geänderte Schriftgröße so ändern:
Delphi-Quellcode:
// aus
          item
            Expanded = False
            Visible = True
// wird
          item
            Expanded = False
            Font.Charset = DEFAULT_CHARSET
            Font.Color = clWindowText
            Font.Height = -13
            Font.Name = 'MS Sans Serif'
            Font.Style = []
            Title.Font.Charset = DEFAULT_CHARSET
            Title.Font.Color = clWindowText
            Title.Font.Height = -13
            Title.Font.Name = 'MS Sans Serif'
            Title.Font.Style = []
            Visible = True
Du brauchst also einen etwas intelligenteren Parser, der Dir die Texte entsprechend ändert.

Mit etwas Geduld und Diziplin sollte aber ein entsprechendes Programm in ein paar Stündchen realisierbar sein und das so geänderte Formular weiterhin kompilierbar sein.

Ein Global-Change, bestehend aus purem Ersetzen von alter Zeichenfolge durch neue Zeichenfolge, dürfte nicht ausreichen.

Für Deine Delphiversion musst Du halt mal nachschauen, welche Änderungen Du konkret durchführen musst. Das Prinzip dürfte aber das Gleiche sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 Uhr.

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