Эльвинтель Опубликовано Пятница в 05:32 Поделиться Опубликовано Пятница в 05:32 (изменено) unit Core; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer, Data.DB, Data.Win.ADODB, IdContext, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.FMXUI.Wait, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client, FMX.Controls.Presentation, FMX.Edit; type TForm4 = class(TForm) IdTCPServer1: TIdTCPServer; IdTCPServer2: TIdTCPServer; IdTCPServer3: TIdTCPServer; IdTCPServer4: TIdTCPServer; FDConnection1: TFDConnection; FDConnection2: TFDConnection; FDConnection3: TFDConnection; FDConnection4: TFDConnection; FDQuery1: TFDQuery; FDQuery2: TFDQuery; FDQuery3: TFDQuery; FDQuery4: TFDQuery; Edit1: TEdit; procedure IdTCPServer1Execute(AContext: TIdContext); procedure Edittext (Port,Besepath:TEdit); function Serveronoff (connectionS:string=''):string; function Formshow (FormNamba:integer):string; function FDnnection(SQLwe:string):string; private { Private declarations } public { Public declarations } end; var Form4: TForm4; s,L,P:string; implementation {$R *.fmx} uses Grid, Settings, UsersGrid; procedure TForm4.Edittext(Port, Besepath: TEdit); var Path:string; Asi,Asi1:Tstringlist; begin Asi:= TStringList.Create; Asi1:= TStringList.Create; Path:=Extractfilepath(paramstr(0)); Asi.LoadFromFile(Path+'settings\Defautport.txt'); Asi1.LoadFromFile(Path+'settings\settings.txt'); Port.Text:=Asi[0]; Besepath.Text:=Asi1[0]; end; function TForm4.FDnnection(SQLwe:string): string; begin FDConnection1.Params.DriverID:='MSAcc'; FDConnection1.ConnectionString:=form2.PathBaseEdit.Text; FDConnection1.Params.Database:=Form2.PathBaseEdit.Text; FDConnection1.LoginPrompt:=false; FDQuery1.Connection:=FDConnection1; FDQuery1.SQL.Add(SQLwe); FDConnection1.Connected:=true; FDQuery1.Active:=true; end; function TForm4.Formshow(FormNamba: integer): string; begin case FormNamba of 1:begin Form1.Visible:=true; Result:='sucsesful'; end; 2:begin Form2.Visible:=true; Result:='sucsesful' end; 3:begin Form3.Visible:=true; Result:='sucsesful' end; end; end; procedure TForm4.IdTCPServer1Execute(AContext: TIdContext); begin s:=AContext.Connection.Socket.ReadLn; //Записываем в переменную "s" сообщение, присланное клиентом. Form1.Memo1.Lines.add('['+Timetostr(time)+']'+'['+AContext.Connection.Socket.Binding.PeerIP+']'+s); //Добавляем в Memo время, ip-adress клиента и сообщение if AnsiPos('!',s)=0 then begin L:=s; P:=s; delete(L,AnsiPos('/',L),L.Length.Size); delete(P, 1,AnsiPos('/',P)); AContext.Connection.Socket.Writeln(L+'?'+P); end Else AContext.Connection.Socket.Writeln('Connected successfully'); end; function TForm4.Serveronoff(connectionS: string): string; begin if Form2.Server.Text='Server On' then begin idTcpServer1.Active:=false; //Выключаем сервер idTcpServer1.DefaultPort:=0; //Сбрасываем порт. Form1.PortNamba.Text:=''; Result:='Server Off'; end else begin idTcpServer1.DefaultPort:=form2.PortEdit.Text.ToInteger;//Устанавливаем порт, такой же, как и у клиента idTcpServer1.Active:=true; //Включаем сервер Form1.PortNamba.Text:=Form2.PortEdit.Text; Result:='Server On'; end; end; end. Кто может помочь с ошибкой? Server.7z Изменено Пятница в 05:34 пользователем Эльвинтель Цитата Ссылка на комментарий
0 GASCHE Опубликовано Пятница в 16:19 Поделиться Опубликовано Пятница в 16:19 А так не пробовали function TForm4.FDnnection(SQLwe:string): string; begin FDConnection1.Params.DriverID:='MSAcc'; FDConnection1.Params.Database:=Form2.PathBaseEdit.Text; FDConnection1.Connected:=true; FDQuery1.SQL.Add(SQLwe); FDQuery1.Active:=true; end; Эльвинтель 1 Цитата Ссылка на комментарий
0 Эльвинтель Опубликовано Пятница в 16:54 Автор Поделиться Опубликовано Пятница в 16:54 Благодарю, немного немного откорректировав помощь: FDConnection1.DriverName:='IscDbc'; FDConnection1.Params.DriverID:='MSAcc'; FDConnection1.LoginPrompt:=false; FDConnection1.Params.Database:=Form2.PathBaseEdit.Text; FDConnection1.Connected:=true; FDQuery1.Connection:=FDConnection1; FDQuery1.SQL.Clear; FDQuery1.SQL.Add(SQLwe); FDQuery1.Active:=true; Все вышло как надо. Цитата Ссылка на комментарий
Вопрос
Эльвинтель
unit Core; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer, Data.DB, Data.Win.ADODB, IdContext, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.FMXUI.Wait, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client, FMX.Controls.Presentation, FMX.Edit; type TForm4 = class(TForm) IdTCPServer1: TIdTCPServer; IdTCPServer2: TIdTCPServer; IdTCPServer3: TIdTCPServer; IdTCPServer4: TIdTCPServer; FDConnection1: TFDConnection; FDConnection2: TFDConnection; FDConnection3: TFDConnection; FDConnection4: TFDConnection; FDQuery1: TFDQuery; FDQuery2: TFDQuery; FDQuery3: TFDQuery; FDQuery4: TFDQuery; Edit1: TEdit; procedure IdTCPServer1Execute(AContext: TIdContext); procedure Edittext (Port,Besepath:TEdit); function Serveronoff (connectionS:string=''):string; function Formshow (FormNamba:integer):string; function FDnnection(SQLwe:string):string; private { Private declarations } public { Public declarations } end; var Form4: TForm4; s,L,P:string; implementation {$R *.fmx} uses Grid, Settings, UsersGrid; procedure TForm4.Edittext(Port, Besepath: TEdit); var Path:string; Asi,Asi1:Tstringlist; begin Asi:= TStringList.Create; Asi1:= TStringList.Create; Path:=Extractfilepath(paramstr(0)); Asi.LoadFromFile(Path+'settings\Defautport.txt'); Asi1.LoadFromFile(Path+'settings\settings.txt'); Port.Text:=Asi[0]; Besepath.Text:=Asi1[0]; end; function TForm4.FDnnection(SQLwe:string): string; begin FDConnection1.Params.DriverID:='MSAcc'; FDConnection1.ConnectionString:=form2.PathBaseEdit.Text; FDConnection1.Params.Database:=Form2.PathBaseEdit.Text; FDConnection1.LoginPrompt:=false; FDQuery1.Connection:=FDConnection1; FDQuery1.SQL.Add(SQLwe); FDConnection1.Connected:=true; FDQuery1.Active:=true; end; function TForm4.Formshow(FormNamba: integer): string; begin case FormNamba of 1:begin Form1.Visible:=true; Result:='sucsesful'; end; 2:begin Form2.Visible:=true; Result:='sucsesful' end; 3:begin Form3.Visible:=true; Result:='sucsesful' end; end; end; procedure TForm4.IdTCPServer1Execute(AContext: TIdContext); begin s:=AContext.Connection.Socket.ReadLn; //Записываем в переменную "s" сообщение, присланное клиентом. Form1.Memo1.Lines.add('['+Timetostr(time)+']'+'['+AContext.Connection.Socket.Binding.PeerIP+']'+s); //Добавляем в Memo время, ip-adress клиента и сообщение if AnsiPos('!',s)=0 then begin L:=s; P:=s; delete(L,AnsiPos('/',L),L.Length.Size); delete(P, 1,AnsiPos('/',P)); AContext.Connection.Socket.Writeln(L+'?'+P); end Else AContext.Connection.Socket.Writeln('Connected successfully'); end; function TForm4.Serveronoff(connectionS: string): string; begin if Form2.Server.Text='Server On' then begin idTcpServer1.Active:=false; //Выключаем сервер idTcpServer1.DefaultPort:=0; //Сбрасываем порт. Form1.PortNamba.Text:=''; Result:='Server Off'; end else begin idTcpServer1.DefaultPort:=form2.PortEdit.Text.ToInteger;//Устанавливаем порт, такой же, как и у клиента idTcpServer1.Active:=true; //Включаем сервер Form1.PortNamba.Text:=Form2.PortEdit.Text; Result:='Server On'; end; end; end.
Кто может помочь с ошибкой?
Server.7z
Изменено пользователем ЭльвинтельСсылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.