none
Dificuldade com Lógica

    Question

  • Bom dia a todos, bom pessoal, estou com um problema que não consigo achar a logica perfeita para resolve-lo..estou usando C#

    vou explicar e pra vcs

    estou mexendo com imagem mais não estou gravando elas no banco, eu crio um ID pra cara uma e coloco elas em um diretorio no micro com o nome do ID, então eu gravo a  foto numero 1 e no diretorio tem a imagem com o nome 1 até ai tudo bem,  eu tenho 48 picturebox para colocar as imagens, conforme eu vou adicionando as imagens, elas vão trocando de posição, por ex: adiciono a primeira imagem ela fica no primeiro picturebox, quando adiciono a segunda imagem ela entra no lugar da primeira e a primeira vai para o segundo picturebox, correto?? até ai eu consigo fazer  funcionar numa boa, o problema é quando vou exibir elas no formulario, eu saiu da tela e quando volto preciso preencher a janela com as informações gravadas e as imagens, mais preciso que as imagens fique na mesma posição que estavam..essa é a primeira duvida, a segunda é mais complicada, como eu vou excluir as imagens?? como faço pra saber qual é o ID da imagem que estou querendo apagar??? e quando eu apagar por ex a terceira imagem, a quarta entrar no lugar da terceira, a quinta no lugar da quarta e assim por diante??

    então resumindo as duvidas são:

    - como fazer para a exibir as imagens na mesma ordem que foram salvas??

    - como saber o ID da imagem que estou apagando para apagar do banco e do diretorio??

    - e como depois que eu deletar a imagem, fazer o reposicionamento??

    estou sem idéia de como fazer isso, se puderem me ajudar eu agradeço desde já, valeu galera.

    Friday, February 22, 2008 12:36 PM

Answers

  • Salve a ordem em na tabela, talvez a data e hora no banco poderá ordenar pela data ou até pelo ID se for sequêncial

     

    vc não poderia listar do banco, dessa forma teria o ID.

    Friday, February 22, 2008 1:36 PM
  •  Quando inserir uma imagem coloke nela, no começo ou no final um número identificador tipo 1, depois quando inserir outra imagem busque no diretório o maior número identificador e acrescente +1.

     Crie uma função que preencha as pictureBoxes de acordo com esse identificador em ordem decrescente. Use esse método após a deleção de uma imagem.

     

     

    Friday, February 22, 2008 3:47 PM
  •  

    No método de preencher as PictureBox vc pode criar pra cada PictureBox um controle (tipo um botão) com o msm ID da imagem. Ai a esse controle vc adiciona um evento, tipo assim:,

     

    Isso dentro do looping pra preencher as picturesBoxes:

    btn = New ImageButton

    btn.ID = ## ID da imagen  ##

    AddHandler btn.Click, AddressOf Me.btnRemove_Click

     

    E esse método para deletar:

     

    Protected Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs)

    Dim btn As New ImageButton

    btn = sender

    ## Função q deleta a imagem com o id igual ao  btn.ID ##

    End Sub

    Friday, February 22, 2008 4:03 PM

All replies

  • Salve a ordem em na tabela, talvez a data e hora no banco poderá ordenar pela data ou até pelo ID se for sequêncial

     

    vc não poderia listar do banco, dessa forma teria o ID.

    Friday, February 22, 2008 1:36 PM
  • Valeu pela ajuda macul, isso eu já estou fazendo, o problema é com o posicionamento, como faço para mostrar as imagens na ordem que foram cadastradas, e após eu excluir uma imagem lá do meio, fazer o reposicionamento, o problema que estou tendo é de logica mesmo.
    Friday, February 22, 2008 3:22 PM
  •  Quando inserir uma imagem coloke nela, no começo ou no final um número identificador tipo 1, depois quando inserir outra imagem busque no diretório o maior número identificador e acrescente +1.

     Crie uma função que preencha as pictureBoxes de acordo com esse identificador em ordem decrescente. Use esse método após a deleção de uma imagem.

     

     

    Friday, February 22, 2008 3:47 PM
  • Carrijo, valeu, esse identificador pode ser meu proprio ID né??
    vc tem uma idéia de como eu faço pra saber que a imagem que estou excluindo é por ex: a imgem 10?
    Friday, February 22, 2008 3:52 PM
  •  

    No método de preencher as PictureBox vc pode criar pra cada PictureBox um controle (tipo um botão) com o msm ID da imagem. Ai a esse controle vc adiciona um evento, tipo assim:,

     

    Isso dentro do looping pra preencher as picturesBoxes:

    btn = New ImageButton

    btn.ID = ## ID da imagen  ##

    AddHandler btn.Click, AddressOf Me.btnRemove_Click

     

    E esse método para deletar:

     

    Protected Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs)

    Dim btn As New ImageButton

    btn = sender

    ## Função q deleta a imagem com o id igual ao  btn.ID ##

    End Sub

    Friday, February 22, 2008 4:03 PM
  • Oi Carrijo, obrigado novamente, vc está dando boas idéias, gostaria de esclarecer outra coisa, para cada picture eu tenho um botão abaixo dela para excluir, então eu posso colocar o valor da picture igual para o valor do botão né? assim eu sei de qual imagem estou tratando, correto?
    Friday, February 22, 2008 4:42 PM
  • Oi pessoal, ainda não consigo pensar em como fazer o reposicionamento das imagens nas picturebox conforme a inclusão.

    preciso que a ultima adicionada fique sempre por primeiro, e as outras vão trocando de possição. por ex:

    picturebox1 = Imagem3;
    picturebox2 = Imagem2;
    picturebox3 = Imagem1;

    agora eu vou adicionar outra foto e preciso que fique assim:

    picturebox1 = Imagem4;
    picturebox2 = Imagem3;
    picturebox3 = Imagem2;
    picturebox4 = Imagem1;

    agora vou excluir uma foto e preciso que fique assim:
    vou excluir a IMAGEM3

    picturebox1 = Imagem4;
    picturebox2 = Imagem2;
    picturebox3 = Imagem1;

    não consigo montar uma logica de programação para fazer isso, alguem pode ajudar?? não precisa passar nenhum código, preciso apenas da logica.
    Friday, February 22, 2008 5:19 PM
  •  

    Como vc fez ?

    Se fez um array nos objetos iria inserir o objeto novo em cima.

     

    Se vc adcionou os 48 de uma vez faça de baixo para cima alterando a propriedade "visible"

    Friday, February 22, 2008 6:00 PM
  • Olá pessoal, consegui fazer o que precisava, segui as dicas de vcs, mto obrigado por ajudarem.
    Friday, February 22, 2008 7:01 PM
  • Adriano,

     

    Peço que marque somente os post como útil caso o mesmo "faça" parte da solução do problema. Nessa thread "todos" os posts estavam marcadas como útil.

     

    Obrigado.

    Wednesday, February 27, 2008 2:51 AM