Autor Beitrag
Guldi
Hält's aus hier
Beiträge: 11

Win XP
Delphi 6 Ent.
BeitragVerfasst: Mi 26.03.03 01:24 
Hallo

Ich finde den Fehler trotz diversen Bücher nicht. :( Kann mir maljemand weiter helfen?

Ich habe ein Formular mit einem SortGrid (ähnlich StringGrid) und meine eigene Komponente SetiServ. Mein SortGrid habe ich im Objekt Inspektor bei meiner Komponente ausgewählt. Starte ich aber das Programm, ist der Wert von FSourceSortGrid NIL. Was mache ich falsch :?:

Hier der komplete Code von SetiServ:
ausblenden volle Höhe 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:
52:
53:
54:
55:
56:
57:
58:
59:
unit SetiServ;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Psock, SortGrid;


type
  TSetiServ = class(TNMGeneralServer)
  private
    { Private declarations }
    FSourceSortGrid:TSortGrid;
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    procedure Serve; override;
  published
    { Published declarations }
    property SourceSortGrid: TSortGrid read FSourceSortGrid write FSourceSortGrid;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Seti', [TSetiServ]);
end;
{ TDateServ }

procedure TSetiServ.Serve;
begin
//  if (Assigned(FSourceSortGrid)) then
  begin
    try
    FSourceSortGrid.SaveToFile('Seti.xls',';');
    finally
    end;
    Application.ProcessMessages;
    try
    SendFile('Seti.xls');
    finally
    end;
  end;
end;

constructor TSetiServ.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Port := 33333;
end;


end.


Danke... :D
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Mi 26.03.03 01:35 
Hi,

erstell das FSourceSortGrid mal im Constructor:
ausblenden Quelltext
1:
FSourceSortGrid:=TSortGrid.Create;					


Au'revoir,
Aya~

PS: Nich vergessen im Destructor wieder mit .Free den speicher freizugeben ;)

_________________
Aya
I aim for my endless dreams and I know they will come true!
Guldi Threadstarter
Hält's aus hier
Beiträge: 11

Win XP
Delphi 6 Ent.
BeitragVerfasst: Mi 26.03.03 09:08 
Danke für di schnelle Antwort.

Irgendwie klappt es aber trozdem nicht. Das SortGrid ist leer. Kann ich nicht direkt auf das SortGrid auf meinem Formular zugreiffen?

mfg
Nathanael
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 26.03.03 09:22 
Hallo,

ich hatte neulich ein ähnliches Problem.

Ich hatte bei einer eigenen abgeleiteten Klasse (in diesem Fall ein TFrame) vergessen den selbstgeschriebenen Konstruktor mit der diekktive "override" zu kennzeichnen und er hatte den Knstruktor der übergeordneten Klasse nicht abgearbeitet:

sieht jetzt so aus:
ausblenden Quelltext
1:
2:
3:
4:
5:
constructor TFrame1.Create(AOwner: TComponent); override;
begin
  inherited;
  ...
end;


Hope it helps,
Nathanael
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 26.03.03 09:23 
Hi!

Klar kannst du, du musst es dann nur deiner Komponente über die Property zuweisen:

ausblenden Quelltext
1:
MySetiServ.SourceSortGrid:=MySourceGrid;					


Dann natürlich nicht im Konstruktor SortGrid erstellen lassen :!:

cu, :)
Udontknow