Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Gravar figura


Alessandra (Jundiai)

Pergunta

Eu preciso fazer uma rotina que, ao usuario clicar em um botão, abrirá uma opção para ele selecionar uma figura. Quando o usuario escolher a figura, o sistema terá que copiar essa figura para um outro diretório fixo, como c:\figuras, e deverá abrir um inputbox para o usuario digitar o nome da figura. Essa figura terá como nome o campo codigo do meu cadastro mais um nome que o usuario digitar.

ex. 00012009PARAFUSO

Estou utilizando o componente OpenPictureDialog1.

Alguém saberia me informar, como posso fazer para ao selecionar uma figura, o sistema faça uma copia da mesma em outro diretório com um nome determinado ??

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Muito obrigado, funcionou certinho.

Mas agora tenho uma outra duvida .....

O usuario grava quantas figuras ele quiser, sempre está gravando o codigo + um nome que ele digita, tudo bem.

Agora, eu estou fazendo um relatório, onde o sistema pegue o numero do pedido que está sendo impresso e va até esse diretório e traga o nome de todos os desenhos em que os cinco primeiros digitos e o numero desse pedido e apareça em um qrmemo.

Eu sei que tem que fazer um while (enquanto o arquivo tiver cinco primeiros digitos = o numero do pedido), e dentro do while coloca que o qrmemo.lines.add vai receber o nome do desenho.

Mas a minha duvida é : como vou fazer esse while, como vou pegar o nome de um arquivo dentro de um diretorio, porque se estivesse em uma tabela, era só fazer um while enquanto não for fim de arquivo. E assim, com arquivos em um diretório. Alguém pode me ajudar ?????????????

Link para o comentário
Compartilhar em outros sites

  • 0

então...

da uma olhada neste post, utilize a funcao EnumFiles

http://scriptbrasil.com.br/forum/index.php...st&p=426589

Então no seu caso seria exemplo

var
  sl: TStringList;
  i: Integer;
begin
  sl := TStringList.Create;
  
  EnumFiles('CAMINHO DAS FIGURAS', '*.bmp', faanyfile - faDirectory, sl, False, False);
  
  //aqui o while ou o loop pegando sl[i] exemplo

  for i := 0 to sl.Count -1 do
  if Copy(LowerCase(sl[i]), 1, 4) = 'abcd' then
  qrmemo.lines.add(sl[i]);

 FreeandNil(sl);
end;

troque o .bmp pela extensao das imagens, se forem varias voce utiliza um EnumFile para cada extensão não dando um bClear para True senão ele apaga as que já foram pegas...

Se quiser adicionar o caminho junto, coloque o bIncludePath para True

abrax

Editado por Churc
Link para o comentário
Compartilhar em outros sites

  • 0

eee Alessandra, você nem viu o post que passei rs

Lá tinha o EnumFiles :)

procedure EnumFiles(szPath, szAllowedExt: String; iAttributes: Integer;
  Buffer: TStrings; bClear, bIncludePath: Boolean); StdCall;
var
  res: TSearchRec;
  szBuff: String;
begin
  if (bClear) then Buffer.Clear;
  szPath := IncludeTrailingBackslash(szPath);
  if (FindFirst(szPath + szAllowedExt, iAttributes, res) = 0) then
  begin
    repeat
      szBuff := res.Name;
      if ((szBuff <> '.') and (szBuff <> '..')) then
      if (bIncludePath) then
      Buffer.Add(szPath + szBuff) else
      Buffer.Add(szBuff);
    until FindNext(res) <> 0;
    FindClose(res);
  end;
end;

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui colocar a figura no relatório, então estou postando aqui.

var

sl: TStringList;

i: Integer;

caminho, cliente : string;

begin

caminho := ExtractFilePath(Application.ExeName) + 'Figura\'; //variavel que guarda o caminho das figuras

cliente := copy(qclientecodigo.asstring,1,5)

s := TStringList.Create;

EnumFiles(caminho, '*.jpg', faanyfile - faDirectory, s, False, False);

for i := 0 to s.Count -1 do

if Copy(s, 1, 5) = cliente then

QRImage.Picture.LoadFromFile(caminho + s);

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...