Hallo,
ich habe ein vielleicht kleines Problem, welches ich aber ohne Hilfe nicht lösen kann bzw. keinen Ansatz finde:
Ich will meine gesamte Anwendung (TApplication) nach allen existierenden (auch noch nicht dargestellten) Formularen absuchen, kurz: nach allen TForm-Objekten, die mit Application.CreateForm erstellt wurden.
Beinahe jedes meiner Forms (alle Nachfahren von TForm) habe ich um eine bestimmte Property "IconScaling" erweitert, die auch überall so heißt.
Nun muss ich im Hauptformular für jedes meiner Dialoge/Fenster eine Code-Zeile in einer Routine schreiben. Ich würde das gerne automatisieren:
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: 27: 28: 29: 30: 31: 32: 33:
| procedure Tmainform.MainformResizerAfterScaling(IconScaling: Ticonscaling); begin mainmenubar.Font.Height:=-GetFontHeight(iconscaling); changeattributesform.iconscaling:=iconscaling; backgroundpictureform.iconscaling:=iconscaling; EditTextForm.iconscaling:=iconscaling; GradientFillStyleForm.iconscaling:=iconscaling; ImportPictureForm.IconScaling:=iconscaling; NewFileForm.IconScaling:=iconscaling; OptionsForm.IconScaling:=iconscaling; OverlayPictureForm.iconscaling:=iconscaling; patterneditform.IconScaling:=iconscaling; saveoptionsform.IconScaling:=iconscaling; selectiontoolsform.IconScaling:=iconscaling; sinclairfonttoolform.IconScaling:=iconscaling; aboutform.IconScaling:=iconscaling; filelistform.IconScaling:=iconscaling; DrawingInfoLabel.Font.Height:=font.Height; editfileattributesform.iconscaling:=iconscaling; headerchangerform.iconscaling:=iconscaling; openzipfileform.IconScaling:=iconscaling; pulsesequenceeditorform.iconscaling:=iconscaling; selectblockform.iconscaling:=iconscaling; RedrawRollButtonIcon(RollWestButton,RollWestAction); RedrawRollButtonIcon(RollEastButton,RollEastAction); RedrawRollButtonIcon(RollNorthButton,RollNorthAction); RedrawRollButtonIcon(RollSouthButton,RollSouthAction); RedrawRollButtonIcon(RollNorthEastButton,RollNorthEastAction); RedrawRollButtonIcon(RollSouthEastButton,RollSouthEastAction); RedrawRollButtonIcon(RollNorthWestButton,RollNorthWestAction); RedrawRollButtonIcon(RollSouthWestButton,RollSouthWestAction); adjustpaintbox; end; |
Es wäre schön, wenn ich jedes TForm-Fenster meiner Anwendung durchsuchen könnte, und prüfen, ob es über die Property "IconScaling" verfügt und dann diese mit einem Wert belegen. Das würde die Flexibilität meines Codes erhöhen.
Leider gibt mir TScreen über die Eigenschaft Forms nur die angezeigten Formulare wieder. TApplication hat gar keine Forms-Aufzählung.
Und ich bin mir nicht sicher, ob es eine Funktion zum Auffinden von Eigenschaften gibt....
Kann mir da jemand auf die Sprünge helfen?
Vielen Dank im Voraus!