Re: [Notes2-team] Re: [Notes2-team] Uma =?ISO-8859-1?Q?=FAltima_?= =?ISO-8859-1?Q?id=E9ia=2C_status
Brought to you by:
andersonrb
From: Anderson R. B. <no...@ig...> - 2003-12-03 17:43:37
|
Putz! Naum vi direito, desculpa ae... Daniel, vamos usar a porcaria da unit clipboard... eu e tu naum conseguimos achar o bug e nos newgroups naum tem nehuma informa=E7=E3o de como usar a clipboard diretamente por API. Deve ser poss=EDvel, claro, mas n=E3o vamos morrer por 30 kbs, eu acho... Ab. Anderson Daniel Roma wrote: > Valeu Anderson! Funciona Direitinho! > A intens=E3o foi boa, mas precisa da unit clipbrd nesse c=F3digo, pq el= e=20 > usa clipboard.open, etc... :) > Precisamos de uma que use s=F3 APIs do Windows... > =20 > Thanks anyway! > =20 > =20 > []=B4s > =20 > Daniel > > ----- Original Message ----- > *From:* Anderson R. Barbieri <mailto:no...@ig...> > *To:* not...@li... > <mailto:not...@li...> > *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... > > 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 Valores >Departamento de Tecnologia e Informa=E7=F5es >Checked by AVG anti-virus system (http://www.grisoft.com). >Version: 6.0.545 / Virus Database: 339 - Release Date: 27/11/2003 > --=20 Anderson Rodrigues Barbieri -------------------------------------------- #Equipe do Notes - Coordenador/Desenvolvedor { TAndInfo } ICQ #149391850 / no...@ig... Notes - http://notes.codigolivre.org.br NotesDev - http://notes2.sf.net/dev F=F3rum - http://notes2.sf.net/forum |