Problem z TPanel

0

Jak zrobić przezroczystość dla komponentu TPanel i ewentualnie TNoteBook (i może TPageControl).

Mam kod z Torry.net (http://www.swissdelphicenter.ch/torry/showcode.php?id=982 {sorry ,ale w Operze url nie działa}) na formularz działa idealnie ,a jak tłumaczę to na panel to nic się nie dzieje lub tylko 1/4 jest ścięta ,a nie przezroczysta.

Bardzo pilnie potrzebuje odpowiedzi.(proszę tylko nie dawajcie komponentów) ;-(

//Mam Operę w wersji 7.21 PL i nie mogę wstawić url, dziwne nie?

0

podaj kod, moze wystarczy cos poprawic....
poza tym na forum mozna poszukac (moze znajdziesz panel)

PS. jak sprawdzasz czy jest przezroczysty? siwy panel na siwej formatce? :)

0

Mam kod z Torry.net (http://www.swissdelphicenter.ch/torry/showcode.php?id=982 {sorry ,ale w Operze url nie działa}) na formularz działa idealnie ,a jak tłumaczę to na panel to nic się nie dzieje lub tylko 1/4 jest ścięta ,a nie przezroczysta.

  1. To nie jest przezroczystosc panela, tylko ukrywanie regiony formy pozostawiajac widoczne komponenty i mi to elegancko dziala. Napisales problem z czyms, co nie ma nic wspolnego z tym kodem, odkryl bys to jakbys chociaz tam zajrzal.

tylko 1/4 jest ścięta ,a nie przezroczysta.

  • co to znaczy? :-8

Mam Operę w wersji 7.21 PL i nie mogę wstawić url, dziwne nie?

Tak dziwne, opera blokuje na klawiaturze ] [ i litery U R i L, tak?

PS. jak sprawdzasz czy jest przezroczysty? siwy panel na siwej formatce?

Patrzy, czy widac kropki :-D

0

//1. To nie jest przezroczystosc panela...

Region formularza jak i panela da się obciąć.

I ten kod z Torry po przetłumaczeniu na panel troszkę skaraja ale tego co nie potrzeba na panelu.

PS. Mam książkę Programowanie w Delphi 4.0 Andrzej Pasławski i na str. 398 jest o regionach jak stworzyć gwiazdę z formularz i da się to prztłumaczyć na panel i z panelu tworzy gwiazdę (I co?).

0

Może teraz zadam inne pytanie.

Czy kto kolwiek widział lub wie co to jest przezroczystość?

No to jak zrobić przezroczystość panelu lub ucinanie takiego regionu panelu co spowoduje,że będzie prześwitywał w tych miejscach gdzie nie ma żadnego komponentu.

0
procedure TForm1.MakeTransparent;
var
  AControl: TControl;
  A, Margin, X, Y, CtlX, CtlY: Integer;
begin
  with Panel1 do begin
    Margin    := (Width - ClientWidth) div 2;
    FullRgn   := CreateRectRgn(0, 0, Width, Height);
    X         := Margin;
    Y         := Height - ClientHeight - Margin;
    ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);
    CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF);
    for A := 0 to ControlCount - 1 do
    begin
      AControl := Controls[A];
      if (AControl is TWinControl) or (AControl is TGraphicControl) then with AControl do
        begin
          if Visible then
          begin
            CtlX   := X + Left;
            CtlY   := Y + Top;
            CtlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height);
            CombineRgn(FullRgn, FullRgn, CtlRgn, RGN_OR);
          end;
        end;
    end;
    SetWindowRgn(Handle, FullRgn, True);
  end;
end;

Robi z panela to samo co z forma.

PS bardzo trudno sie domyslec, poza tym nie mozesz po prsotu nie stawiac panela?

No to jak zrobić przezroczystość panelu lub ucinanie takiego regionu panelu co spowoduje,że będzie prześwitywał w tych miejscach gdzie nie ma żadnego komponentu.

OK zwracam honory, precyzyjnie zadane pytanie ;)

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