Problem z canvasem

0

Mam taki problem chcę na canvasie umieścić obrazek typu jpg.
W sekcji uses dopisałem Jpeg, i dałem taką prockę.

procedure TMainForm.FormPaint(Sender: TObject);
var
Obrazek:TJpegImage;
begin
Obrazek:=TJpegImage.Create;
Obrazek.LoadFromFile('c:\D 2.jpg');
canvas.Draw(10,10,obrazek);
Obrazek.Free;
end;

Po skompilowaniu program się nie wywala,ale też nie wyświetla obrazu.
Co robię źle?

0

Sprawdź, czy plik istnieje, bo u mnie ten kod działa.

0

Plik istnieje na 1000% zmieniałem te pliki na różne inne, na bmp, wstawiałem je w inne miejsca i zmieniałem ścieżkę dostępu, i nic z tego.
Na komponencie image jest ok a na tym draństwie nie :-[ , już nie wiem co mam zrobić. Wiem że procka jest dobra, robiłem to wiele razy. Może coś dzieje się z Delphi? [glowa]

0

A spróbuj dać to pod Buttona. Może to coś nie tak z OnPaint? Sprawdź też, czy nie masz jakiejś zmiennej globalnej Canvas... (choć to mało prawdopodobne).

0

Pod buttonem ta procka zadziałała, ale dlaczego nie chce pod OnPaint?
[stuk]

0

Ponieważ OnPaint jest wykonywany wielokrotnie (za każdym razem gdy trzeba odświerzyć canvas). A kod :
[code] Obrazek:=TJpegImage.Create;
Obrazek.LoadFromFile('c:\D 2.jpg'); [/code]
nie może być wykonywany wielokrotnie (tzn, nie możesz kilka razy tworzyć tego samego obiektu)

rozwiązanie :
w FormCreate umieść :
[code]Obrazek:=TJpegImage.Create;
Obrazek.LoadFromFile('c:\D 2.jpg'); [/code]
w OnPaint :
[code] canvas.Draw(10,10,obrazek); [/code]
a w FormClose
[code]obrazek.free;[/code]

pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1