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
Align:= alClient; // tak nie może być?
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 ??
Rysujesz po Canvasie TImage'a? A sprawdzałeś co będzie jak narysujesz na Canvasie Image.Picture.Bitmap.Canvas?
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 ?
Pokaz kod odpowiedzialny za rysowanie
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 ?
Stwórz lepiej jakąś TBitmap, narysuj na niej, skopuj zawartość do TImage, zwolnij TBitmap.
Nie rysuj po TImage, tylko po formatce w onpaint.
[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>