Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Zugriff auf Komponenten (HTTP Server) im anderen Formular?


Sniky - Mo 28.04.08 19:19
Titel: Zugriff auf Komponenten (HTTP Server) im anderen Formular?
Hallo Ihr Lieben,

ich weiß gar nicht wie ich das jetzt am besten schreiben soll.

Also ich versuch mal so zu erklären, dass man es auch versteht :)

Ich starte also mein Programm und dabei wird in meiner Main.pas ein HTTPServer gestartet. Soweit auch alles kein Problem nur wollte ich jetzt über mein hauptfenster denn HTTP server wieder stoppen.

In meiner Main.pas würde ich das ja so machen:
HTTPServer.active := false;

nur mach ich das jetzt in mein Hauptfenster also in die Unit1, kommt das:
[Error] Unit1.pas(457): Undeclared identifier: 'HTTPServer'

nur dachte ich, wenn ich: uses Main, md5; mache, ist die Main wie mit eingebunden und ich kann da dann auch meinen Server starten und stoppen... Wie kann ich es denn machen, dass meine Hauptseite jetzt weiß, dass ich denn HTTPServer in der Main.pas stoppen möchte?

Vielen Dank!

Liebe Grüße,
Sniky


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 28.04.2008 um 19:28
Moderiert von user profile iconNarses: Titel geändert.


<TargeT> - Mo 28.04.08 19:26

Also in Form2 bindest du die MainUnit ein.

Dann zb: Main.HttpServer.Active:= false;

Also vor HttpServer muss die Unit auf der sich die Komponente befindet.

lg Target


Sniky - Mo 28.04.08 20:05

user profile icon<TargeT> hat folgendes geschrieben:
Also in Form2 bindest du die MainUnit ein.

Dann zb: Main.HttpServer.Active:= false;

Also vor HttpServer muss die Unit auf der sich die Komponente befindet.

lg Target



Hab ich so versucht, kommt aber trotzdem noch:

[Error] Unit1.pas(457): Undeclared identifier: 'HttpServer'
[Error] Unit1.pas(457): Missing operator or semicolon

:(

Liebe Grüße,
Sniky


jaenicke - Mo 28.04.08 20:15

Wenn es eine Komponente auf dem anderen Formular ist:

Delphi-Quelltext
1:
DeineForm.DeineKomponente                    

Wenn es eine globale Variable in der anderen Unit ist, also so wie hier DeineVariable:

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:
unit Main;

interface

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

type
  TfrmMain = class(TForm)
    btnTest: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;
  DeineVariable: Integer;

implementation

{$R *.dfm}

//...
dann greifst du darauf mit

Delphi-Quelltext
1:
DeineUnit.DeineVariable                    
zu.
In dem Beispiel liegt in der Unit Main der Button btnTest auf dem Formular frmMain und DeineVariable ist einfach nur global unter var deklariert:

Delphi-Quelltext
1:
2:
Main.DeineVariable := 3;
frmMain.btnTest.Caption := 'Funktioniert';


Sniky - Mo 28.04.08 20:18

ok, irgend wie geht es doch... hab noch mal compilieren geklickt und dann ging es doch... keine ahnung warum :)

Danke noch mal!

Liebe Grüße,
Sniky