- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10 - Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10 git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
121 lines
3.3 KiB
ObjectPascal
121 lines
3.3 KiB
ObjectPascal
unit FirstSampleServerMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uROPoweredByRemObjectsButton,
|
|
Grids, ValEdit, uROClient, uROBinMessage, uROServer, uROIndyTCPServer,
|
|
uROIndyHTTPServer, StdCtrls;
|
|
|
|
type
|
|
TFirstSampleServerMainForm = class(TForm)
|
|
ValueListEditor: TValueListEditor;
|
|
ROServer: TROIndyHTTPServer;
|
|
BinMessage: TROBinMessage;
|
|
Memo1: TMemo;
|
|
AddButton: TButton;
|
|
DeleteButton: TButton;
|
|
ROPoweredByRemObjectsButton: TROPoweredByRemObjectsButton;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure DeleteButtonClick(Sender: TObject);
|
|
procedure AddButtonClick(Sender: TObject);
|
|
procedure ValueListEditorValidate(Sender: TObject; ACol, ARow: Integer;
|
|
const KeyName, KeyValue: string);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure ValueListEditorStringsChange(Sender: TObject);
|
|
private
|
|
StrList: TStringList;
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
MultiReadSingleWriter: TMultiReadExclusiveWriteSynchronizer;
|
|
|
|
end;
|
|
|
|
var
|
|
FirstSampleServerMainForm: TFirstSampleServerMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TFirstSampleServerMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
ROServer.Active := true;
|
|
StrList := TStringList.Create;
|
|
StrList.Assign(ValueListEditor.Strings);
|
|
MultiReadSingleWriter := TMultiReadExclusiveWriteSynchronizer.Create;
|
|
end;
|
|
|
|
procedure TFirstSampleServerMainForm.DeleteButtonClick(Sender: TObject);
|
|
var
|
|
fRect: TGridRect;
|
|
begin
|
|
ValueListEditor.RestoreCurrentRow;
|
|
fRect := ValueListEditor.Selection;
|
|
if ValueListEditor.Keys[fRect.Top] = '' then Exit;
|
|
ValueListEditor.DeleteRow(Frect.Top);
|
|
ActiveControl := ValueListEditor;
|
|
end;
|
|
|
|
procedure TFirstSampleServerMainForm.AddButtonClick(Sender: TObject);
|
|
var
|
|
i: integer;
|
|
fRect: TGridRect;
|
|
begin
|
|
ActiveControl := ValueListEditor;
|
|
i := ValueListEditor.InsertRow('', '', True);
|
|
fRect.Left := 0;
|
|
fRect.Top := i;
|
|
fRect.Right := 0;
|
|
fRect.Bottom := i;
|
|
ValueListEditor.Selection := fRect;
|
|
ValueListEditor.EditorMode := True;
|
|
end;
|
|
|
|
procedure TFirstSampleServerMainForm.ValueListEditorValidate(Sender: TObject; ACol,
|
|
ARow: Integer; const KeyName, KeyValue: string);
|
|
var
|
|
s: string;
|
|
begin
|
|
while ValueListEditor.Cells[0, ARow] = '' do
|
|
if InputQuery('Enter nickname', 'Enter nickname for ''' + ValueListEditor.Cells[1, ARow] + ''':', s) then begin
|
|
ValueListEditor.Cells[0, ARow] := s;
|
|
end
|
|
else begin
|
|
ValueListEditor.RestoreCurrentRow;
|
|
ValueListEditor.DeleteRow(ARow);
|
|
Exit;
|
|
end;
|
|
while ValueListEditor.Cells[1, ARow] = '' do
|
|
if InputQuery('Enter Full Name', 'Enter Full Name for ''' + ValueListEditor.Cells[0, ARow] + ''':', s) then begin
|
|
ValueListEditor.Cells[1, ARow] := s;
|
|
end
|
|
else begin
|
|
ValueListEditor.RestoreCurrentRow;
|
|
ValueListEditor.DeleteRow(ARow);
|
|
Exit;
|
|
end;
|
|
end;
|
|
|
|
procedure TFirstSampleServerMainForm.FormDestroy(Sender: TObject);
|
|
begin
|
|
StrList.Free;
|
|
MultiReadSingleWriter.Free;
|
|
end;
|
|
|
|
procedure TFirstSampleServerMainForm.ValueListEditorStringsChange(
|
|
Sender: TObject);
|
|
begin
|
|
MultiReadSingleWriter.BeginWrite;
|
|
try
|
|
StrList.Assign(ValueListEditor.Strings);
|
|
finally
|
|
MultiReadSingleWriter.EndWrite;
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|