Problem z onResize i TImage

0

Mam problem
Tworze dynamicznie TImage i chce zeby on mial rozmir formy
Width:=ClientWidth itd...
ale jak zrobie np maksymalizacje to rozmiar TImage sie nie zmienia a jak w onResize pruboje go zmienic to wywala jakis blad Access V.... Jak zrobic zeby komponent TImage mial caly czas rozmiar formy czy to maksymalizacja czy jak zmienie rozmiar normalnie myszka przeciagajac ?
Bede wdzieczny za pomoc

0
Align:= alClient; // tak nie może być?
0

Nie no moze byc ale w dalszym ciaga to co narysuje Canvas widac tylko na TImage o rozmiarach pocztakowych... jak zmienie rozmiar okna to nie widac tego co narysowalem . Dlaczego tak jest ? Jak to obejsc ??

0

Rysujesz po Canvasie TImage'a? A sprawdzałeś co będzie jak narysujesz na Canvasie Image.Picture.Bitmap.Canvas?

0

No niestety jest ciagle to samo. Mam pod tym TImage pewnie zdarzenia i one dzialaja na calej formie bo faktycznie alclient dziala ale to co narysuje widac tylko na TImage o pierwotnych rozmiarach. Czy rysuje po TImage czy Picture.Bitmap jest tak samo. Qrcze jak to obejsc ?

0

Pokaz kod odpowiedzialny za rysowanie

0

procedure TMainForm.DrawShape(TopLeft, BottomRight: TPoint; AMode: TPenMode);
begin
with TImage(ActiveMDIChild.FindComponent('siatka')) do
begin
Picture.Bitmap.Canvas.Pen.Mode := AMode;
Picture.Bitmap.Canvas.MoveTo(TopLeft.X, TopLeft.Y);
Picture.Bitmap.Canvas.LineTo(BottomRight.X, BottomRight.Y);
end;
end;

cos takiego cos tu jest zle ?

0

Stwórz lepiej jakąś TBitmap, narysuj na niej, skopuj zawartość do TImage, zwolnij TBitmap.

0

Nie rysuj po TImage, tylko po formatce w onpaint.

0
[d]arek napisał(a)

Mam problem
Tworze dynamicznie TImage i chce zeby on mial rozmir formy
Width:=ClientWidth itd...
ale jak zrobie np maksymalizacje to rozmiar TImage sie nie zmienia a jak w onResize pruboje go zmienic to wywala jakis blad Access V.... Jak zrobic zeby komponent TImage mial caly czas rozmiar formy czy to maksymalizacja czy jak zmienie rozmiar normalnie myszka przeciagajac ?
Bede wdzieczny za pomoc

Moim zdaniem błąd jest dlatego, że nigdzie nie zrobiłeś tej procedury(komponent jest dynamiczny), a więc coś takiego:

W sekcji interface:

procedure mojImageResize(//tutaj lista argumentów taka sama jak w onResize Imega)

A potem przy tworzeniu imagea:

mojImage.onResize:=mojImageResize;

A procedura mojImageResize może wyglądać np. tak:

width:=ClientWidth i.t.d.</delphi>

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