przezrocztosc TMonthCalendar na TImage?

0

witam.
Jak zrobic aby TMonthCalendar nalozony na TImage był przezroczysty w sensie zeby bylo widac zdjecie w TImage pod liczbami miesiaca - TMonthCalendar.

dzieki za odp.
pozdro.

0

4 dni temu pytałeś o to samo. Jeśli nikt Ci nie odpowiedział, to pewnie znaczy, że nikt nie wiedział. Ew. mogłeś odwieżyć tamten temat albo go usunąć pisząc ten.

0

tak prawde mowiac to najlepiej by bylo jak bys napisal wlasny MonthCalendar.
ewentualnie poszukaj czegos w necie, cos powinienes znaleŹĆ.
jesli zadowoli cie takie prowizoryczne (i to bardzo) rozwiazanie to pokombinuj z czyms tego typu:

procedure TForm1.Button1Click(Sender: TObject);
var C:TCanvas;
    B:TBitmap;
    x,y:Integer;
    line    : PByteArray;
    lineBack: PByteArray;
begin
C:=TCanvas.Create;
C.Handle:=GetWindowDC(MonthCalendar1.Handle);

B:=TBitmap.Create;
B.Width:=MonthCalendar1.Width;
B.Height:=MonthCalendar1.Height;
B.Canvas.CopyRect(Rect(0,0,197,153),C, Rect(0,0,197,153));//Tu daj rozmiar MonthCalendar1
B.PixelFormat:=pf24Bit;

for y:=0 to B.Height-1 do
        begin
        Line:=B.ScanLine[y];
        LineBack:=Image1.Picture.Bitmap.ScanLine[y];
        x:=0;
                repeat
                If RGB(Line[x+2],Line[x+1],Line[x])=MonthCalendar1.CalColors.MonthBackColor then
                        begin
                        Line[x]:=LineBack[x];
                        Line[x+1]:=LineBack[x+1];
                        Line[x+2]:=LineBack[x+2];
                        end;
                x:=x+3;
                until x>(B.Width-1)*3;
        end;
C.Draw(0,0, B);
B.Free;
C.Free;
ZeroMemory(Line, SizeOf(Line));
ZeroMemory(LineBack, SizeOf(LineBack));
end;
0

dzieki
ale jest błąd...

podczas uruchamiania:

Project Project1.exe raised exception class EInvalidGraphicOperation with message 'Scan line index out of range'. Process stopped. Use Step or Run to continue.

i zaraz włacza sie projekt z errorkiem
"scan line index out of range"
i zdjecie z image wywaliło a projekt wlacza sie normalnie.
i lipa:/
pokombinuje...

0

chyba jest cos z rozmiarami obrazka albo MonthCalendar...
pozmieniaj tu i tam i powinno pomoc...

0

no wlasnie kminilem nad tym i nic to nie dało

B.Canvas.CopyRect(Rect(0,0,200,200),C, Rect(0,0,200,200));//Tu daj rozmiar
height i width ustawilem na 200 - Image i TMonthCalendar i nic.

(0,0,200,200) ?
x, y, height, width?

0

napisz jakie sa wymiary MonthCalendar i tego obrazka w Image1 i napisz na ktorej linii wywala blad...

0

cimak daj mi do siebie nr gadulca - zagadam.

a nie wywala bledu na kodziku tylko... jak sie juz wlacza program to wtedy jest zawiecha...
daj mi do siebie nr gadu najlepiej pogadamy jak bedziesz mial chwile.

a rozmiary podalem obudwu komponentow - image i tmonthcal - na 200 x 200
i obydwa są w pozycjach 0, 0

pozdrowionka
3m sie
moj gg: 7870745

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