Эльвинтель Опубликовано 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 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.