Показать сообщение отдельно
  #19  
Старый 24.03.2008, 18:09
DeadMan89 DeadMan89 вне форума
Прохожий
 
Регистрация: 22.03.2008
Сообщения: 9
Репутация: 10
По умолчанию

все вроде бы сделал,но ошибка
[Error] Unit1.pas(60): Unsatisfied forward or external declaration: 'TForm1.GetAnswer'

и какого типа должна быть переменная Anwer?Которой присваиваем функцию, могу весь код выложить исправите?

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ICQClient, Menus, ExtCtrls;

type
  TForm1 = class(TForm)
    ICQClient1: TICQClient;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    GroupBox2: TGroupBox;
    Memo1: TMemo;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    Memo2: TMemo;
    GroupBox5: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    CheckBox1: TCheckBox;
    Label6: TLabel;
    Edit6: TEdit;
    Timer1: TTimer;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    GroupBox6: TGroupBox;
    Button3: TButton;
    fileopen: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
    procedure N1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Memo2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ICQClient1Login(Sender: TObject);
    procedure ICQClient1ConnectionFailed(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    function GetAnswer(SQuestion: String): String;
    function DivStr(const SourceStr: String; var SubStr1, SubStr2: String): Boolean;


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ICQClient1.UIN:=strtoint(combobox1.Text);
ICQClient1.Password:=Edit1.Text;
ICQClient1.Login();
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ICQClient1.Disconnect;
end;

procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
var a:string;
begin
Memo1.Lines.Add('('+(DateToStr(Date))+' ('+(TimeToStr(Time))+'))');
Memo1.Lines.Add(' '+UIN+': ' + msg);
Memo1.Lines.Add('');
Edit6.text:=(UIN);
a:= GetAnswer(msg);
ICQClient1.SendMessage((StrToInt(UIN)),a);
end;

procedure TForm1.N1Click(Sender: TObject);
begin
icqclient1.Disconnect;
Close;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked=true then
Groupbox5.visible:=true
else
Groupbox5.visible:=false;
end;

procedure TForm1.Memo2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then
begin
ICQClient1.SendMessage((StrToInt(Edit6.Text)),Memo2.Lines.Text);
Memo1.Lines.Add('('+(DateToStr(Date))+' ('+(TimeToStr(Time))+'))');
Memo1.Lines.Add(' Вы: '+Memo2.Text);
Memo2.Lines.clear;
end;
end;

procedure TForm1.ICQClient1Login(Sender: TObject);
begin
if ICQClient1.LoggedIn then
begin
Memo1.Lines.Add('Соединение с сервером установлено.');
Timer1.Enabled := True;
end;
end;

procedure TForm1.ICQClient1ConnectionFailed(Sender: TObject);
begin
Memo1.Lines.Add('Не удалось соединиться с сервером.');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
ICQClient1.SendKeepAlive;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
ICQClient1.Login();
end;

procedure TForm1.N4Click(Sender: TObject);
begin
icqclient1.Status:=1;
end;

procedure TForm1.N5Click(Sender: TObject);
begin
icqclient1.Status:=2;
end;

procedure TForm1.N6Click(Sender: TObject);
begin
icqclient1.Status:=4;
end;

procedure TForm1.Button3Click(Sender: TObject);
var f:file;
begin
fileopen.Execute;
assignfile(f,fileopen.FileName);
end;

function GetAnswer(SQuestion: String): String;
var
  Dlg: TOpenDialog;
  FileStrings: TStringList;
  SFileName: String;

function DivStr(const SourceStr: String; var SubStr1, SubStr2: String): Boolean;
var
  i: Integer;
begin
  i := Pos(';', SourceStr);
  if i <> 0 then begin
    SubStr1 := Copy(SourceStr, 1, i - 1);
    SubStr2 := Copy(SourceStr, i + 1, Length(SourceStr) - i);
  end;
  Result := i <> 0;
end;

function FindAnswer: String;
  var
    i: Integer;
    S1, S2: String;
  begin
    Result := '';
    for i := 0 to FileStrings.Count - 1 do
       if DivStr(FileStrings[i], S1, S2) then
         if AnsiCompareText(SQuestion, S1) = 0 then begin
           Result := S2;
           Exit;
         end;
  end;

begin
  Result := '';

  Dlg := TOpenDialog.Create(Application);
  try
    if Dlg.Execute
      then SFileName := Dlg.FileName
      else SFileName := '';
  finally
    Dlg.Free;
  end;

  if Length(SFileName) = 0 then Exit;

  FileStrings := TStringList.Create;
  try
    FileStrings.LoadFromFile(SFileName);
    Result := FindAnswer;
  finally
    FileStrings.Free;
  end;
end;


end.

Admin: Не путать CODE с QUOTE
Ответить с цитированием