![]() |
Re: image
ok hier ist der code
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,GR32, GR32_Image; type TForm1 = class(TForm) Button1: TButton; Image321: TImage32; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation procedure PaintCover(DestBitmap:TBitmap32;x,y,width,height:integer;perspectiv:single;angle:integer;picture:TBitmap32); var lo,lu,ro,ru:TPoint; mo,mu:extended; i,j:integer; dummy:integer; begin //vier Eckpunkte des Covers berechnen: lo.x:=x; lo.Y:=y; lu.X:=x; lu.Y:=y+height; ru.x:=round(lu.x+width*cos(abs(angle)/360*2*Pi)); ru.y:=round(lu.y-perspectiv*height/2*sin(abs(angle)/360*2*Pi)); ro.X:=ru.x; ro.Y:=round(ru.y-height+perspectiv*height*sin(abs(angle)/360*2*Pi)); if angle<0 then begin dummy:=ro.y; ro.y:=lo.y; lo.y:=dummy; dummy:=ru.y; ru.y:=lu.y; lu.y:=dummy; dummy:=(width-(ro.x-lo.x)); lo.x:=lo.x+dummy; lu.x:=lu.X+dummy; ro.x:=ro.X+dummy; ru.x:=ru.x+dummy; end; //Steigung der oberen und unteren Kante berechnen: mo:=-(ro.Y-lo.Y)/(ro.x-lo.X); mu:=-(ru.Y-lu.Y)/(ru.x-lu.x); //bild zeichnen: DestBitmap.BeginUpdate; DestBitmap.Clear(clblack); for i:=0 to (ro.X-lo.x) do for j:=round(-i*mo) to round((lu.Y-lo.y)+i*mo) do DestBitmap.Pixel[lo.X+i,lo.Y+j]:=round(picture.Pixels[round(picture.Width/(ro.x-lo.X)*i),round(picture.Height/((lu.Y-lo.y)+2*i*mo)*(j+i*mo))]); //Rechteck zeichnen: with DestBitmap do begin pencolor:=clsilver; moveto(lo.x,lo.y); linetos(lu.x,lu.y); linetos(ru.x,ru.y); linetos(ro.x,ro.y); linetos(lo.x,lo.y); end; DestBitmap.EndUpdate; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var aBmp32:TBitmap32; begin aBmp32:=TBitmap32.create; //erstmal das Objekt erstellen aBmp32.loadfromfile('cover.bmp'); PaintCover(Image321.Bitmap,0,0,50,50,0.5,30,aBmp32) end; end. |
Re: image
Sry, hab noch vergessen, das Bitmap in Image321 zu erstellen.
Ersetz den Code von Button1Click mal bitte durch diesen hier:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var aBmp32:TBitmap32; begin aBmp32:=TBitmap32.create; //erstmal das Objekt erstellen aBmp32.loadfromfile('c:\Test.bmp'); Image321.Bitmap:=tbitmap32.create; Image321.Bitmap.Width:=image321.clientWidth; Image321.bitmap.height:=image321.clientheight; PaintCover(Image321.Bitmap,1,1,150,150,0.5,30,aBmp32) end; |
Re: image
Liste der Anhänge anzeigen (Anzahl: 1)
juhu es klappt doch beim zweiten start passierte dies hier
(problem hab ich sau oft) |
Re: image
Dann wird das Programm noch im Hintergrund laufen und du möchtest neu kompilieren, da das Programm aber noch läuft, kann die exe-Datei nicht überschrieben werden.
|
Re: image
es läuft aber nidd mehr
|
Re: image
Da kommt aber doch normalerweise "Quellcode wurde geändert. Neu kompilieren?" oder so ähnlich :gruebel:
[edit] @LEE1: Hast Du es mal mit "Projekt erzeugen" versucht? [/edit] |
Re: image
ja geht aber auch nidd hab delphi mal geschlossen un 3 min gewartet geht ava immer noch nidd
|
Re: image
Zitat:
Also bei mir zeigt er den Fehler an, wenn ich z.B. das Verzeichnis, in welchem das Programm kompiliert habe, im Netzwerk freigegeben habe und die exe auf einem Netzwerkrechner noch läuft. Dann hat Delphi quasi keine Schreib bzw. Löschrechte für die alte echse... |
Re: image
...nicht immer. Nur wenn das Programm am Breakpoint angehalten wurde und der Quellcode verändert ist kommt diese Meldung.
Beim normalen "Neucompilieren" weigert sich Delphi die laufende Exe zu überschreiben (logisch) :zwinker: upps... Bezug auf "Quellcode wurde geändert. Neu kompilieren?" |
Re: image
Schreibrechte hast Du in den entsprechenden Verzeichnissen (Ausgabe- und Source-Verzeichnis)? Geht es als Admin?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz