AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Image in den Zwischenspeicher
Thema durchsuchen
Ansicht
Themen-Optionen

Image in den Zwischenspeicher

Ein Thema von Hospi · begonnen am 17. Mär 2005 · letzter Beitrag vom 19. Mär 2005
Antwort Antwort
Seite 2 von 3     12 3      
Hospi

Registriert seit: 17. Mär 2005
21 Beiträge
 
Delphi 6 Personal
 
#11

Re: Image in den Zwischenspeicher

  Alt 18. Mär 2005, 08:55
Zitat:
direkt auf das Bitmap im Image
Wie ist das gemeint?
Sven H.
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#12

Re: Image in den Zwischenspeicher

  Alt 18. Mär 2005, 09:16
Hallo,

was spricht gegen diesen Code?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyFormat : Word;
  AData : THandle;
  APalette : HPalette;
begin
  Image1.Picture.SaveToClipBoardFormat(MyFormat,AData,APalette);
  ClipBoard.SetAsHandle(MyFormat,AData);
end;
ClipBrd in Uses nicht vergessen...
Catbytes
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#13

Re: Image in den Zwischenspeicher

  Alt 18. Mär 2005, 12:43
Zitat von Hospi:
Wie ist das gemeint?
Du erzeugst ein Bitmap, zeichnest drauf und packst es dann in das Image, hier ein Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fBmp: TBitmap; //wird zum Zeichnen genutzt
begin
  //Instanz anlegen
  fBmp := TBitmap.Create;
  try
    //Breite und Höhe der des Image anpassen
    fBmp.Width := Image1.Width;
    fBmp.Height := Image1.Height;
    //Pixelformat setzen
    fBmp.PixelFormat := pf32Bit;

    //hier kommen deine ganzen Zeichenfunktionen
    fBmp.Canvas.MoveTo(1, 1);
    fBmp.Canvas.LineTo(100, 100);
    //...

    //Bitmap ins Image kopieren
    Image1.Picture.Bitmap.Assign(fBmp);
  finally
    //Instanz wieder freigeben
    fBmp.Free;
  end;
end;
Nun kannst das Bitmap auch mit
Clipboard.Assign(Image1.Picture.Bitmap); in die Zwischenablage kopieren.
  Mit Zitat antworten Zitat
Hospi

Registriert seit: 17. Mär 2005
21 Beiträge
 
Delphi 6 Personal
 
#14

Re: Image in den Zwischenspeicher

  Alt 18. Mär 2005, 14:02
Zitat:
was spricht gegen diesen Code?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyFormat : Word;
  AData : THandle;
  APalette : HPalette;
begin
  Image1.Picture.SaveToClipBoardFormat(MyFormat,AData,APalette);
  ClipBoard.SetAsHandle(MyFormat,AData);
end;
Wie wird MyFormat, AData, APalette belegt?
Sven H.
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#15

Re: Image in den Zwischenspeicher

  Alt 18. Mär 2005, 14:10
Zitat von Hospi:
Wie wird MyFormat, AData, APalette belegt?
Warum nimmst du nicht die Methode, die ich beschrieben hatte. Um das Bitmap im Image wirst du sowieso nicht herumkommen, denn vom direkten Zeichnen auf das ImageCanvas ohne Bitmap kann ich nur abraten.
  Mit Zitat antworten Zitat
Hospi

Registriert seit: 17. Mär 2005
21 Beiträge
 
Delphi 6 Personal
 
#16

Re: Image in den Zwischenspeicher

  Alt 18. Mär 2005, 21:55
Zitat:
Du erzeugst ein Bitmap, zeichnest drauf und packst es dann in das Image, hier ein Beispiel:

Delphi-Quellcode:
 procedure TForm1.Button1Click(Sender: TObject);
var
  fBmp: TBitmap; //wird zum Zeichnen genutzt
begin
  //Instanz anlegen
  fBmp := TBitmap.Create;
  try
    //Breite und Höhe der des Image anpassen
    fBmp.Width := Image1.Width;
    fBmp.Height := Image1.Height;
    //Pixelformat setzen
    fBmp.PixelFormat := pf32Bit;

    //hier kommen deine ganzen Zeichenfunktionen
    fBmp.Canvas.MoveTo(1, 1);
    fBmp.Canvas.LineTo(100, 100);
    //...

    //Bitmap ins Image kopieren
    Image1.Picture.Bitmap.Assign(fBmp);
  finally
    //Instanz wieder freigeben
    fBmp.Free;
  end;
end;
Ähm ... joa.

Ich habe diese Procedure ausprobiert und es kommt immer noch der Access Violation Fehler.

Was muss denn noch zusätzlich eingefügt werden???? Die ClipBrd habe ich in Uses drin und Clipboard als vom Typ TClipboard deklariert (Als Globale Variable). Fehlt da noch was oder könnte es vieleicht an meiner Delphi-Version liegen (Version 6.00)?

Wenn ich den Quellcode von Catbytes ausprobiere:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyFormat : Word;
  AData : THandle;
  APalette : HPalette;
begin
  Image1.Picture.SaveToClipBoardFormat(MyFormat,AData,APalette);
  ClipBoard.SetAsHandle(MyFormat,AData);
end;
und ClipBoard.SetAsHandle(MyFormat,AData); weg lasse kommt kein Fehler (Das Bild wird natürlich auch nicht in den Zwischenspeicher geladen).
Folge: Entweder stimmt was nicht mit meinem Delphi nicht oder ich habe einfach etwas beim Einbinden/Deklaration vergessen.
Sven H.
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#17

Re: Image in den Zwischenspeicher

  Alt 18. Mär 2005, 22:07
Wo genau kommt der Fehler? Wenn das Bild im Image ist kannst du es doch einfach per
Clipboard.Assign(Image1.Picture.Bitmap); in die Zwischenablage packen.
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#18

Re: Image in den Zwischenspeicher

  Alt 18. Mär 2005, 22:47
Zitat von Hospi:
Clipboard als vom Typ TClipboard deklariert (Als Globale Variable).
Warum machst Du das? Clipboard ist schon von TClipboard abgeleitet.

Lade Dir mal das runter.

Das klappt bei mir einwandfrei...
Catbytes
  Mit Zitat antworten Zitat
Hospi

Registriert seit: 17. Mär 2005
21 Beiträge
 
Delphi 6 Personal
 
#19

Re: Image in den Zwischenspeicher

  Alt 19. Mär 2005, 14:12
Super, vielen Dank, es funktioniert! (Beide Varianten)
Mein Problem lag wahrscheinlich bei der Daklaration:
Delphi-Quellcode:
var
  Form1: TForm1;
  clipboard:Tclipboard;

implementation
                  
{$R *.dfm}
das wars also. ich gedachte, dass ich clipboard noch mal(so wie oben) daklarieren müsste.

Bis denn
Sven
Sven H.
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#20

Re: Image in den Zwischenspeicher

  Alt 19. Mär 2005, 16:16
Mal als Hinweis für spätere Codes. Deklarier die Variablen nicht gloabl, wie in deinem Beispiel, sondern in dem "private", bzw. "public" Abschnitt der Form.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz