[RIOS ERROR] Delphi programozás - LOGOUT.hu Hozzászólások [RIOS ERROR]

Delphi programozás - Szoftverfejlesztés fórum

üzenetek

[RIOS ERROR] [RIOS ERROR]

hozzászólások

[RIOS ERROR]

Tomi_78
(tag)
[RIOS ERROR]

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;

üzenetek

[RIOS ERROR] [RIOS ERROR] [RIOS ERROR] [RIOS ERROR] [RIOS ERROR]