Avatar billede stone Forsker
29. november 2001 - 01:20 Der er 9 kommentarer og
1 løsning

cut and paste

når musen er over dbimage og højreklikker har jeg muligheden kopier,paste, cut, hvis jeg i paint shop pro kopier et billed eller i andre grafik programmer ,vil jeg gerne have at det bliver registreret i mit program så billedet kan pastes i dbimage.
Avatar billede easysoft_studios Nybegynder
29. november 2001 - 11:28 #1
prøv at tilføje Clipbrd til Uses-clause.

Med den kan du undersøge om der ligger noget på klippebordet, og indsætte det enten som tekst eller som objekt (billede).

Vender tilbage når jeg har fat i min Delphi. Jeg sidder med en Mac lige nu...
Avatar billede easysoft_studios Nybegynder
29. november 2001 - 12:02 #2
det virkede lidt mere kryptisk. der er en procedure der hedder PasteFromClipboard, men der skete ikke rigtig noget... :(
Men prøv at sætte indholdet fra klippebordet ind i en TStream, og så der efter loade det med LoadFromStream.

Lad mig lige spørge: er det meget vigtigt at det er et TDBImage du bruger? Jeg ville næsten tro at det er nemmere med et TImage... selvfølgelig ikke hvis det er bevidst til database.
Avatar billede dkn Nybegynder
29. november 2001 - 13:39 #3
uses
  ClipBrd;


procedure TForm1.Button1Click(Sender: TObject);
var
  Data: THandle;
  Palette: HPALETTE;
begin
  if Clipboard.HasFormat(CF_BITMAP) then
  begin
    Clipboard.Open;
    try
      Data := GetClipboardData(CF_BITMAP);
      Palette := GetClipboardData(CF_PALETTE);
      Image1.Picture.Bitmap.LoadFromClipboardFormat(CF_BITMAP, Data, Palette);
    finally
      Clipboard.Close;
    end;
  end;
  if Clipboard.HasFormat(CF_METAFILEPICT) then
  begin
    Clipboard.Open;
    try
      Data := GetClipboardData(CF_METAFILEPICT);
      Palette := GetClipboardData(CF_PALETTE);
      Image1.Picture.LoadFromClipboardFormat(CF_METAFILEPICT, Data, Palette);
    finally
      Clipboard.Close;
    end;
  end;
end;


Jeg går ud fra at det er nået nær det samme for en dbimage.

dkn
Avatar billede dkn Nybegynder
29. november 2001 - 13:47 #4
Ja jeg testede lige og det var det.

Så bare skriv:
dbimage.....

Istedet for:
Image1......

dkn
Avatar billede stone Forsker
29. november 2001 - 18:44 #5
det virker fint, men hvis jeg sletter billedet i
dbimage igen og prøver at paste billedet igen,
hænger mit program, med meddelsen unsuported graphic file, fordi billedet i clipboard bliver
slettet og prøver at paste \"ingenting\" til dbimage.
hvordan undgår jeg det?
Avatar billede dkn Nybegynder
29. november 2001 - 18:57 #6
hmm har du prøvet sådan her?:

  if Clipboard.HasFormat(CF_METAFILEPICT) then
  begin
    Clipboard.Open;
    try
      Data := GetClipboardData(CF_METAFILEPICT);
      Palette := GetClipboardData(CF_PALETTE);
      Image1.Picture.LoadFromClipboardFormat(CF_METAFILEPICT, Data, Palette);
      Image1.Picture.SaveToClipboardFormat(CF_METAFILEPICT, Data, Palette);//Gemmer den der igen efter vi har læst den
    finally
      Clipboard.Close;
    end;
  end;


dkn
Avatar billede stone Forsker
29. november 2001 - 20:01 #7
hmm får en compiler error:
\"Types of actual and Format var parameters must be identical\"
Avatar billede dkn Nybegynder
29. november 2001 - 20:10 #8
Ok nu virker det:


procedure TForm1.Button1Click(Sender: TObject);
var
  Data: THandle;
  Palette: HPALETTE;
  ImgType:word;
begin
  if Clipboard.HasFormat(CF_BITMAP) then
begin
  Clipboard.Open;
  try
    ImgType := CF_BITMAP;
    Data := GetClipboardData(ImgType);
    Palette := GetClipboardData(CF_PALETTE);
    Image1.Picture.Bitmap.LoadFromClipboardFormat(ImgType, Data, Palette);
    Image1.Picture.Bitmap.SaveToClipboardFormat(ImgType, Data, Palette);
  finally
  Clipboard.Close;
  end;
  end;

  if Clipboard.HasFormat(CF_METAFILEPICT) then
  begin
    Clipboard.Open;
    try
      ImgType := CF_METAFILEPICT;
      Data := GetClipboardData(ImgType);
      Palette := GetClipboardData(CF_PALETTE);
      Image1.Picture.LoadFromClipboardFormat(ImgType, Data, Palette);
      Image1.Picture.SaveToClipboardFormat(ImgType, Data, Palette);
    finally
      Clipboard.Close;
    end;
  end;
end;
Avatar billede stone Forsker
29. november 2001 - 21:00 #9
virker s...godt tak
Avatar billede dkn Nybegynder
29. november 2001 - 21:02 #10
det var så lidt :)
Første gang jeg prøvede det, så det tog jo et par forsøg at finde frem til det rigtige ;)


dkn
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester