Ich tue für meine Sprache - ich aus Russland Abbitte. Aber ich denke klar ich werde schreiben
1. Wir nehmen den Distributionssatz
Indy (besser als Version 10.5.6). Ist nicht einsteilbar.
2. Wir suchen die Datei IdIRC.pas und ist es im Texteditoren geöffnet.
3. Wir suchen darin die Prozedur
Zitat:
procedure TIdIRC.DoBeforeCmd(ASender: TIdCommandHandlers; var AData: string; AContext: TIdContext);
4. Wir erläutern die Zeilen
Delphi-Quellcode:
{ if TextStartsWith(AData, ':') then begin
LTmp := Fetch(AData, #32);
Delete(LTmp, 1, 1); // remove ':'
FSenderNick := Fetch(LTmp, '!');
FSenderHost := LTmp;
end else begin
FSenderNick := '';
FSenderHost := '';
end;}
5. Wir sparen die Veränderungen auf und nur ist danach
Indy von neuem einsteilbar.
6. Jetzt bei der Ausführung
Delphi-Quellcode:
procedure TForm16.IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
AMessage: string);
begin
memo3.lines.add(AMessage);
end;
Sie werden dass jenes типо seiner sehen
Zitat:
:SecureServ PRIVMSG Avatar :VERSION
7. Jetzt können Sie mit der vollen Zeile arbeiten. Ich habe so gemacht - hat diese Zeile zur Art Indy9 gebracht
Delphi-Quellcode:
procedure TForm16.IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
AMessage: string);
var AUserNick,ACommand,AContent,AUserAddress:string;
begin
AUserNick:='';
ACommand:='';
AContent:=AMessage;
if copy(AContent,1,1)=':' then
begin
AContent:=copy(AContent,2,length(AContent)-1);
AUserNick:=copy(AContent,1,pos(' ',AContent)-1);
if pos('!',AUserNick)<>0 then
begin
AUserNick:=copy(AUserNick,1,pos('!',AUserNick)-1);
AUserAddress:=copy(AUserNick,pos('!',AUserNick)+1,length(AUserNick)-pos('!',AContent));
end else AUserNick:='';
AContent:=copy(AContent,pos(' ',AContent)+1,length(AContent)-pos(' ',AContent));
end;
ACommand:=copy(AContent,1,pos(' ',AContent)-1);
AContent:=copy(AContent,pos(' ',AContent)+1,length(AContent)-pos(' ',AContent));
Memo7.Lines.Add(AUserNick+'---'+ACommand+'---'+AContent);
end;