AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Properties von Forms und Komponenten mit vorgegebenen Werten
Thema durchsuchen
Ansicht
Themen-Optionen

Properties von Forms und Komponenten mit vorgegebenen Werten

Ein Thema von bernau · begonnen am 22. Sep 2008 · letzter Beitrag vom 23. Sep 2008
Antwort Antwort
Benutzerbild von bernau
bernau
Online

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#1

Properties von Forms und Komponenten mit vorgegebenen Werten

  Alt 22. Sep 2008, 21:03
Ursprünglich hatte ich ein Kommetar im Thread Deine Frage an CodeGear angegeben. mkinzler hatte mir eine Antwort gegeben. Da aber in diesem Thread eine Diskussion vermieden werden soll, mache ich zu diesem Thema einen neuen Thread auf

Noch mal zum Verlauf meiner Frage:

Zitat von bernau:
Es gibt bestimmte Properties, die ich immer wieder auf einen bestimmten Wert setzen muss.

Eine neue Form erhält bei mir grundsätzlich für das Property "Position" den Wert "poScreenCenter". Bei einem Panel verwende ich für das Property "BevelOuter" zu 95% den Wert "bknone".

Wäre gut, wenn man Properties in der IDE mit Werten vorbelegen kann. Damit diese Werte sofort angewendet werden.

Gerd
Dann die Antwort:

Zitat von mkinzler:
Geht, wenn du die Objekte in der Objektablage ablegst

So jetzt geht's weiter:

Die Objektablage kenne und ist mir wieder in Erinnerung gerufen. Die Objektablage kann aber nur Forms als Vorlage speichern. Ich hätte das gerne auch für Komponenten wie TPanel.

Hier wollte ich nun Abschicken. Habe mir aber gedacht, daß ich die Suche benutze und siehe da. Ich habe folgendes gefunden.

Standardeigenschften verändern

Einge richtig schöne Sache. Nun bin ich glücklich. Kosmetisch gesehen, wünsche ich mir diesen Punkt auf ein popup-Menü, wenn ich eine Komponente rechts anklicke.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Properties von Forms und Komponenten mit vorgegebenen We

  Alt 22. Sep 2008, 22:51
Hallo Gerd,

du könntest auch einen Blick auf die GExperts werfen. Die erlauben mit dem Rename Components Tool nicht nur das halbautomatische Benennen von Komponenten, sondern auch die Vorgabe (fast) beliebiger Eigenschaftswerte. Eine Beschreibung findest du auf dieser Seite, wenn du dort im Menü das Tool auswählst.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Properties von Forms und Komponenten mit vorgegebenen We

  Alt 23. Sep 2008, 02:38
Es gibt auch noch eine sehr interessante Möglichkeit diese Properties vorzubelegen: mit einer Fabrikmethode.
Üblichweise wird ein Formular ja so erzeugt:
form3 := TForm3.Create(nil); oder alternativ auch so:
Application.CreateForm(TForm4, form4); Das ändern wir jetzt, indem wird das Formular nicht selbst direkt erzeugen, sondern einer anderen Klasse den Auftrag geben, für uns das Formular zu erzeugen:
  TAppFormFactory.CreateForm(TForm5, form5); Die Fabrikmethode erlaubt es, bestimmte Dinge wie z.B. Fontgrösse global für die gesamte Anwendung zu ändern.
Es gibt allerdings die Einschränkung, dass das nur für Formulare geht, die dynamisch zur Programmlaufzeit erzeugt werden.
Bei den Formularen, die in der Projektdatei automatisch erzeut werden, geht das leider nicht, da die Erzeugung mit Application.CreateForm stattfindet und sich die IDE da ungern hineinreden lässt.

Die Klasse TAppFormFactory sieht z.B. so aus:
Delphi-Quellcode:
type
  TAppFormFactory=class(TObject)
  protected
    class procedure ModifyComponent(comp:TComponent);
  public
    class procedure CreateForm(InstanceClass: TComponentClass; var Reference);
  end;

implementation

class procedure TAppFormFactory.ModifyComponent(comp:TComponent);
begin
  if Comp is TForm then
  begin
     TForm(Comp).Position := poScreenCenter; // default Form Position
  end
  else if Comp is TLabel then
  begin
    // Fontname und Grösse wurden beim Programmstart aus einer Ini-Datei gelesen
    // und in globalen Variablen abgelegt
    TLabel(Comp).Font.Name := globalLabelFont;
    TLabel(Comp).Font.Size := globalLabelSize;
  end;
  for i := 0 to Comp.ComponentCount-1 do
     ModifyComponent(comp.Components[i]) // rekursiver Aufruf für alle untergeordneten Komponenten
end;

class procedure TAppFormFactory.CreateForm(InstanceClass: TComponentClass; var Reference);
begin
  Application.CreateForm(InstanceClass, Reference); // Formular erzeugen
  ModifyComponent(TComponent(Reference)); // Eigenschaften anpassen
{$IFDEF DEBUG}
  with (Reference as TForm) do
    Caption := Classname+ '-' + Caption; // jedes Formular trägt seinen Klassenname in der Caption
{$ENDIF}
end;
Man kann das jetzt noch ausbauen, indem man nicht nur eine FabrikMethode (hier: CreateForm) sondern verschiedene auf ihren jeweiligen Einsatzzweck zugeschnittene Methoden (z.B. CreateModalForm) verwendet.
Ausserdem sollte man eine Basisklasse mit virtuellen Methoden haben und die Formfactory-Klasse davon ableiten.
So kann man je nach Einsatzzweck verschiedene FormFactory-Klassen verwenden.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau
Online

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Properties von Forms und Komponenten mit vorgegebenen We

  Alt 23. Sep 2008, 09:30
Zitat von sx2008:
Es gibt auch noch eine sehr interessante Möglichkeit diese Properties vorzubelegen: mit einer Fabrikmethode.
Sieht interessant aus. Aber globale Einstellungen mache ich bei größeren Projekten mit Formvererbung, was der Fabrikmethode (vom Ergebnis) sehr ähnlich ist. In meinem Projekt habe ich ein Formtemplate angelegt, von dem alle anderen Forms abgeleitet werden. Dort führe ich dann diese globalen Einstellungen durch.

Mir ging es aber hauptsächlich um Vorbelegung von Properties von Komponenten, wenn die diese auf's Form draufziehe. Danach sollten die Properties dann wiederum einzeln einstellbar sein.


Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau
Online

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Properties von Forms und Komponenten mit vorgegebenen We

  Alt 23. Sep 2008, 10:05
Zitat von Hawkeye219:
Hallo Gerd,

du könntest auch einen Blick auf die GExperts werfen. Die erlauben mit dem Rename Components Tool nicht nur das halbautomatische Benennen von Komponenten, sondern auch die Vorgabe (fast) beliebiger Eigenschaftswerte. Eine Beschreibung findest du auf dieser Seite, wenn du dort im Menü das Tool auswählst.

Gruß Hawkeye

Das war genau das, was ich gesucht habe. Schon zig Jahre auf dem Computer installiert, aber nie gesehen


Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Kalfany

Registriert seit: 28. Feb 2008
Ort: München
153 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Properties von Forms und Komponenten mit vorgegebenen We

  Alt 23. Sep 2008, 10:46
im CnPack gibts auch noch sowas, nennt sich da "Property Corrector"
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:36 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