Jump to content

Recommended Posts

Posted

olá

eu estou a fazer umaa aplicação q usa um winsock para fazer a ligaçao a um servidor e ate agora tenho feito as operações todas na form q inseri o winsock, mas agora tenho um coisa q ocupa muito espaço por isso queria fazer numa from a parte, mas usando a mesma winsock para manter a ligação sem cair. é possivel? como?

agora outra duvida...tenho uma text box q recebe o que o servidor vai enviando com resposta dos meus comandos, mas com é normal xega a um ponto q a caixa fica pequena pa tanto texto, entao queria q de forma automatica o scroll da text box estivesse sempre puxado para baixo. alguem tem um solução??

obrogado

sem mais

Mr_Jorge

Posted

Ora bem... imagina que tens o componente winsock na Form1 e queres a ceder ao coponente apartir da Form2. Fazes o seguinte

Form1.Winsock.....

Para a segunda questão podes fazer algo do tipo :

Dim temp As Integer
temp = Len(Text1.Text)
Text1.SelStart = temp
Text1.SetFocus

o comando Len() serve para contar o numero de caracteres que tens na text box e retorna um valor numerico

e a opção SelStart da TextBox serve para colocares o cursor na posição desejada

Posted

Pois eu esquecime de tirala. foi só para testar issu e não faz la falta.

A Propriedade SetFocus serve para selecionar o Objecto em causa, por exemplo

imagina que tens um botão e uma TextBox e tinhas o botão selecionado e querias que quando carrega-ses no botão a caixa de texto fica-se pronta a escreve ou seja ficava com aquela barrinha a piscar dentro dela.

cumps

Posted

agora surgiu-me outro problema, eu através de codigo desenho algumas linhas, porq eles tem q ser desenhadas apos alguns calculos. faço isto com o comando line (x1,y2)-(x2,y2) e a linha realmente é desenhada, mas quando minimizo e volto a abrir o programa as linhas desenhadas por codigo desaparecem(e as q tenho desenhada a mão, com o rato não).

a minha ideia é q a lina é desenha realmente mas depois é "esquecida" fica somente em cache e minimizando a cache é apagada, será isto?

tambem ante de verificar este problema, surgiu outra, como é q apago no decorrer do programa uma linha desenhada por codigo, se ela nem tem nenhuma identificação como as outras, tipo line#.

existem solução pa estes problemas??

Mr_Jorge

Posted

1ª parte acho esquesito isso,nunca trabalhei muito com essa parte mas se tens definido por codigo que qures uma linha do ponto x ao y devia-se manter,a unica hipotese que vejo para resolver isso é sempre que a aplicação detecta que voltou ao estado normal depois de ter sido minimizada voltares a chamar o codigo que desenhou as linhas supondo que tens esse codigo no botao command1 terias que fazer na tal parte que detecta que o form voltou a ser mostrado qq coisa como isto command1_click

2ª parte,pq nao usas o objecto line,consegues fazer o mesmo que fazes com esse comando com a vantagem de o conseguires por a invisivel a linha sempre que não quiseres que ela apareça

Posted

Boas

agora surgiu-me outro problema, eu através de codigo desenho algumas linhas, porq eles tem q ser desenhadas apos alguns calculos. faço isto com o comando line (x1,y2)-(x2,y2) e a linha realmente é desenhada, mas quando minimizo e volto a abrir o programa as linhas desenhadas por codigo desaparecem(e as q tenho desenhada a mão, com o rato não).

Para que a linha não desapareça quando minimizas a janela basta ires a propriedade AutoRedraw da PictureBox (penso que a Image não tem essa propriedade) e metes  essa propriedade a True.

tambem ante de verificar este problema, surgiu outra, como é q apago no decorrer do programa uma linha desenhada por codigo, se ela nem tem nenhuma identificação como as outras, tipo line#.

Uma ideia seria criares 4 arrays tipo "Px1()",  "Py1()" e "Px2()",  "Py2()" do tipo integer e cada vez que criacs uma nova linha guardavas os pontos dessa linha nos arrays. Uma recta como sabes tem 2 pontos e cada ponto desses tem as suas coordenadas X e Y dai esses 4 arrays para os dois pontos.

Em seguida para apagares uma linha desejada e e continuares a ter as outras podias fazer qualquer coisa deste tipo

dim NumeroLinhas as integer
Dim i as integer

for i = 0 to NumeroLinhas
      picture1.line (Px1(i), Py1(i)) - (Px2(i), Py2(i))
doevents
next i

Istu para escrever as linhas... para apagares uma linha :

picture1.cls

Px1(num) = 0
Px2(num) = 0
Py1(num) = 0
Py2(num) = 0

"picture1.cls" para limpar a picturebox

"num" é o numero da linha que queres apagar

E depois de meteres a a posição do array a zero voltas a executar o código acima para escrever as linhas

Só para terminar, deves optimizar o código porque fiz issu a pressa e foi apenas para teres uma ideia  :bounce:

cumps

Posted

li as sugestões e algumas são uteis

por exemplo os 4 arrays penso q poderiam ser substituidos por 1 com um type, eu ppa mim penso q fica mais facel depois pa fazer o codigo, mas é indiferente

agora em relação à linha desaparecer, eu nao queria usar picturebox, eu ja tive a ver e realmente o linha n desaparece, mas  n queria o rebordo da picturebox por isso é q n a queria usar, mas parece a unica alternativa. alguma ideia??

Mr_Jorge

Posted
por exemplo os 4 arrays penso q poderiam ser substituidos por 1 com um type, eu ppa mim penso q fica mais facel depois pa fazer o codigo, mas é indiferente

Por issu eu ter dito para aperfeiçuares o código 🙂

Para retirares o rebordo da PictureBox basta ires á propriedade Appearance e envez de 3D metes Flat e depois ela fica com uma linha preta em volta se a quiseres tirar vai a propriedade BorderStyle e e alteras para None

cumps

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.