Autor Beitrag
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mi 28.02.07 15:01 
Ich wollte grad ne neue Komponente bauen für mich und as Teil braucht 'ne TStringList. Komp wird installiert etc., aber sowie ich Text in die StringList setze, gibt es Probleme... Versuche ich nämlich im Objekt-Inspektor einen weiteren Eintrag hinzuzufügen, kommt ein Fehler "Cannot assing a TMargins to a TRichEditStrings".

hier der Code der Komponente :
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:
unit uManagerBaseContainer;

interface

uses Windows, Classes, SysUtils;

Type TOnConnect = procedure(Sender: TObject; Manager: String) Of Object;

     TManagerBaseContainer = class(TComponent)
     private
       FpManagerList : TStrings;
       FOnConnect : TOnConnect;
       FOnDisconnect : TOnConnect;
     protected
     public
       constructor Create(AOwner: TComponent); override;
       destructor Destroy; override;
     published
       property Manager : TStrings read FpManagerList write FpManagerList;
       // events
       property OnConnect : TOnConnect read FOnConnect write FOnConnect;
       property OnDisconnect : TOnConnect read FOnDisconnect write FOnDisconnect;
     end; // TManagerBaseContainer

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('ERP Base', [TManagerBaseContainer]);
end;

{ TManagerBaseContainer }

constructor TManagerBaseContainer.Create(AOwner: TComponent);
begin
  inherited;
  FpManagerList := TStringList.Create;
end; // Create

destructor TManagerBaseContainer.Destroy;
begin
  FpManagerList.Free;
  inherited;
end; // Destroy

end.


Hat einer 'ne Idee ?

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
Dundi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 16
Erhaltene Danke: 2



BeitragVerfasst: Mi 28.02.07 17:53 
Hallo,
das einzigste was mir auffällt is das du FpManagerList als TStrings deklarierst aber im Create eine TStringList zuweist. Auch wenn die TStringList von TStrings abstammt könnte der Fehler eventuell daran liegen.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 28.02.07 18:01 
Nein im Gegenteil.
Bei dem Objekt TStrings ist die Create-Methode abstrakt, wesshalb man generell die Methode von TStringList benutzt.
Leider kenne ich mich mit Komponentenprogrammierung nicht aus, darum kann ich zum eigentlichen Thema leider nichts sagen :(

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mi 28.02.07 18:15 
könnte das mal jemand versuchen, nachzuvollziehen in sienem BDS2006 (oder vergleichbaren Delphi) ? Vllt hat es ja mit diversen Einstellungen/delphi-packages zu tun.. Hab natürlich einige Packages rausgenommen, um Ladezeit zu sparen und weil ich sie einfach nicht brauche. Sollte zwar nichts damit zu tun haben, aber man weiss ja nie !

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mi 28.02.07 22:32 
tja, man lernt nie aus :)
habe den Fehler gerade gefunden

Bei StringList (TStrings)-properties MUSS man eine Set-Methode schreiben, in der man die Strings zuweist, dann klappt es auch mit den Nachbarn :)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
...
       property Manager : TStrings read FpManagerList write __SetManagerList;
...

procedure TManagerBaseContainer.__SetManagerList(const Value: TStrings);
begin
  FpManagerList.Assign(Value);
end; // __SetManagerList

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw