Autor Beitrag
maycontainnuts
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 27.06.08 17:09 
Hallo:)


Nachdem mir die schnelle Umsetzung des huffman codes zu kompliziert wurde, wollte ich mich an nen
leightweight-chat machen, der über ne Konsole läuft, um nicht den ganzen overhead von der vcl zu
haben.

als Chatprotokoll wollte ich mir ein ganz einfaches auf tcp/ip basierendes Protokoll bastelln.


Das ganze ist auch nicht das Problem...mein Problem ist, dass TClientSocket, dass ich dafür verwenden
wollte, anscheinend Fensterorientiert ist. Also lass ich mir ein Handle erstellen:

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:
49:
unit messagehandler;

interface
uses
  Windows, Messages, Classes;

type
  TMessageHandler = class(TObject)
    private
      hwnd: Hwnd;
      procedure WndProc(var Msg: TMessage);
    public
      constructor Create;
      destructor Destroy;
      function FReadHandle: Hwnd;
      property Handle: Hwnd read FReadHandle;
  end;

implementation
  constructor TMessageHandler.Create;
  begin
    hwnd := Classes.AllocateHWnd(WndProc);
  end;

  destructor TMessageHandler.Destroy;
  begin
    Classes.DeAllocateHwnd(hwnd);
  end;

  procedure TMessageHandler.WndProc(var Msg: TMessage);
  begin
    if msg.Msg = WM_USER +1337 then begin
      writeln(
                'message: WM_USER + 1337 (',
                msg.Msg,
                ') WParam: ',
                msg.WParam,
                ' LParam: ',
                msg.LParam
              );
    end;
  end;

  function TMessageHandler.FReadHandle;
  begin
    result := hwnd;
  end;

end.


Nur was jetzt? Create will ein Tcomponent...was ist das jetzt wieder? aus der Hilfe
bin ich nicht wirklich schlau geworden:(


grez
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 27.06.08 17:19 
Moin!

Die Delphi-Sockets laufen ereignisorientiert nur mit einem VCL-TApplication-Objekt, alles Andere wird nix. :nixweiss:

Alternativen:
  • VCL-Projekt (was daran jetz so schlimm sein soll, habe ich noch nicht verstanden... :?)
  • TClient-/ServerSocket im blocking-Mode verwenden (also nicht über die Ereignisse, sondern mit try-except und Threads arbeiten!)
  • gleich den Indy-TCP-Server/Client nehmen
cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.