Autor Beitrag
Jakane
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 05.09.13 15:45 
Hallo liebe Delphi-Helfer :)

es gibt zu dem Problem zwar viele Foreneinträge die ich mir schon angeschaut habe, aber ich bekomm es einfach nicht hin :(

ausblenden volle Höhe Delphi-Quelltext
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:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
unit JForms;

interface

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

type
  TJDatenbank = class(TPersistent)
  private
    FVerbunden : Boolean;
  public
    procedure Assign(Source: TPersistent); override;
  published
    property JVerbunden : Boolean read FVerbunden write FVerbunden;
  end;

type
  TJForm = class(TForm)
  private
  public
  published
    property JDatenbank : TJDatenbank read FDatenbank write FDatenbank stored ISDB; 
  end;

var
  JForm: TJForm;

Procedure Register;

implementation

uses DsgnIntf;

Procedure Register;
begin
  RegisterCustomModule(TJForm, TCustomModule);
end;

procedure TJDatenbank.Assign(Source: TPersistent);
begin
  if Source is TJDatenbank then
  begin
    FVerbunden := TJDatenbank(Source).FVerbunden;
    Exit;
  end;
  inherited Assign(Source);
end;

end.


Wie ihr seht habe ich in der TJDatenbank-Komponente bisher nur "Verbunden" drin.
Ich krieg aber nicht raus wie ich nun auf das + klicken kann :(

Hoffe jemand kann mir das erklären

Danke
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Do 05.09.13 15:50 
Ich bin mir nicht ganz sicher, ob ich Dich richtig verstanden habe, aber fehlt da nicht eine published-Property in Deiner Formklasse?
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 05.09.13 15:53 
Nein, ich seh auf meinem Hauptformular (Typ JForm) die JDatenbank Eigenschaft im Inspektor,
nur wenn ich das aufklappen will um eben die Untereigenschaft Verbunden einzustellen,
bekomme ich die Fehlermeldung "keine Expandierung möglich"
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Do 05.09.13 16:24 
Dann versuch mal Folgendes:
- die Formklasse erhält ein privates Feld vom Typ TJDatenbank
- davon wird im Konstruktor eine Instanz angelegt und im Destruktor wieder freigegeben
- die entsprechende Property bekommt einen Setter spendiert, der intern Assign() aufruft

Das sollte dann etwa so aussehen:
ausblenden Delphi-Quelltext
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:
type
  TJForm = class(TForm)
  private
    FDatenbank: TJDatenbank;
    procedure SetDatenbank(const Value: TJDatenbank);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property JDatenbank : TJDatenbank read FDatenbank write SetDatenbank; 
  end;

constructor TJForm.Create(AOwner: TComponent);
begin
  inherited;
  FDatenbank := TJDatenbank.Create;
end;

destructor TJForm.Destroy;
begin
  FDatenbank.Free;
  inherited;
end;

procedure TJForm.SetDatenbank(const Value: TJDatenbank);
begin
  FDatenbank.Assign(Value);
end;
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Mo 09.09.13 15:11 
Für mich zwar nicht nachvollziehbar, aber es funktioniert ^^

Danke
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 09.09.13 15:27 
user profile iconJakane hat folgendes geschrieben Zum zitierten Posting springen:
Für mich zwar nicht nachvollziehbar
Du hattest zwar die Eigenschaft JDatenbank, aber du hast dort nie ein Objekt hineingelegt. Es lag dort also nil, also nichts, drin. Und aus nichts kann der Objektinspektor eben auch keine Informationen holen, die er beim Aufklappen anbieten könnte.

Für diesen Beitrag haben gedankt: Jakane