Autor Beitrag
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Fr 01.11.02 16:59 
Eigentlich ist das keine Grafikfrage, aber ich frag dennoch mal hier.

Also ich muß irgendwann bei Assign nicht richtig aufgepasst haben. Eigentlich dachte ich, daß das Funktioniert:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  Bmp1, Bmp2: TBitmap;
begin
  Bmp1 := TBitmap.Create;
  Bmp2 := TBitmap.Create;
  try
    Bmp1.LoadFromFile('d:\EinBild.bmp');
    Bmp2.Width  := 200;
    Bmp2.Height := 200;
    Bmp2.Canvas.StretchDraw(Rect(0, 0, Bmp2.Width, Bmp2.Height), Bmp1);
    Bmp1.Assign(Bmp2);
    Form1.Canvas.Draw(0, 0, Bmp1);
  finally Bmp2.Free; Bmp1.Free end;
end;


wichtig ist dieser Part

ausblenden Quelltext
1:
2:
    Bmp1.Assign(Bmp2);
    Form1.Canvas.Draw(0, 0, Bmp1);


Gezeichnet wird hier eine Bitmap die die Größe 200x200 hat, allerdings nicht gestretcht ist. Es ist ein Ausschnit die großen Grafik.

Mache ich das so

ausblenden Quelltext
1:
    Form1.Canvas.Draw(0, 0, Bmp2);					


dann ist die Grafik gestrecht. Der Fehler liegt also in

ausblenden Quelltext
1:
    Bmp1.Assign(Bmp2);					


Es werden hier nur die Masse übertragen, aber nicht das Bild.

Eigentlich hab ich bis jetzt immer gedacht, daß Assign solche Kleinigkeiten überträt. Sonderbar ist, daß ich das schon immer so gemacht habe. Jetzt kann ich immer wieder eine neues Projekt anlegen und es geht immer noch nicht. Rechner neu starten bringt auch nichts. Alte Projekte geöffnet und gestartet - keine Probleme. Code angeguckt - ist fast das gleiche wie hier. Kaum Unterschiede.

Hab ich also irgendwann nicht richtig bei Assign aufgepasst? Oder enthällt der Code einen Fehler den ich nicht sehe.

Ich hab den Code irgendwann so abgeändert

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  Bmp1, Bmp2: TBitmap;
begin
  Bmp1 := TBitmap.Create;
  Bmp2 := TBitmap.Create;
  try
    Bmp1.LoadFromFile('d:\joanne017b.bmp');
    Bmp2.Assign(Bmp1);
    Bmp1.Width  := 200;
    Bmp1.Height := 200;
    Bmp1.Canvas.StretchDraw(Rect(0, 0, Bmp1.Width, Bmp1.Height), Bmp2);
    Form1.Canvas.Draw(0, 0, Bmp1);
  finally Bmp2.Free; Bmp1.Free end;
end;


Es funktioniert. Also irgendwie ist mir das zu hoch.
fcg
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 360

WinXP
D3 Prof, D6 Pers
BeitragVerfasst: Fr 01.11.02 17:17 
wunderbar :D

_________________
.: Wer für alles offen ist, kann nicht ganz dicht sein! :.
Raphael82
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Sa 02.11.02 11:20 
Das brauch dir doch gar ned zu hoch sein, beim ersten Code hast du versucht änderungen an an etwas vorzunehmen was so noch nicht zur Verfügung stand. Denk dir, du hättest anstelle von Bitmaps Dateien, dann kannst du dir vorstellen, warum es so ned geht..

MfG, Raphael

_________________
Share your knowledge to receive perfection!
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 02.11.02 17:52 
@fcg

fcg hat folgendes geschrieben:
wunderbar :D


Das freut mich wenn es dich freut.

@Raphael82


Raphael82 hat folgendes geschrieben:
...dann kannst du dir vorstellen, warum es so ned geht..


Wenn ich gut im raten wäre, dann würde ich bei "Wer wird Millionär" mitspielen.

Ich danke euch. Eine weitere Antwort interresiert mich nicht, da ich das Problem längst anders gelöst habe. War sowieso nur interessenshalber.
Raphael82
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: So 03.11.02 12:49 
Popov hat folgendes geschrieben:

Wenn ich gut im raten wäre, dann würde ich bei "Wer wird Millionär" mitspielen.


Ähm, zwischen nachdenken und der kognitiven Lösung und raten liegt ein grosser Wissens- und Logikunterschied!

Raphael :?

_________________
Share your knowledge to receive perfection!