Эльвинтель Опубликовано 17 марта, 2023 Опубликовано 17 марта, 2023 (изменено) 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 Изменено 17 марта, 2023 пользователем Эльвинтель Цитата
0 GASCHE Опубликовано 17 марта, 2023 Опубликовано 17 марта, 2023 А так не пробовали 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 Эльвинтель Опубликовано 17 марта, 2023 Автор Опубликовано 17 марта, 2023 Благодарю, немного немного откорректировав помощь: 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 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.