![]() |
Ein TFrame als published property?
Hallo,
langsam bin ich am verzweifeln. Ich schreibe eine nicht sichtbare Komponente die grundlegende Funktionen bereitstellt. Folgende Situation: Ein Formular enthält: - ein "Grid" (advStringGrid, DBGrid oder VirtualStringTree) - ein schon fertiges FRAME mit Navigationsbuttons (Speedbuttons) und einer Statusbar - ein schon fertiges FRAME mit Buttons wie Aktualisieren, Verwerfen, Schließen, Hilfe. Jedes mal wenn ein solches Formular neu erstellt wird gibt es eine ganze Reihe an Prozeduren die immer das Gleiche machen: FirstClick, PrevClick, NextClick, LastClick, AddClick, SchliessenClick, HilfeClick,... Jetzt soll ich eine Komponente schreiben die diese einheitlichen Funktionen kapselt. Dafür habe ich einer nicht visuelle Komponente geschieben (oder bin dabei). Für die Grids habe ich, erfolgreich, folgendes benutzt:
Delphi-Quellcode:
Damit kann ich im Objektinspektor das entsprechende Grid auswählen, sobald es auf dem Formular ist.
{$REGION 'Links der Grids'}
strict private FAdvStringGridLink : TAdvStringGrid; FVirtualStringTreeLink : TVirtualStringTree; FDBGridLink : TDBGrid; procedure SetAdvStringGridLink (const Value : TAdvStringGrid); procedure SetVirtualStringTreeLink(const Value : TVirtualStringTree); procedure SetDBGridLink (const Value : TDBGrid); published property LinkAdvStringGrid : TAdvStringGrid read FAdvStringGridLink write SetAdvStringGridLink; property LinkVirtualStringTree : TVirtualStringTree read FVirtualStringTreeLink write SetVirtualStringTreeLink; property LinkDBGrid : TDBGrid read FDBGridLink write SetDBGridLink; {$ENDREGION} Das Gleiche habe ich für die Oberflächenelemente versucht:
Delphi-Quellcode:
Wobei TfraButtonleiste und TfraNavigationStatusCustom Frames sind.
{$REGION 'Links zu den Oberflächenelementen'}
strict private FFormVerwaltung : TFormVerwaltung; FfraNavigationStatusCustom : TfraNavigationStatusCustom; FfraButtonleiste : TfraButtonleiste; procedure SetFormVerwaltung (const Value : TFormVerwaltung); procedure SetfraButtonleiste (const Value : TfraButtonleiste); procedure SetfraNavigationStatusCustom(const Value : TfraNavigationStatusCustom); published property FormVerwaltung : TFormVerwaltung read FFormVerwaltung write SetFormVerwaltung; property fraButtonleiste : TfraButtonleiste read FfraButtonleiste write SetfraButtonleiste; property fraNavigationStatusCustom : TfraNavigationStatusCustom read FfraNavigationStatusCustom write SetfraNavigationStatusCustom; {$ENDREGION} Das Formular selbst ist ein TFormVerwaltung und ich müsste da Self angeben können, oder so. Diese Eigenschaften sehe ich im Objektinspektor, kann sie aber nicht zuweisen. Kann mir da jemand helfen? Danke David |
Re: Ein TFrame als published property?
Hat denn keiner eine Idee?
|
Re: Ein TFrame als published property?
um von deiner Komponente an das Form zu kommen solltest du doch innerhalb deiner Komponente den Parent abfragen können, oder?
Spontane Idee wenn du es wirklich zuweisen willst wäre sowas wie
Delphi-Quellcode:
Ungetestet und nur eine spontane Idee
type
TFormVerwaltung = class(tForm) // [....] was du sonst so hast in deinem Formular public property TheFormItself:TFormVerwaltung read self; // oder mit getter falls man an der stelle nicht direkt auf self zugreifen kann end; Gruß |
Re: Ein TFrame als published property?
Vielleicht kann ja deine Linkkomponente die beiden Frames selbst erstellen? Sie müssten dann den Formularen gar nicht mehr explizit zur Designzeit hinzugefügt werden. Falls die Frames je nach Formular unterschiedliche Eigenschaftswerte haben sollen, könntest du die betreffenden Eigenschaften ja in deiner Komponente nach außen legen.
|
Re: Ein TFrame als published property?
Ich hab jetzt die Lösung gefunden. :wall:
Ich muß die Frames für Delphi registrieren, dann geht es. Ich hatte die nur in die Projekte eingebunden. :wall: Die TFormVerwaltung geht zwar immer noch nicht, aber das ist nicht so wichtig. Gruß David |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 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