AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aufruf ohne bestimmten Namen

Ein Thema von fr0g · begonnen am 6. Feb 2007 · letzter Beitrag vom 6. Feb 2007
 
fr0g

Registriert seit: 11. Dez 2006
28 Beiträge
 
#6

Re: Aufruf ohne bestimmten Namen

  Alt 6. Feb 2007, 12:38
Ich veröffentliche einfach mal den Quellcode bis jetzt (grob):

Hauptform: FicYou
Delphi-Quellcode:
unit ustart;

interface

uses
  Windows, Messages, ..., mmsystem, Menus, ShellAPI,
  uicmessage, jpeg;

type
  TFicyou = class(TForm)
    ips: TMemo;
    lrechner: TLabel;
...
    bbenutzer: TImage;
    procedure FormCreate(Sender: TObject);
    procedure TCPServerExecute(AThread: TIdPeerThread);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BenutzerlisteDblClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure closeClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    procedure serverstarten;
    procedure serverstoppen;
    procedure formsvorladen;
    { Public-Deklarationen }
  end;

type FormList=record
     MsgBox:TFicMessageBox;
     end;

var
  Ficyou: TFicyou;
  form:array [1..255] of FormList;



implementation

{$R *.dfm}


procedure pause(zeit:LongInt);
VAR anfang:LongInt;
begin
 anfang:=GetTickCount;
 while GetTickCount<anfang+zeit do
 Application.ProcessMessages;
end;


procedure TFicyou.FormCreate(Sender: TObject);
begin
self.BorderIcons:=[biSystemMenu,biMinimize];
TCPServer.Active:=True;
end;

procedure TFicyou.FormActivate(Sender: TObject);
VAR i:integer;
begin
serverstarten;
for i:=0 to 50 do begin
 form[i].MsgBox:=TFicMessageBox.Create(self);
 form[i].MsgBox.Name:='icY'+IntToStr(i);
 form[i].MsgBox.mhistory.Name:='mhistory'+IntToStr(i);

formsvorladen;

SndPlaySound('Sounds/Startup.wav', SND_ASYNC );
end;

procedure TFicyou.TCPServerExecute(AThread: TIdPeerThread);
VAR Eintrag,msg:integer;
    MsgBySvr:String;
begin
   try
    MsgBySvr:=AThread.Connection.ReadLn(#$A,5500); // Clientnachricht lesen
    eabsenderip.Text:=AThread.Connection.Socket.Binding.PeerIP;
    Eintrag:=lbips.Items.IndexOf(eabsenderip.Text);
    if Eintrag>=0 then begin
     Benutzerliste.ItemIndex:=Eintrag;
     MsgBySvr:=Benutzerliste.Items.Strings[Eintrag]+': '+MsgBySvr; end
      else begin
      SndPlaySound('Sounds/Auth.wav', SND_ASYNC);
      msg:=MessageDlg('Sie wurden von einem Benutzer (IP: '+eabsenderip.Text+') angeschrieben. Wollen sie diesen Benutzer zu ihrer Kontaktliste hinzufügen? (Achtung!: Erst nach dem Hinzufügen ist es möglich Nachrichten von Usern zu bekommen d.h. Sie müßten in jetzt anschreiben!)',mtinformation,[mbyes,mbno],0);
       if msg=mryes then begin
        FicUser.leip.Text:=eabsenderip.Text;
        FicUser.Show; eabsenderip.Text:='';
        end;
       if msg=mrno then eabsenderip.Text:='';
      end;
   except
      AThread.Connection.Disconnect;
   end;
evstext.Text:=MsgBySvr;
if (form[Eintrag].MsgBox.Visible=false) then
 begin
 SndPlaySound('Sounds/Message.wav', SND_ASYNC);
 form[Eintrag].MsgBox.Visible:=true;
 end;
pause(221);
eabsenderip.Text:='';
evstext.Text:='';
end;

procedure TFicyou.FormClose(Sender: TObject; var Action: TCloseAction);
begin
serverstoppen;
end;

procedure TFicyou.BenutzerlisteDblClick(Sender: TObject);
begin
form[Benutzerliste.ItemIndex].MsgBox.Visible:=true;
form[Benutzerliste.ItemIndex].MsgBox.Show;
end;

procedure TFicyou.serverstarten;
begin
TcpServer.Active:=false;
TcpServer.Bindings.Clear;
TcpServer.DefaultPort:=StrToIntDef('4466',4466);
   try
      TcpServer.Active:=true;
   except
      raise;
   end;
   if TcpServer.Active then begin
    lstatus.caption:='Verbindung hergestellt';
    lstatus.Font.Color:=clGreen;
   end;
end;

procedure TFicyou.serverstoppen;
begin
try
  TcpServer.Active:=false;
   except
      raise;
   end;
   if not TcpServer.Active then begin
    lstatus.caption:='Verbindung unterbrochen';
    lstatus.Font.Color:=clMaroon;
   end;
end;

procedure TFicYou.formsvorladen;
VAR i:integer;
begin
for i:=0 to Benutzerliste.Items.Count-1 do begin
 form[i].MsgBox.Show;
 form[i].MsgBox.Visible:=false;
 pause(20);
 end;
end;

end.
MessageForm: FicMessageBox
Delphi-Quellcode:
unit uicmessage;

interface

uses
  Windows, ... ,Menus;

type
  TFicmessageBox = class(TForm)
    bsenden: TButton;
    TCPClient: TIdTCPClient;
    IdAntiFreeze2: TIdAntiFreeze;
    Nachrichtsuche: TTimer;
    bsmilie: TButton;
    mhistory: TMemo;
    mmessage: TMemo;
    procedure bsendenClick(Sender: TObject);
    procedure NachrichtsucheTimer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure mmessageChange(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FicmessageBox: TFicmessageBox;
  senderuser:string;
  lastid:integer;

implementation

uses ustart;

{$R *.dfm}

Function GetWordOfAnsiString(Text : string; WordPos : Word): string;
var
 p : PChar;
begin
  p := PChar(Text);
  repeat
    Dec(WordPos);
    while p^ <> #89 do
    begin
      if WordPos = 0 then
       Result := Result + p^;
      Inc(p);
    end;
    if WordPos = 0 then Exit;
    Inc(p);
  until p^ = #89;
end;

procedure pause(zeit:LongInt);
VAR anfang:LongInt;
begin
 anfang:=GetTickCount;
 while GetTickCount<anfang+zeit do
 Application.ProcessMessages;
end;

procedure TFicmessageBox.bsendenClick(Sender: TObject);
var Msg4Svr:string; // Nachricht für den Server
begin
  FicYou.serverstoppen;
   // Verbindung zum Server herstellen
   TcpClient.Host:=senderuser;
   TcpClient.Port:=StrToIntDef('4466',4466);
   // Versuchen eine Verbindung zum Server herzustellen
   try
      TcpClient.Connect(5000); // max. 5 Sek. um die Verbindung zum Server herzustellen
   except
      MessageDlg(senderuser+' ist offline!',mtError,[mbok],0);
      FicYou.serverstarten;exit;
   end;
   if TcpClient.Connected then begin
      Msg4Svr:=mmessage.Lines.Text;
    TMemo(FindComponent('mhistory'+IntToStr(lastid))).Lines.Add('Du: '+Msg4Svr);
    mmessage.Lines.Text:='';
    // Nachricht zum Server schicken
      TcpClient.WriteLn(Msg4Svr);
    SndPlaySound('Sounds/MsgSent.wav', SND_ASYNC );
      end;
  TCPClient.Disconnect;
  FicYou.serverstarten;
end;

procedure TFicmessageBox.NachrichtsucheTimer(Sender: TObject);
begin
if senderuser<>'then
begin
if(FicYou.evstext.Text<>'')and(FicYou.eabsenderip.Text=senderuser)then
  TMemo(FindComponent('mhistory'+IntToStr(lastid))).Lines.Add(FicYou.evstext.Text)
end;
end;

procedure TFicmessageBox.FormCreate(Sender: TObject);
begin
self.BorderIcons:=[biSystemMenu,biMinimize];
end;


procedure TFicmessageBox.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
mmessage.Text:='';
self.Deactivate;
end;

procedure TFicmessageBox.FormActivate(Sender: TObject);
VAR Owner : HWnd;
begin
Owner:=GetWindow(Handle,GW_OWNER);
ShowWindow(Owner,SW_SHOW);
SetWindowLong(Handle, GWL_ExStyle, WS_Ex_AppWindow);
ShowWindow(Owner,SW_HIDE);

lastid:=StrToInt(GetWordOfAnsiString(self.Name,2));
self.Caption:='< '+FicYou.Benutzerliste.Items.Strings[lastid]+' > - Nachrichtenfenster';
senderuser:=FicYou.lbips.Items.Strings[lastid];

if(FicYou.evstext.Text<>'')and(FicYou.eabsenderip.Text=senderuser)then
  TMemo(FindComponent('mhistory'+IntToStr(lastid))).Lines.Add(FicYou.evstext.Text);
end;

end.
Hoffe das mir jetzt jemand helfen kann!!!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz