[Notes2-team] =?iso-8859-1?Q?Re:_=5BNotes2-team=5D_Uma_=FAltima_id=E9ia=2C_status?= =?iso-8859-1?Q?
Brought to you by:
andersonrb
From: Daniel R. <dan...@ya...> - 2003-12-03 11:17:49
|
Valeu Anderson! Funciona Direitinho! A intens=E3o foi boa, mas precisa da unit clipbrd nesse c=F3digo, pq ele = usa clipboard.open, etc... :) Precisamos de uma que use s=F3 APIs do Windows...=20 Thanks anyway! []=B4s Daniel ----- Original Message -----=20 From: Anderson R. Barbieri=20 To: not...@li...=20 Sent: Wednesday, December 03, 2003 1:14 AM Subject: [Notes2-team] Re: [Notes2-team] Re: [Notes2-team] Re: = [Notes2-team] Uma =FAltima id=E9ia, status, entrevista Daniel, n=E3o consegui achar o bug. N=E3o parece ter erro nehum...=20 Dae fui at=E9 os newgroups da Borland (usando o maravilhoso google) e consegui achar c=F3digo pra fazer o que tu precisa fazer (depois de = mais de 50 minutos de pesquisa, mas ao menos achei): Naum testei, mas =E9 de um membro do TeamB, ent=E3o vai funcionar :) Anderson {+------------------------------------------------------------ | Unit ClipUtil | | Version: 1.0 Created: 05/05/96, 12:56:57 | Last Modified: 05/05/96, 12:56:57 | Author : P. Below | Project: Common Utilities | Description: | Routines to copy string lists and stream to and | from the clipboard. +------------------------------------------------------------} Unit ClipUtil; Interface Uses Classes; Procedure CopyStringsToClipboard( fmt: Cardinal; S: TStrings ); Procedure CopyStreamToClipboard( fmt: Cardinal; S: TStream ); Procedure CopyStringsFromClipboard( fmt: Cardinal; S: TStrings ); Procedure CopyStreamFromClipboard( fmt: Cardinal; S: TStream ); Implementation Uses WinTypes, WinProcs, SysUtils, Clipbrd; Procedure CopyStringsToClipboard( fmt: Cardinal; S: TStrings ); Var MemStr: TMemoryStream; Begin MemStr :=3D TMemoryStream.Create; try S.SaveToStream(MemStr); CopyStreamToClipboard( fmt, MemStr ); finally MemStr.Free; end; End; { CopyStringsToClipboard } Procedure CopyStreamToClipboard( fmt: Cardinal; S: TStream ); Var hMem: THandle; pMem: Pointer; Begin S.Position :=3D 0; hMem :=3D GlobalAlloc( GHND or GMEM_DDESHARE, S.Size ); If hMem <> 0 Then Begin pMem :=3D GlobalLock( hMem ); If pMem <> Nil Then Begin try S.Read( pMem^, S.Size ); S.Position :=3D 0; finally GlobalUnlock( hMem ); end; Clipboard.Open; try Clipboard.SetAsHandle( fmt, hMem ); finally Clipboard.Close; end; End { If } Else Begin GlobalFree( hMem ); OutOfMemoryError; End; End { If } Else OutOfMemoryError; End; { CopyStreamToClipboard } Procedure CopyStringsFromClipboard( fmt: Cardinal; S: TStrings ); Var MemStr: TMemoryStream; Begin MemStr:=3D TMemoryStream.Create; try CopyStreamFromClipboard( fmt, MemStr ); MemStr.Position :=3D 0; S.LoadFromStream( MemStr ); finally MemStr.Free; end; End; { CopyStringsFromClipboard } Procedure CopyStreamFromClipboard( fmt: Cardinal; S: TStream ); Var hMem: THandle; pMem: Pointer; Begin hMem :=3D Clipboard.GetAsHandle( fmt ); If hMem <> 0 Then Begin pMem :=3D GlobalLock( hMem ); If pMem <> Nil Then Begin try S.Write( pMem^, GlobalSize( hMem )); S.Position :=3D 0; finally =20 GlobalUnlock( hMem ); end; =20 End { If } Else raise Exception.Create( 'CopyStreamFromClipboard: could not lock global handle '+ 'obtained from clipboard!'); End; { If } End; { CopyStreamFromClipboard } End. { Unit ClipUtil }---Verifica=E7=E3o de V=EDrus executada:Nenhum = v=EDrus encontrado!Sudeste Seguran=E7a e Transporte de = ValoresDepartamento de Tecnologia e Informa=E7=F5esChecked by AVG = anti-virus system (http://www.grisoft.com).Version: 6.0.545 / Virus = Database: 339 - Release Date: 27/11/2003 |