object FormMain: TFormMain Left = 155 Top = 211 BorderStyle = bsDialog Caption = 'Async Data Transfer Demo - Drop source' ClientHeight = 368 ClientWidth = 573 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Arial' Font.Style = [] OldCreateOrder = False Position = poDefaultPosOnly OnCreate = FormCreate OnDestroy = FormDestroy PixelsPerInch = 96 TextHeight = 14 object StatusBar1: TStatusBar Left = 0 Top = 349 Width = 573 Height = 19 Panels = <> SimplePanel = True end object Panel2: TPanel Left = 0 Top = 105 Width = 573 Height = 229 Cursor = crHandPoint Align = alClient BevelOuter = bvNone Caption = ' ' ParentColor = True TabOrder = 1 object Panel3: TPanel Left = 0 Top = 0 Width = 185 Height = 229 Align = alLeft BevelOuter = bvLowered Caption = ' ' ParentColor = True TabOrder = 0 object PaintBoxPie: TPaintBox Left = 1 Top = 1 Width = 183 Height = 227 end end object Panel4: TPanel Left = 185 Top = 0 Width = 388 Height = 229 Align = alClient BevelOuter = bvLowered BorderWidth = 8 Caption = ' ' TabOrder = 1 object Memo2: TMemo Left = 24 Top = 24 Width = 356 Height = 89 TabStop = False BorderStyle = bsNone Enabled = False Lines.Strings = ( 'During a normal data transfer the source application will be blo' + 'cked ' 'while the transfer takes place because the applicaion is unable ' + 'to ' 'process events.' 'Notice that the timer stops and the form can'#39't be moved or repai' + 'nted ' 'during a normal data transfer.') ParentColor = True ReadOnly = True TabOrder = 0 WantReturns = False end object RadioButtonNormal: TRadioButton Left = 8 Top = 8 Width = 353 Height = 17 Caption = 'Normal synchronous transfer' Checked = True TabOrder = 1 TabStop = True end object Memo3: TMemo Left = 24 Top = 136 Width = 356 Height = 89 TabStop = False BorderStyle = bsNone Enabled = False Lines.Strings = ( 'During an asynchronous data transfer the data transfer is perfor' + 'med in ' 'a separate thread so the source application appears unaffected b' + 'y the ' 'transfer.' 'Notice that the timer continues and the form can be moved and re' + 'painted ' 'during an asynchronous data transfer.' '' ' ') ParentColor = True ReadOnly = True TabOrder = 3 WantReturns = False end object RadioButtonAsync: TRadioButton Left = 8 Top = 120 Width = 361 Height = 17 Caption = 'Asynchronous transfer' TabOrder = 2 end end end object ProgressBar1: TProgressBar Left = 0 Top = 334 Width = 573 Height = 15 Align = alBottom Min = 0 Max = 1000000 Step = 1024 TabOrder = 2 end object Panel5: TPanel Left = 0 Top = 0 Width = 573 Height = 105 Align = alTop BevelOuter = bvLowered Caption = ' ' TabOrder = 3 object Memo1: TMemo Left = 113 Top = 1 Width = 459 Height = 103 Align = alClient BorderStyle = bsNone Lines.Strings = ( 'This example demonstrates how to source a drop from a thread.' 'The advantage of using a thread is that the source application i' + 'sn'#39't blocked while the target ' 'application processes the drop.' '' 'Note that this approach is normally only used when transferring ' + 'large amounts of data or ' 'when the drop target is very slow.' '' ' ') ParentColor = True ReadOnly = True TabOrder = 0 WantReturns = False end object Panel6: TPanel Left = 1 Top = 1 Width = 112 Height = 103 Cursor = crHandPoint Align = alLeft BevelOuter = bvNone Caption = 'Drag this' Font.Charset = DEFAULT_CHARSET Font.Color = clBlue Font.Height = -21 Font.Name = 'Arial' Font.Style = [] ParentFont = False TabOrder = 1 OnMouseDown = PanelMouseDown end end object Timer1: TTimer Interval = 100 OnTimer = Timer1Timer Left = 8 Top = 160 end object DropEmptySource1: TDropEmptySource DragTypes = [dtCopy, dtMove] OnDrop = DropEmptySource1Drop OnAfterDrop = DropEmptySource1AfterDrop OnGetData = DropEmptySource1GetData ImageIndex = 0 ShowImage = False ImageHotSpotX = 16 ImageHotSpotY = 16 AllowAsyncTransfer = True Left = 40 Top = 161 end object DataFormatAdapterSource: TDataFormatAdapter DragDropComponent = DropEmptySource1 DataFormatName = 'TVirtualFileStreamDataFormat' Enabled = True Left = 40 Top = 193 end end