Entwickler-Ecke

Internet / Netzwerk - Von Console auf VCL!?


Sascha999999999 - Sa 23.12.06 01:47
Titel: Von Console auf VCL!?
Hallo, ich habe einen Konsolen-Client geschrieben und Server, jetzt möchte ich aber die eingehenden Verbindungen vom VCL Indy Event in CMD ausgeben? möglich?

Für alle dies noch mehr wissen möchten:

ich erstelle einen Indy HTTP Server (idHTTPServer) mit:

Delphi-Quelltext
1:
2:
3:
4:
5:
idHTTPServer.create(nil); //ich habe ja keine Form, aber die VCL Komponete weiß wohl dann nicht wohin mit den Daten oder nicht?

idHTTPServer.onGetCommand

//erhällt überhauptnichts.


habe schon gesucht aber keine Lösung gefunden.

Thx für jede Hilfe!


Moderiert von user profile iconChristian S.: Topic aus VCL (Visual Component Library) verschoben am Sa 23.12.2006 um 00:49
Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Christian S. - Sa 23.12.06 01:51

Der Titel Deines Threads ist ein bisschen komisch. Bitte schau doch nochmal drüber und ändere ihn. Danke! :-)


Sascha999999999 - Mo 25.12.06 19:04
Titel: komischer Titel????
"Von Console auf VCL?"

Von einer Konsolenanwendung auf die VCL Komponenten zugreifen, was ist daran komisch?

ist ehr die Frage ob jemand eine Lösung für das Problem hat.

Danke!


Christian S. - Mo 25.12.06 19:12

Daran ist komisch, dass das alles und nix bedeuten kann. Die VCL ist groß und das Tollste ist, dass die Indies noch nicht mal Teil davon sind sondern Fremdkomponenten. Du solltest davon Gebrauch machen, dass Titel auch mehr als vier Worte enthalten dürfen.


Leuchtturm - Mo 25.12.06 19:14
Titel: Re: komischer Titel????
user profile iconSascha999999999 hat folgendes geschrieben:
"Von Console auf VCL?"

Von einer Konsolenanwendung auf die VCL Komponenten zugreifen, was ist daran komisch?

ist ehr die Frage ob jemand eine Lösung für das Problem hat.

Danke!

Ich dachte eher daran das du dein Programm irgendwie zu ner VCL-Anwendung machen willst


Sascha999999999 - Fr 05.01.07 06:12

ok, da hast du recht, so hätte man das auch vestehen können,
Das indy keine standard VCL Komponente ist, simmt zwar auch, ist aber kaum wichtig, du kannst dir ja auch einen Timer vorstellen, und dann das "OnTimer" Event von Console zugreifen, ich nutze nunmal eine Indy Komponente.

Aber damit auskennen tut sich wohl keiner oder? trotzdem danke! lol


jaenicke - Fr 05.01.07 10:40

user profile iconSascha999999999 hat folgendes geschrieben:
"Von Console auf VCL?"

Von einer Konsolenanwendung auf die VCL Komponenten zugreifen, was ist daran komisch?

Na siehst du, das ist doch ein viel besserer Titel... "Von einer Konsolenanwendung auf VCL Komponenten zugreifen"...
Wenn dir ein Teammitglied sagt, dass dein Titel nicht gut ist, dann kannst du das ruhig glauben. :roll:
Ich habe auch gedacht, du willst eine Konsolen- in eine VCL-Anwendung umwandeln oder die Ausgabe einer Konsolenanwendung in deine VCL-Anwednung bekommen...

Ich finde es aber auch nicht gerade gut, dass die ganze bisherige Diskussion um den unpassenden Titel ging... :roll:
Genauso wenig finde ich die Tatsache gut, dass du den Titel immer noch nicht angepasst hast, denn erstens solltest du dich nach den Forumsrichtlinien richten, und dein Titel passt eben nicht, und zweitens solltest du auf Hinweise vom Team auch reagieren...

Aber vor allem: Diejenigen, die deinen Titel so lesen, denken, dass es sich um was ganz anderes handelt, und wenn sie dann reinsehen, dann wissen sie dazu vielleicht nix zu sagen, und die, die es könnten, sehen sich deine Frage gar nicht an, weil sie denken: Davon habe ich keine Ahnung...
Insofern: Was wunderst du dich, dass du keine Antwort bekommst???
:gruebel: :gruebel:
(Nicht, dass ich denke, die bisherigen Poster hier hätten die Frage nicht beantworten können... ;-))

Naja, jedenfalls zum Thema. Hier ein kleines Beispiel...

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:
program Project57;

{$APPTYPE CONSOLE}

uses
  SysUtils, IdHTTP, IdComponent;

type
  TMyIndyEventObject = class
    procedure IndyOnStatus(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: string);
  end;

procedure TMyIndyEventObject.IndyOnStatus(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: string);
begin
  Writeln(AStatusText);
end;

var
  Test: TIdHTTP;
  EventObject: TMyIndyEventObject;
begin
  EventObject := TMyIndyEventObject.Create;
  Test := TIdHTTP.Create;
  Test.OnStatus := EventObject.IndyOnStatus;
  Test.Get('http://www.sj-berlin.de');
  Test.Free;
  EventObject.Free;
end.

Der Grund, weshalb du ein eigenes Objekt erstellen musst, ist, dass die Events alle eine procedure of object sind. Man kann da zwar auch was drehen, damit man auch normale Methoden benutzen kann, aber so ists am einfachsten und vor allem am wenigsten fehleranfällig...