📄 ezindygis.pas
字号:
Begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_RECALL');
WriteLn(FLayer.Name);
End;
End;
Procedure TEzIndyTable.Refresh;
Begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_REFRESH');
WriteLn(FLayer.Name);
End;
End;
Procedure TEzIndyTable.Reindex;
Begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_REINDEX');
WriteLn(FLayer.Name);
End;
End;
Procedure TEzIndyTable.SetTagTo( Const TName: String );
Begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_SETTAGTO');
WriteLn(FLayer.Name);
WriteLn(TName);
End;
End;
Procedure TEzIndyTable.SetUseDeleted( tf: Boolean );
Begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_SETUSEDELETED');
WriteLn(FLayer.Name);
WriteSmallInt(Ord(tf));
End;
End;
Procedure TEzIndyTable.StringPut( Const fieldname, value: String );
Begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_STRINGPUT');
WriteLn(FLayer.Name);
WriteLn(FieldName);
WriteLn(value);
End;
End;
Procedure TEzIndyTable.StringPutN( fieldno: integer; Const value: String );
Begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_STRINGPUTN');
WriteLn(FLayer.Name);
WriteInteger(FieldNo);
WriteLn(value);
End;
End;
Procedure TEzIndyTable.Zap;
Begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_ZAP');
WriteLn(FLayer.Name);
End;
End;
Function TEzIndyTable.DBCreateTable( Const fname: String; AFieldList: TStringList ): boolean;
var
TempStrings: TStrings;
begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_DBCREATETABLE');
WriteLn(fname);
TempStrings:= TStringList.Create;
try
If Assigned(AFieldList) Then
TempStrings.Assign(AFieldList);
WriteStrings(TempStrings, true);
finally
TempStrings.Free;
end;
End;
end;
Function TEzIndyTable.DBTableExists( const TableName: string ): Boolean;
begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_DBTABLEEXITS');
WriteLn(TableName);
Result:=ReadSmallInt<>0;
End;
end;
Function TEzIndyTable.DBDropTable( const TableName: string): Boolean;
begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_DBDROPTABLE');
WriteLn(TableName);
Result:=ReadSmallInt<>0;
End;
end;
Function TEzIndyTable.DBDropIndex( const TableName: string): Boolean;
begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_DBDROPINDEX');
WriteLn(TableName);
Result:=ReadSmallInt<>0;
End;
end;
Function TEzIndyTable.DBRenameTable( const Source, Target: string): Boolean;
begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_DBRENAMETABLE');
WriteLn(Source);
WriteLn(Target);
Result:=ReadSmallInt<>0;
End;
end;
Procedure TEzIndyTable.BeginTrans;
begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_BEGINTRANS');
WriteLn(FLayer.Name);
End;
end;
Procedure TEzIndyTable.EndTrans;
begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_ENDTRANS');
WriteLn(FLayer.Name);
End;
end;
Procedure TEzIndyTable.RollbackTrans;
begin
with TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient do
Begin
WriteLn('DBT_ROLLBACKTRANS');
WriteLn(FLayer.Name);
End;
end;
{-------------------------------------------------------------------------------}
{ TEzIndyLayerInfo - class implementation }
{-------------------------------------------------------------------------------}
Function TEzIndyLayerInfo.GetTCPClient: TIdTCPClient;
begin
Result:= TEzIndyClientGIS(FLayer.Layers.GIS).FTCPClient;
end;
Function TEzIndyLayerInfo.BufferGIS: TEzGIS;
Begin
Result:= TEzIndyClientGIS(FLayer.Layers.GIS).FBufferGIS;
End;
Function TEzIndyLayerInfo.IsBuffered: Boolean;
Begin
With TEzIndyClientGIS(FLayer.Layers.GIS) Do
Result:= FClientBuffered And FBufferGIS.Active;
End;
Function TEzIndyLayerInfo.GetVisible: Boolean;
Var
Layer: TEzBaseLayer;
Begin
Result:= False;
If GetTCPClient<>Nil Then
Begin
{ read from server if not buffered }
if Not IsBuffered Then
with GetTCPClient do
Begin
WriteLn('LI_GETVISIBLE');
WriteLn(FLayer.Name);
Result := ReadSmallInt<>0;
End
Else
Begin
{ read from the buffer GIS }
Layer:= BufferGIS.Layers.LayerByName(Flayer.Name);
If Layer <> Nil Then
Result:= Layer.LayerInfo.Visible;
End;
End;
End;
Procedure TEzIndyLayerInfo.SetVisible( Value: Boolean );
Var
Layer: TEzBaseLayer;
Begin
If GetTCPClient<>Nil then
Begin
{ always write to the server }
with GetTCPClient do
Begin
WriteLn('LI_SETVISIBLE');
WriteLn(FLayer.Name);
WriteSmallInt(Ord(Value));
End;
{ update the buffer GIS }
Layer:= BufferGIS.Layers.LayerByName(FLayer.Name);
If Layer <> Nil Then
Layer.LayerInfo.Visible:= Value;
End;
with FLayer.Layers.GIS do
If Assigned( OnVisibleLayerChange ) Then
OnVisibleLayerChange( FLayer, FLayer.Name );
SetModifiedStatus( FLayer );
End;
Function TEzIndyLayerInfo.GetSelectable: Boolean;
Var
Layer: TEzBaseLayer;
Begin
Result:= False;
If GetTCPClient<>Nil Then
Begin
if Not IsBuffered Then
with GetTCPClient do
Begin
WriteLn('LI_GETSELECTABLE');
WriteLn(FLayer.Name);
Result := ReadSmallInt<>0;
End
Else
Begin
Layer:= BufferGIS.Layers.LayerByName(Flayer.Name);
If Layer <> Nil Then
Result:= Layer.LayerInfo.Selectable;
End;
End;
End;
Procedure TEzIndyLayerInfo.SetSelectable( Value: Boolean );
Var
Layer: TEzBaseLayer;
Begin
If (GetTCPClient<>Nil) Then
Begin
with GetTCPClient do
Begin
WriteLn('LI_SETSELECTABLE');
WriteLn(FLayer.Name);
WriteSmallInt(Ord(value));
End;
{ update the buffer GIS }
Layer:= BufferGIS.Layers.LayerByName(FLayer.Name);
If Layer <> Nil Then Layer.LayerInfo.Selectable:= Value;
End;
with FLayer.Layers.GIS do
If Assigned( OnSelectableLayerChange ) Then
OnSelectableLayerChange( FLayer, FLayer.Name );
SetModifiedStatus( FLayer );
End;
Function TEzIndyLayerInfo.GetIsCosmethic: Boolean;
Var
Layer: TEzBaseLayer;
Begin
Result:= False;
If GetTCPClient<>Nil Then
Begin
if Not IsBuffered Then
with GetTCPClient do
Begin
WriteLn('LI_GETISCOSMETHIC');
WriteLn(FLayer.Name);
Result:= ReadSmallInt<>0;
End
Else
Begin
Layer:= BufferGIS.Layers.LayerByName(Flayer.Name);
If Layer <> Nil Then
Result:= Layer.LayerInfo.IsCosmethic;
End;
End ;
End;
Procedure TEzIndyLayerInfo.SetIsCosmethic( value: Boolean );
Var
Layer: TEzBaseLayer;
Begin
If GetTCPClient<>Nil Then
Begin
with GetTCPClient do
Begin
WriteLn('LI_SETISCOSMETHIC');
WriteLn(FLayer.Name);
WriteSmallInt(Ord(value));
End;
{ update the buffer GIS }
Layer:= BufferGIS.Layers.LayerByName(FLayer.Name);
If Layer <> Nil Then
Layer.LayerInfo.IsCosmethic:= Value;
End;
End;
Function TEzIndyLayerInfo.GetExtension: TEzRect;
Var
Layer: TEzBaseLayer;
Begin
Result:= INVALID_EXTENSION;
If GetTCPClient<>Nil Then
Begin
if Not IsBuffered Then
with GetTCPClient do
Begin
WriteLn('LI_GETEXTENSION');
WriteLn(FLayer.Name);
ReadBuffer(Result.X1,SizeOf(double));
ReadBuffer(Result.Y1,SizeOf(double));
ReadBuffer(Result.X2,SizeOf(double));
ReadBuffer(Result.Y2,SizeOf(double));
End
Else
Begin
Layer:= BufferGIS.Layers.LayerByName(Flayer.Name);
If Layer <> Nil Then
Result:= Layer.LayerInfo.Extension;
End;
End
End;
Procedure TEzIndyLayerInfo.SetExtension( Const Value: TEzRect );
Var
Layer: TEzBaseLayer;
Begin
If GetTCPClient<>Nil Then
Begin
with GetTCPClient do
Begin
WriteLn('LI_SETEXTENSION');
WriteLn(FLayer.Name);
WriteBuffer(value.X1,SizeOf(double));
WriteBuffer(value.Y1,SizeOf(double));
WriteBuffer(value.X2,SizeOf(double));
WriteBuffer(value.Y2,SizeOf(double));
End;
{ update the buffer GIS }
Layer:= BufferGIS.Layers.LayerByName(FLayer.Name);
If Layer <> Nil Then
Layer.LayerInfo.Extension:= Value;
End;
SetModifiedStatus( FLayer );
End;
Function TEzIndyLayerInfo.GetIDCounter: integer;
Begin
Result:= 0;
If GetTCPClient<>Nil Then
Begin
{ IDCounter must be read from server because it is used for new insertions }
//if Not IsBuffered Then
with GetTCPClient do
Begin
WriteLn('LI_GETIDCOUNTER');
WriteLn(FLayer.Name);
Result:= ReadInteger;
End;
{Else
Begin
Layer:= BufferGIS.Layers.LayerByName(Flayer.Name);
If Layer <> Nil Then
Result:= Layer.LayerInfo.IDCounter;
End; }
End;
End;
Procedure TEzIndyLayerInfo.SetIDCounter( Value: integer );
Begin
If GetTCPClient<>Nil Then
with GetTCPClient do
Begin
WriteLn('LI_SETIDCOUNTER');
WriteLn(FLayer.Name);
WriteInteger(value);
End;
// nothing to update on client
End;
Function TEzIndyLayerInfo.GetIsAnimationLayer: Boolean;
Var
Layer: TEzBaseLayer;
Begin
Result:= False;
If GetTCPClient<>Nil Then
Begin
if Not IsBuffered Then
with GetTCPClient do
Begin
WriteLn('LI_GETISANIMATION');
WriteLn(FLayer.Name);
Result:= ReadSmallInt<>0;
End
Else
Begin
Layer:= BufferGIS.Layers.LayerByName(Flayer.Name);
If Layer <> Nil Then
Result:= Layer.LayerInfo.IsAnimationLayer;
End;
End;
End;
Procedure TEzIndyLayerInfo.SetIsAnimationLayer( Value: Boolean );
Var
Layer: TEzBaseLayer;
Begin
If GetTCPClient<>Nil Then
Begin
with GetTCPClient do
Begin
WriteLn('LI_SETISANIMATION');
WriteLn(FLayer.Name);
WriteSmallInt(Ord(value));
End;
{ update the buffer GIS }
Layer:= BufferGIS.Layers.LayerByName(FLayer.Name);
If Layer <> Nil Then
Layer.LayerInfo.IsAnimationLayer:= Value;
End;
End;
Function TEzIndyLayerInfo.GetIsIndexed: Boolean;
Var
Layer: TEzBaseLayer;
Begin
Result:= True; // by default
If GetTCPClient<>Nil Then
Begin
if Not IsBuffered Then
with GetTCPClient do
Begin
WriteLn('LI_GETISINDEXED');
WriteLn(FLayer.Name);
Result:= ReadSmallInt<>0;
End
Else
Begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -