RAD Studio VCL Reference
|
Copies the contents of another collection to the object where the method is executed.
procedure Assign(Source: TPersistent); override;
virtual __fastcall Assign(TPersistent * Source);
Use Assign to copy the contents of one TCollection instance to another. The Assign method deletes all items from the destination collection (the object where it is executed), then adds a copy of each item in the source collection's Items array.
Source is another object (typically another collection) that contains the items that replace this collection's items.
Delphi Examples:
{ This example saves params from a ClientDataSet, alters them and restores them. } procedure TForm1.SaveParamsClick(Sender: TObject); begin { Save the parameters for the TDataSet } SavedParams.Assign(CDS.Params); end; procedure TForm1.AlterParamsClick(Sender: TObject); var I : Integer; ListItem: string; begin CDS.Params.CreateParam(ftString, 'stringParam', ptInput); // you can also edit the params in the CDS dynamically CDS.Params.CreateParam(ftSmallInt, 'smallIntParam', ptInput); CDS.Params.CreateParam(ftInteger, 'intParam', ptInput); CDS.Params.CreateParam(ftWord, 'wordParam', ptInput); CDS.Params.CreateParam(ftBoolean, 'boolParam', ptInput); CDS.Params.CreateParam(ftFloat, 'floatParam', ptInput); CDS.Params.CreateParam(ftCurrency, 'currencyParam', ptInput); CDS.Params.CreateParam(ftBCD, 'bcdParam', ptInput); CDS.Params.CreateParam(ftDate, 'dateParam', ptInput); CDS.Params.CreateParam(ftTime, 'timeParam', ptInput); CDS.Params.CreateParam(ftDateTime, 'dateTimeParam', ptInput); { Call FetchParams to ensure parameters reflect server metadata } CDS.FetchParams; with CDS.Params do begin for I := 0 to Count - 1 do begin ListItem := ListBox1.Items[I]; case Items[I].DataType of ftString: Items[I].AsString := ListItem; ftSmallInt: Items[I].AsSmallInt := StrToIntDef(ListItem, 0); ftInteger: Items[I].AsInteger := StrToIntDef(ListItem, 0); ftWord: Items[I].AsWord := StrToIntDef(ListItem, 0); ftBoolean: begin if ListItem = 'True' then Items[I].AsBoolean := True else Items[I].AsBoolean := False; end; ftFloat: Items[I].AsFloat := StrToFloat(ListItem); ftCurrency: Items[I].AsCurrency := StrToFloat(ListItem); ftBCD: Items[I].AsBCD := StrToCurr(ListItem); ftDate: Items[I].AsDate := StrToDate(ListItem); ftTime: Items[I].AsTime := StrToTime(ListItem); ftDateTime: Items[I].AsDateTime := StrToDateTime(ListItem); end; end; end; end; procedure TForm1.RestoreParamsClick(Sender: TObject); begin { Restore the parameters to TDataSet } CDS.Params.AssignValues(SavedParams); end; procedure TForm1.FormCreate(Sender: TObject); begin { Initialize SavedParams } SavedParams := TParams.Create; ListBox1.Items.Add('Here is a string'); ListBox1.Items.Add('4'); ListBox1.Items.Add('3456789'); ListBox1.Items.Add('34'); ListBox1.Items.Add('0'); ListBox1.Items.Add('12.56'); ListBox1.Items.Add('4.23'); ListBox1.Items.Add('99.5'); ListBox1.Items.Add('4/12/53'); ListBox1.Items.Add('7:45:00'); ListBox1.Items.Add('4/12/53 7:45:00'); end; procedure TForm1.FormDestroy(Sender: TObject); begin SavedParams.Free; end;
{ This example saves params from a ClientDataSet, alters them and restores them. } procedure TForm1.SaveParamsClick(Sender: TObject); begin { Save the parameters for the TDataSet } SavedParams.Assign(CDS.Params); end; procedure TForm1.AlterParamsClick(Sender: TObject); var I : Integer; begin CDS.Params.CreateParam(ftInteger, 'StateParam', ptInput); CDS.Params.CreateParam(ftInteger, 'MyParam', ptInput); for I := 0 to CDS.Params.Count - 1 do if (CDS.Params.Items[I].IsNull) and (CDS.Params.Items[I].DataType = ftInteger) then { Items is the default property, so you can omit its name } CDS.Params[I].AsInteger := -1; end; procedure TForm1.RestoreParamsClick(Sender: TObject); begin { Restore the parameters to TDataSet } CDS.Params.AssignValues(SavedParams); end; procedure TForm1.FormCreate(Sender: TObject); begin { Initialize SavedParams } SavedParams := TParams.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin SavedParams.Free; end;
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|