Einzelnen Beitrag anzeigen

emteg

Registriert seit: 16. Jun 2005
71 Beiträge
 
Delphi 2009 Architect
 
#12

Re: Dezentraler Chat fürs LAN

  Alt 18. Jun 2005, 20:09
Das mit dem autoexec ist schon implementiert! Jetzt hab ich aber ein ziemlich merkwürdiges problem:

Wenn eine PM kommt, soll ein neues form erstellt werden. Und obwohl mein code absolut unverfänglich und eigentlich fehlerfrei ist, hängt sich mein programm einfach auf
Ich nehme an, dass es was mit dem netzwerk zu tun hat. wenn ich die selbe procedure, die das form erstellt nicht durch eine chatzeile aufgerufen wird, gibt es keine probleme. sobald ich eben diese procedure aber ausführen lasse, sobald über das netzwerk eine aufforderung dazu kommt, hängt das programm. aber erst nachdem das form sichtbar ist. ich habe keine ahnung, woran das lieg
Vorschläge?

Hier ist der aufruf durchs netzwerk:
Delphi-Quellcode:
if pos('PMREQUEST', text)=1 then
  begin
    delete(text,1,10); //header entfernen
    usr:=text;
    delete(usr,1,pos('|',text)); //empfänger abschneiden
    if usr=nickname then //festellen, ob dieser cl gemeint ist
    begin
      delete(text,pos('|',text),9999); //absender abschneiden
      if IP<>IPWatch.LocalIP then
      begin
        UDPClient.Send(IP,Port,'PMACCEPT|'+Nickname);

        for i:=1 to 5 do
        begin
          if PMGrid.Cells[0,i]=text then
          begin
            PMExists:=true;
          end;
          if PMExists=false then
          begin
            if PMGrid.Cells[0,i]='then
            begin
              PMGrid.Cells[0,i]:=text;
              PMGrid.Cells[1,i]:=IP;
              CreatePMSession(1);
            end;
          end;
        end;
        
      end;
    end;
    processed:=true;
  end;
Und die erstell procedure
Delphi-Quellcode:
procedure TForm1.CreatePMSession(line: integer);
var usr: string;
    PMForm: TForm;
begin

  if line=1 then
  begin
    PMForm:=TForm.Create(Self);
    PMForm.Name:='PMForm1';
    PMForm.Caption:='TestForm';
    PMForm.Show;
  end;

end;
Ich kann die procedure auch testweise an anderer stelle aufrufen, da erscheint das fenster ohne probleme.
  Mit Zitat antworten Zitat