zaznaczanie paneli... takim prostokacikiem...

zaznaczanie paneli... takim prostokacikiem...
cimak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1668
0

witam

chcialem sie poradzic, jak najlepej to zrobic...
mam cos bardzo podobnego (o ile nie identycznego ;] ) do tego: http://www.tomshardware.pl/video/20010730/images/premiere_timeline.gif
wszystko (klipy i linie montazowe itd...) jest zrobione na panelach.
no i teraz robie zaznaczanie paneli (klipow), takim prostokacikiem jak sa np w programach graficznych lub chociazby w Delphi.
i teraz tak:
najchetniej, na czas zaznaczania, umiescil bym nad wszystkimi liniami cos przezroczystego. potem w tym przezroczystym "czyms" w OnMouseDown i OnMouseMove dal bym, zeby ustawilo na tym odpowiednim "czyms" TShape, bez wypelnienia i z ramka psDot. ze sprawdzaniem ktore panele zstaly zaznaczone juz sobie potem bez problemu poradze. przy takim rozwiazaniu mial bym chyba najmniej roboty z rysowaniem ramki... rozwiazanie dziwne ale chyba najszybsze.
ale czego uzyc jako "tego czegos"? (musi byc przezroczyste, musi bys ponad panelami i byc rodzicem dla TShape)
i czy to nie zbyt lamerskie rozwiazanie? ;]
moze znacie jakies lepsze....?

LE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 144
0

to może panel z pakietu jedi? Wiem, że można ustawić transparent na true :]

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0

wg mnie najlepiej było by napisać coś na kształt komponentu (choć jak się uprzesz to może to nawet nie być klasa), czemu przekażesz canvasa i to coś się na tym canvasie narysuje. Czyli zamiast iluś tam paneli jeden PaintBox i rysowanie tego ręcznie. Może się wydawać to skąplikowane, ale jak napiszesz sobie raz klasę, która będzie tymi prostokącikami to potem będzie z górki

NE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

cimak, udało się tobie znaleźć taki komponent, pytam się bo też takiego szukam.

RedbaK
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Helsingør / FZ
  • Postów: 1051
0

O to lata mniej więcej?

Kopiuj
var
    rec:TShape;
begin
    rec:=TShape.Create(Panel1);
      rec.Parent:=Panel1;
        rec.Shape:=stRectangle;
          rec.Pen.Style:=psDot;
        rec.Pen.Color:=clRed;
      rec.Width:=Panel1.Width;
    rec.Height:=Panel1.Height;
  rec.Brush.Style:= bsClear;
end;

Tylko sobie tam przerób na swoje widzimisia, bo tu jest przykład na konkretnego panela.

cimak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1668
0

o kuźwa, wyslales mi wiadomosc i mialem odpisac i w koncu tego nie zrobilem, zapomnialem, przepraszam ;/
co do samego problemu to darowalem sobie panele i napisalem to zupelnie inaczej. i rysowalem wlasnie canvasem to zaznaczenie.

RedbaK
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Helsingør / FZ
  • Postów: 1051
0

A to trzeba od razu rysowac coś? Czcionki po kliku nie można zboldować lub powiększyć, aby się odróżniały paneliki? :P

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.