AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zentrale Komponenten Verwaltung?

Ein Thema von Tau · begonnen am 2. Feb 2006 · letzter Beitrag vom 6. Feb 2006
 
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Zentrale Komponenten Verwaltung?

  Alt 4. Feb 2006, 16:27
Hi Tau !

IMHO wäre es sinnvoll du würdest dir Komponenten ableiten, den Constructor überschreiben,
und dort die nötigen Eigenschaften einstellen.

Das was du dir wünschst sieht etwa so aus.

Delphi-Quellcode:
unit MasterCompo;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TMasterComponent = class(TComponent)
  private
    FMasterEdit:TEdit;
    procedure SetMasterEdit(const Value: TEdit);
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  public
    procedure UpdateComponents(Parent:TComponent);
  published
    property MasterEdit:TEdit read FMasterEdit write SetMasterEdit;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MyCtrls', [TMasterComponent]);
end;

{ TMasterComponent }

procedure TMasterComponent.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited;
  if (Operation = opRemove) then
     if (AComponent = FMasterEdit) then
        FMasterEdit := nil;
end;

procedure TMasterComponent.SetMasterEdit(const Value: TEdit);
begin
  if Value=FMasterEdit then exit;
  FMasterEdit := Value;
  UpdateComponents(Owner); // nur in diesem Formular
// UpdateComponents(Application) // in der ganzen Anwendung
end;

procedure TMasterComponent.UpdateComponents(Parent:TComponent);
var i:Integer; Compo:TComponent; // Compo:TComponent - nur wegen der Rekursion / Compo:TEdit - keine Rekursion möglich
begin
  if FMasterEdit=nil then exit;
  for i:=0 to Parent.ComponentCount-1 do
    begin
      Compo:=Parent.Components[i];
      if Compo is TEdit then
         if Compo<>FMasterEdit then
            begin
              TEdit(Compo).Color:=FMasterEdit.Color;
              // ... hier gewünschte Eigenschaften kopieren - Bitte nicht den Namen :mrgreen:
            end;
      if Compo.ComponentCount>0 then // rekursion
         UpdateComponents(Compo);
    end;
end;

end.
Ist blos ein Beispiel für TEdit und die Eigenschaft Color.
Wichtig beim Bezug auf andere Komponenten ist Notification !!!



PS: Schade dass die s nicht im Quellcode funzen !
Otto
  Mit Zitat antworten Zitat
 


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 02:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz