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

[AJUDA] Criar imagem corel ao iniciar aplicativo


Rafael Pasc.

Pergunta

É o seguinte caros companheiros, to dando uma implementada em um programa aqui e to com uma dúvida em relação ao Delphi + Corel.

Eu tenho um botão abrir que funciona corretamente, e cria a minha imagem .cdr dentro do ole container do delphi.

Agora a minha dúvida é a seguinte. Ao abrir esse arquivo, o usuário salva a imagem .cdr em um banco de dados ( Salva o caminho dela ), e eu queria que ao abrir o programa, ele carregasse ( criasse ) no ole container a imagem .cdr já salva no banco.

Queria fazer mais ou menos assim:

IF ARTE_COREL.Text <> '' then

try

olecontainer.createfromfile(Filename,false); [ Essa linha está errada ]

except

end;

Eu precisaria de criar o objeto a partir do caminho salvo no DBEDIT(ARTE_COREL), mas eu só sei criar o arquivo quando eu mando abrir ele pelo botão mesmo ( Igual está na linha errada do código acima ). Alguém tem alguma sugestão ou solução?

Fico grato com qualquer tipo de ajuda!

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
Agora a minha dúvida é a seguinte. Ao abrir esse arquivo, o usuário salva a imagem .cdr em um banco de dados ( Salva o caminho dela ), e eu queria que ao abrir o programa, ele carregasse ( criasse ) no ole container a imagem .cdr já salva no banco.

Não me recordo qual a sintaxe para o Corel , mas o exemplo abaixo serve para o Paintbrush

voce usa a janela para procurar a figura e ela passa para o OleContainer .... onde esta escrito 'paint.picture' deve ser colocado a sintaxe para o Corel, mas não me recordo.

procedure TForm1.Button1Click(Sender: TObject);
begin
   OleContainer1.CreateObject('paint.picture', False);
   OleContainer1.AllowInPlace := True;
   OleContainer1.DoVerb(ovPrimary);

   if OpenPictureDialog1.Execute then
      begin
         Screen.Cursor := crHourGlass;
         try
            OleContainer1.CreateObjectFromFile(OpenPictureDialog1.FileName, false);
            OleContainer1.DoVerb(0);
            OleContainer1.Run;
         finally
            Screen.Cursor := crDefault;
         end;
      end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas, obrigado pela ajuda cara... Espero que você saiba minha próxima dúvida!

Amigos, eu descobri como faz aqui!

olecontainer.createfromfile(arte_corel.text,false); SIMPLES ASSIM!

Agora a minha dúvida é a seguinte... Estou mandando salvar o arquivo corel editado de dentro do aplicativo... ele até abre o diálogo pra salvar e tudo, mas parece que ele não exporta a imagem direito =\

To usando OLECONTAINER1.SAVETOFILE(FILENAME);

O que será?

Editado por Rafael Pasc.
Link para o comentário
Compartilhar em outros sites

  • 0
Agora a minha dúvida é a seguinte... Estou mandando salvar o arquivo corel editado de dentro do aplicativo... ele até abre o diálogo pra salvar e tudo, mas parece que ele não exporta a imagem direito =\

To usando OLECONTAINER1.SAVETOFILE(FILENAME);

exemplos:

OleContainer1.SaveToFile(SavePictureDialog1.FileName);

OleContainer1.SaveToFile (SaveDialog1.FileName);

OleContainer1.SaveToFile(TempDir+'\Temp File'+FileExtension);

OleContainer1.SaveToFile('c:\windows\desktop\fig.bmp');

exemplo completo:

http://www.marcocantu.com/code/md6htm/Olecont.htm

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Eu usei os exemplos pra salvar o objeto do olecontainer que você me passou. Até que funciona, mas na hora que eu mando abrir a imagem, ela está em branco! O procedimento que usei está logo abaixo:

procedure TCadastro01.SpeedButton9Click(Sender: TObject);

begin

with SaveDialog1 do

begin

if (Length(FileName) = 0) or (Sender = SaveAs1) then

begin

if Execute then

begin

OleContainer1.SaveToFile(FileName);

end

end

else

OleContainer1.SaveToFile(FileName);

end;

end;

Link para o comentário
Compartilhar em outros sites

  • 0
Eu usei os exemplos pra salvar o objeto do olecontainer que você me passou. Até que funciona, mas na hora que eu mando abrir a imagem, ela está em branco!

Experimento o SavePictureDialog1

procedure TCadastro01.SpeedButton9Click(Sender: TObject);
begin
with SavePictureDialog1 do
begin
  if (Length(FileName) = 0) or (Sender = SaveAs1) then
  begin
    if Execute then
      begin
         OleContainer1.SaveToFile(SavePictureDialog1.FileName);
      end
  end
else
   OleContainer1.SaveToFile(SavePictureDialog1.FileName);
end;

end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Eu usei os exemplos pra salvar o objeto do olecontainer que você me passou. Até que funciona, mas na hora que eu mando abrir a imagem, ela está em branco!

Experimento o SavePictureDialog1

procedure TCadastro01.SpeedButton9Click(Sender: TObject);
begin
with SavePictureDialog1 do
begin
  if (Length(FileName) = 0) or (Sender = SaveAs1) then
  begin
    if Execute then
      begin
         OleContainer1.SaveToFile(SavePictureDialog1.FileName);
      end
  end
else
   OleContainer1.SaveToFile(SavePictureDialog1.FileName);
end;

end;

abraço

Tentei fazer isto e não deu certo! Estou perdendo os cabelos já de tanto pensar! :wacko:

Quando eu clico duas vezes dentro do OleContainer, ele me exibe o ambiente de trabalho do Corel Draw X3 ( A distribuição que eu tenho aqui ). Mas eu não consigo salvar nem assim... A opção fica desativada :S

Link para o comentário
Compartilhar em outros sites

  • 0

Será que não tá faltando colocar nada na minha declaração de USES não? O Clipboard funciona perfeitamente... Consigo copiar e colar do delphi para o corel e vice-versa... Só não consigo mesmo salvar a imagem que está no delphi. Segue abaixo a minha declaração USES

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, Mask, DBCtrls, DB, DBTables, ExtCtrls,

Buttons, TabNotBk, FileCtrl, ColorGrd, ComCtrls, ExtDlgs, JPEG ,Clipbrd,

Menus, OleCtnrs;

Alguma luz?

Link para o comentário
Compartilhar em outros sites

  • 0
Será que não tá faltando colocar nada na minha declaração de USES não? O Clipboard funciona perfeitamente... Consigo copiar e colar do delphi para o corel e vice-versa... Só não consigo mesmo salvar a imagem que está no delphi.

Alguma luz?

Percebeu que voce mesmo encontrou a resposta na sua indagação ??

Clipboard funciona perfeitamente... Consigo copiar e colar do delphi para o corel e vice-versa

Para salvar a imagem que está no objeto Olecontainer, voce precisa passar a imagem do olecontainer para o clipboard, do clipboard para um TImage e deste salvar no disco ... e pode neste momento converter a imagem para Jpeg para ficar menor.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Será que não tá faltando colocar nada na minha declaração de USES não? O Clipboard funciona perfeitamente... Consigo copiar e colar do delphi para o corel e vice-versa... Só não consigo mesmo salvar a imagem que está no delphi.

Alguma luz?

Percebeu que voce mesmo encontrou a resposta na sua indagação ??

Clipboard funciona perfeitamente... Consigo copiar e colar do delphi para o corel e vice-versa

Para salvar a imagem que está no objeto Olecontainer, voce precisa passar a imagem do olecontainer para o clipboard, do clipboard para um TImage e deste salvar no disco ... e pode neste momento converter a imagem para Jpeg para ficar menor.

abraço

Muito obrigado pela luz! Não sei ainda se vai resolver porque eu tenho que salvar a imagem em .CDR mesmo. Assim que eu chegar em casa do serviço eu testo. Se der tudo certo eu posto aqui e a gente fecha o tópico como resolvido!

Mais uma vez Jhonas, Obrigado! Até!

Link para o comentário
Compartilhar em outros sites

  • 0

Estou tentando fazer assim:

procedure TCadastro01.SpeedButton9Click(Sender: TObject);

var imgcorelsalvar: timage;

begin

OleContainer1.Copy;

imgcorelsalvar:= TImage.Create(cadastro01);

imgcorelsalvar.Assign(Clipboard);

imgcorelsalvar.Picture.SaveToFile('d:\teste.cdr');

end;

Mas quando eu clico no speedbutton pra salvar, ele fala que eu não posso atribuir o conteúdo do clipboard para um TIMAGE. Já tentei com Tgraphic e com Tpicture e também não deu.

E Jhonas, eu realmente preciso salvar essa imagem em .cdr . Se você puder me dar mais uma ajudinha eu fico grato! Abraço!

Link para o comentário
Compartilhar em outros sites

  • 0
E Jhonas, eu realmente preciso salvar essa imagem em .cdr . Se você puder me dar mais uma ajudinha eu fico grato! Abraço!

Veja se esses link ajudam

http://www.djpate.freeserve.co.uk/AutoCDrw.htm

http://cad1.software.informer.com/download...lphi-coreldraw/

http://delphi.about.com/od/vclusing/a/tclipboard.htm

OBS: acho que não será tão facil achar uma solução....

com relação a esse comando:

OleContainer1.SaveToFile(SavePictureDialog1.FileName);

verifiquei que ele realmente salva o conteudo do olecontainer ( a imagem ), entretanto voce não consegue visualizar o arquivo salvo porque no novo arquivo é incluido um código ( no inicio ) que não consegui identificar qual a função... mas a imagem esta lá ... e o cabeçalho desse arquivo não é identificado como sendo uma figura ou imagem.

abraço

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...