Sziasztok!
Készülő programomban van egy ScrollBox, azon pedig egy TImage kép (terepVaszon néven). Erre a TImage-re szeretnék még rajzolni rácsvonalakat, de úgy, hogy ne legyenek a TImage részei, mert később a rácsvonalak nélkül szeretném elmenteni és a rácsvonalak mutatása ki/bekapcsolható legyen.
Mindennek megvalósítására létrehozok még egy TImage-et (tvracskep néven), amelynek a ScrollBox a szülője, hogy azon helyezkedjen el, és a TImage vásznához hozzárendelek egy BitMap képet, amelyen a rácsok rajzolása megtörtént.
Ki is rajzolódik a rács, de mindig egy fekete háttéren, amit sehogy nem bírok eltüntetni, és így nem látszik az alatta levő kép.
Lehetséges egyáltalán egy képen rajzolni valamit úgy, hogy a rajzkép áttetsző legyen a nem használt részein? Ha igen, hogyan?
Itt a teljes kód, amit írtam:procedure TForm1.racsmutatoGombMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var bm: TBitmap;
vszvonalhely,fugvonalhely: word;
begin
if tvracsmutat=true then
begin
tvracsmutat:=false;
if vantvracs=true then
begin
FreeAndNil(tvracskep);
vantvracs:=false;
end;
end
else
begin
tvracsmutat:=true;
if vantvracs=false then
begin
tvracskep:=TImage.Create(tvScrBox);
tvracskep.Parent:=tvScrBox;
tvracskep.Left:=0;
tvracskep.Top:=0;
tvracskep.width:=terepVaszon.width;
tvracskep.height:=terepVaszon.Height;
tvracskep.Transparent:=true;
bm:=TBitmap.Create;
bm.width:=terepVaszon.width;
bm.height:=terepVaszon.Height;
bm.PixelFormat:=pf32Bit;
bm.Transparent:=true;
bm.Mask(clBlack);
fugvonalhely:=csempeszel;
vszvonalhely:=csempemag;
bm.canvas.pen.color:=clBlue;
while fugvonalhely<terepVaszon.width do
begin
bm.canvas.line(fugvonalhely,0,fugvonalhely,terepVaszon.height);
inc(fugvonalhely,csempeszel);
end;
while vszvonalhely<terepVaszon.height do
begin
bm.canvas.line(0,vszvonalhely,terepVaszon.width,vszvonalhely);
inc(vszvonalhely,csempemag);
end;
tvracskep.picture.graphic:=bm;
tvracskep.picture.graphic.transparent:=true;
FreeAndNil(bm);
end;
vantvracs:=true;
end;
end;
Delphi programozás - Szoftverfejlesztés fórum
hozzászólások
[RIOS ERROR]![](/dl/faces/m01.gif)
Tomi_78
(tag)
[RIOS ERROR]