|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
|||
|
|||
еще вопросик, как передать запрос в функцию getanswer?
|
#17
|
|||
|
|||
Цитата:
Код:
procedure GetAnswer(SQuestion: String): String; |
#18
|
|||
|
|||
Цитата:
Код:
Anwer := GetAnswer('Каг дила?'); Вы не обижайтесь, но не рано вы взялись за такой масштабный проект? По-моему есть смысл почитать книжку какую-нибудь по Паскалю. |
#19
|
|||
|
|||
все вроде бы сделал,но ошибка
[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 Последний раз редактировалось Admin, 24.03.2008 в 20:05. |
#20
|
|||
|
|||
Цитата:
Код:
TForm1 = class(TForm) ... public ... function GetAnswer(SQuestion: String): String; ... end; Код:
function TForm1.GetAnswer(SQuestion: String): String; Цитата:
Последний раз редактировалось Rosenkrantz, 24.03.2008 в 18:28. |
#21
|
||||
|
||||
Попробуй нажать Ctrl+Shift+C
Должна появиться заготовка нужных функций. И перенеси код уже туда. Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#22
|
|||
|
|||
Цитата:
|
#23
|
|||
|
|||
Напишите плиз новый код, а я его под себя подправлю, с меня бутылка пива, буду очень благодарен, просто файлы реально не знаю=(
|
#24
|
|||
|
|||
Цитата:
|