Página 1 de 1

window panel auto ajustavel

Enviado: 11 Mai 2015 00:10
por Nascimento
criei uma funçao tipo um quadro com window panel dependendo do tamanho da foto ele se auto ajusta ao tamanho da foto.. digamos assim

exemplo uma foto 10cm x15cm ele se ajusta adequadamente dando um efeito de quadro, como eu faria pra ele se atualizar em tempo real tipo
se eu trocar a imagem de 10x15 por uma 10x10 ou 20x15 pra ele redimencionar em execuçao do programa? porque atualmente so se eu fechar e reabrir

window panel auto ajustavel

Enviado: 11 Mai 2015 09:44
por Toledo
Amigo, o tamanho de uma foto (imagem) e também do window panel é feito por pixel, então para ficar mais fácil montar um demo, favor informar qual seria a dimensão da foto e do panel em pixel para uma foto 10cm x15cm, e também os outros tamanhos (10x10 ou 20x15).

Abraços,

window panel auto ajustavel

Enviado: 11 Mai 2015 13:01
por Claudio Soto
Es un bug de HMG, lo voy a arreglar, gracias por reportarlo.

Este es un ejemplo de como hacerlo a pulmón.

Código: Selecionar todos

#include "hmg.ch"

Function Main

	SET SCROLLSTEP TO 10

	DEFINE WINDOW Win_1 ;
		ROW 0 ;
		COL 0 ;
		WIDTH 400 ;
		HEIGHT 400 ;
		TITLE 'HMG Panel Window Demo' ;
		WINDOWTYPE MAIN  


		DEFINE WINDOW Win_Panel ;
			ROW 30 ;
			COL 30 ;
			WIDTH 300 ;
			HEIGHT 200 ;
			VIRTUALWIDTH 400 ;
			VIRTUALHEIGHT 400 ;
			WINDOWTYPE PANEL

			DEFINE LABEL LABEL_1
				ROW		10
				COL		10
				VALUE		'Panel windows...'
				WIDTH		300
			END LABEL

			DEFINE BUTTON BUTTON_1
				ROW		40
				COL		10
				CAPTION		'Click Me!'
				ACTION		MsgInfo('Clicked!')
			END BUTTON

			DEFINE LABEL LABEL_2
				ROW		90
				COL		10
				VALUE		"Can do this!"
				WIDTH		300
			END LABEL

			DEFINE TEXTBOX TEXT_1
				ROW		120
				COL		10
				VALUE		'Test'
			END TEXTBOX

			DEFINE TEXTBOX TEXT_2
				ROW		150
				COL		10
				VALUE		'Test'
			END TEXTBOX

			DEFINE TEXTBOX TEXT_3
				ROW		180
				COL		10
				VALUE		'Test'
			END TEXTBOX
	
			DEFINE TEXTBOX TEXT_4
				ROW		210
				COL		10
				VALUE		'Test'
			END TEXTBOX

			DEFINE TEXTBOX TEXT_5
				ROW		240
				COL		10
				VALUE		'Test'
			END TEXTBOX

		END WINDOW

		DEFINE BUTTON BUTTON_1
			ROW		300
			COL		10
			CAPTION		'Panel Size -'
			ACTION  ( x := ScreenToClientCol (Win_1.HANDLE, Win_Panel.Col),;
                   y := ScreenToClientRow (Win_1.HANDLE, Win_Panel.Row),;
                   MoveWindow (Win_Panel.HANDLE, x, y, Win_Panel.WIDTH - 10, Win_Panel.HEIGHT - 10, .T.))
		END BUTTON

		DEFINE BUTTON BUTTON_2
			ROW		300
			COL		200
			CAPTION		'Panel Size +'
			ACTION  ( x := ScreenToClientCol (Win_1.HANDLE, Win_Panel.Col),;
                   y := ScreenToClientRow (Win_1.HANDLE, Win_Panel.Row),;
                   MoveWindow (Win_Panel.HANDLE, x, y, Win_Panel.WIDTH + 10, Win_Panel.HEIGHT + 10, .T.))
		END BUTTON

	END WINDOW

	Win_1.Center 

	Activate Window Win_1 

Return

window panel auto ajustavel

Enviado: 12 Mai 2015 09:45
por Nascimento
ok mestre toledo vou montar um demo aqui e assim que terminar estarei enviando...

window panel auto ajustavel

Enviado: 12 Mai 2015 13:25
por Toledo
Nascimento escreveu:vou montar um demo
Amigo, o demo eu monto pra você. O que eu queria mesmo era só o tamanho em pixel das fotos ( 10cm x15cm, 10x10 e 20x15) e também o tamanho do panel correspondente para cada foto.

Abraços,

window panel auto ajustavel

Enviado: 12 Mai 2015 16:36
por Nascimento
justamente ai é onde ta a confusão pelos exemplos da minigui e este link que esta aqui

https://pctoledo.org/forum/viewto ... =4&t=13627 eu crio um painel dando um efeito de quadro nele em torno de 3millimetros maior que a imagem , so que se eu digamos quizer trocar a imagem e ela for um pouco maior que a anterior ai foge dos padroes fica cortada , por isso estava procurando a possibilidade de em tempo real
o painel se auto ajustar dando a mesmo efeito borda na nova imagem sendo maior ou menor entendeu?

window panel auto ajustavel

Enviado: 12 Mai 2015 18:07
por Claudio Soto
Nascimento escreveu:justamente ai é onde ta a confusão pelos exemplos da minigui e este link que esta aqui

https://pctoledo.org/forum/viewto ... =4&t=13627 eu crio um painel dando um efeito de quadro nele em torno de 3millimetros maior que a imagem , so que se eu digamos quizer trocar a imagem e ela for um pouco maior que a anterior ai foge dos padroes fica cortada , por isso estava procurando a possibilidade de em tempo real
o painel se auto ajustar dando a mesmo efeito borda na nova imagem sendo maior ou menor entendeu?

Código: Selecionar todos

hBitmap  := BT_BitmapLoadFile ("imagen.jpg")   // BMP, JPG, GIF, TIF, PNG
nWidth   := BT_BitmapWidth (hBitmap)
nHeight  := BT_BitmapHeight (hBitmap)
BT_HMGSetImage ("Win_Panel", "Image_Panel", hBitmap, .T.)

x := ScreenToClientCol (Win_1.HANDLE, Win_Panel.Col)
y := ScreenToClientRow (Win_1.HANDLE, Win_Panel.Row)
MoveWindow (Win_Panel.HANDLE, x, y, nWidth + 5, nHeight + 5, .T.)

window panel auto ajustavel

Enviado: 12 Mai 2015 20:40
por Nascimento
Amigo claudio sotto

estou usando a minigui extended

tentei compilar seu exemplo deu o seguinte erro
Harbour 3.2.0dev (r1503111523)
Copyright (c) 1999-2015, http://harbour-project.org/
Compiling 'demo.prg'...
demo.prg(5) Error E0030 Syntax error "syntax error at 'SCROLLSTEP'"
demo.prg(83) Error E0030 Syntax error "syntax error at '.'"
demo.prg(92) Error E0030 Syntax error "syntax error at '.'"
3 errors