Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - procedure kann nicht auf objekte zugreifen


Silence - Fr 24.03.06 21:41
Titel: procedure kann nicht auf objekte zugreifen
hey. ich will meinen panelen mit einer funktion die caption zuweißen. Nu kommt aber die meldung kein aktives objekt. hier is der quelltext von der procedure

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure zuweisen();
begin
 form1.label1.Caption := form1.xml.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['frage'].Text;
 form1.panel1.Caption := form1.xml.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['a'].Text;
 form1.panel2.Caption := form1.xml.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['b'].Text;
 form1.panel3.Caption := form1.xml.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['c'].Text;
 form1.panel4.Caption := form1.XML.DocumentElement.ChildNodes['content'].ChildNodes['frage' + inttostr(i)].ChildNodes['d'].Text;
end;


wo liegt denn der fehler?


JayEff - Fr 24.03.06 23:30

Grundsätzlich solltest du die Procedure als MEthode einer Form deklarieren...:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
  procedure Zuweisen;
    { Public-Deklarationen }
  end;

var Form1 : TForm1;

implementation

{$R *.dfm}

Procedure TForm1.Zuweisen;
begin
{...}
end;


Silence - Sa 25.03.06 00:00

das problem war kein problem sondern dummheit, ich hab die funktion im quelltext vor der die das xmldocument aktiviert aufgerufen. somit kommte das xml dings auf nichts zugreifen. hat sich also somit erledigt.


Delete - Sa 25.03.06 01:09

Nicht ganz. Da du auf Objekte deiner Form zugreifst, sollten sie, wie schon gesagt wurde, Methoden deiner Form-Klasse sein. Das ist einfach eine Frage des guten Stils und der OOP konformen Programmierung.