Página 1 de 1

TImage

Enviado: 19 Fev 2010 14:23
por Euclides
Olá pessoal,
Eu estou tentando apresentar desenhos de produtos pelo Timage.
O problema é que preciso ´guardar´ as informações sobre o zoom e da posição do scroll horizontal e vertical, para que na próxima apresentação, a figura esteja na mesma posição e zoom. (o zoom é fácil... estou com probemas no scroll)
Alguém já fêz isso?
Agradecemos antecipadamente, Euclides

Re: TImage

Enviado: 19 Fev 2010 18:01
por rochinha
Amiguinho,

É necessário que voce identifique quais classes estão sendo manipuladas e analisar o código da mesma em FIVEWIN\SOURCE\CLASSES afim de encontrar alguma referencia sobre os controles SCROLL.

Se estes controles possuirem eventos que demonstram coordenadas ou numeros que possam ser manipulados foram do controle, exemplo, TImage:nHscroll := 35, ai voce poderá além de modificar esta propriedade, obter seu conteúdo.

Re: TImage

Enviado: 23 Fev 2010 10:28
por Euclides
Olá pessoal...
Depois de um fim de semana conturbado, ´brigando´ com os ::oHscroll:SetPos(), oVscloll:SetPos(), ::AdjControls() e outros ´::´ cheguei a uma solução muito simples.
1 - Guarda as variáveis: oImg:nX, oImg:nY e oImg:nZoom
2 - Define a imagem como:

REDEFINE IMAGE oImg ID 100 OF oDlg FILE cFile UPDATE SCROLL
oImg:nX :=nPx
oImg:nY :=nPy
oImg:nZoom:=nPz
...
ACTIVATE DIALOG oDlg CENTER

... espero ter economizado algum tempo para os outros...
T+
Euclides

Re: TImage

Enviado: 23 Fev 2010 14:34
por rochinha
Amiguinho,

Voce pode gravar as informações em arquivos .INI, se forem poucos, voce passa as informações de nome da imagem, coordenadas para a função SalvaCoordenadas:

Código: Selecionar todos

function SalvaCoordenadas( cImage, nImgNX, nImgNY, nImgNZ )
   VerifyINI( cImage, "nImgNX"      , nImgNX, "TImage.ini", .t. )
   VerifyINI( cImage, "nImgNY"      , nImgNY, "TImage.ini", .t. )
   VerifyINI( cImage, "nImgNZoom", nImgNZ, "TImage.ini", .t. )
   return nil

function VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )
   oIni := TIni():New( _inifile_ )
   if _grava_ = .t.
      oIni:Set( _section_, _entry_, _var_ )
   endif
   return oIni:Get( _section_, _entry_, _var_, _var_ )