HTML i balonik z XP

0

Poszukuję gotowego komponentu lub osób, które podpowiedzą jak zrobić zaawansowany tzw.: BalloonHint.

Ma on mieć podobną funkcjonalność jak ten na zdjęciu, czyli:

  • możliwość wyświetlenia własnych kilku ikon
  • obsługiwać odnośniki html lub je symulować

user image

Jeśli ktoś ma gotowy komponent i chciałby za skorzystanie otrzymać finansową gratyfikację... jestem zainteresowany.

0

jet tu artykuł o zabawach z formą, według tego co tam masz wykrajasz fajny kształt formy, dodajesz ładne przyciski ( najprościej to w sumie TImage z przeźroczystością i oprogramowanym klikiem )

potem układasz na formę inne cusie

możesz też zapisać tą formę tak by potem dodawać ją do projektu identycznie jak okienko About

( chodzi o to ze forma w programie dziedziczy z przygotowanej wcześniej formy )

0

Na razie dobrze mi idzie :)

Zostało mi rozwiązanie "odnośników", a więc w dynamicznie stworzonych TLabel zasymulować hiperłącze.

Jak odnieść się do wartości OnClick takich komponentów ?

0

poszukaj sobie na torry.net komponentów alcinoe, tam masz taki komponent hintbaloon

0

Tak samo na torry.net znajdziesz specjalne Labels, które wyglądają jak hiperłącza i nawet mają taką funkcję z ShellExecute :)

0
Wuem napisał(a)

poszukaj sobie na torry.net komponentów alcinoe, tam masz taki komponent hintbaloon

Niestety nie widzę tego komponentu:
http://www.torry.net/quicksearchd.php?String=alcinoe&Exact=Yes&Title=Yes

A strona domowa producenta jest o jakichś domach...

pigmejek napisał(a)

Tak samo na torry.net znajdziesz specjalne Labels, które wyglądają jak hiperłącza i nawet mają taką funkcję z ShellExecute :)

To jest myśl. Dzięki :)

// ok, znalazłem ten komponent:
http://www.torry.net/vcl/misceff/hints/Alcinoe_cmp_3_52_8.zip

okazało się, że to ten sam co sprawdzałem... nie ma w nim głównego pliku PAS :/

0

Ale w czym problem z labelami? Proponuję zrobić sobie listę z dostępnymi opcjami (etykieta, cel łącza, kolor nienajechanego, kolor najechanego, może ikona, itp), a w polu Tag kolejnych labeli zapisać pozycję danej opcji w liście.

Na najechanie kursorem zmieniasz styl na taki, jaki zgodnie z listą jest kolor najechanego; na zjechanie kursorem na zgodny z kolorem nienajechanego.. i tyle. Zwykły label, albo jeszcze lepiej rysowanie po layeredwindow bez żadnych komponentów - będzie szybsze i mniej pamięciożerne.

0

Dzięki, po troszku jestem coraz bliżej zamierzonego efektu.

user image

Brakuje tylko wywołania po kliknięciu na tekst (na niebiesko podkreślony).
Mając zdarzenie: OnClick := OnMouseClick;

with TLabel.Create(Self) do
       begin
        Parent      := Self;
        ParentColor := True;
        ParentFont  := True;
        AutoSize    := True;
        Font.Style  := [fsUnderline];
        Font.Color  := $00FF8B17;
        Left    := 38 + 40;
        Top     := 40 + i * 20;
        Caption := BalonTekst[i].Tresc;
        Name    := 'Lab_Tresc' + IntToStr(i);
        Visible := True;
       
        OnClick := OnMouseClick;
       end;

...nie wiem jak dołączyć procedurę wykonującą zdarzenie przypisane do dynamicznego TLabel, który otrzymał znaną mi właściwość Name.

Jak to przypisać ?

0

W onmouseclick masz coś takiego jak sender - powinno być sender.name

0
Misiekd napisał(a)

sender.name

Zwróci undefinied. Trzeba użyć jednego z tych:

(Sender as TLabel).Name
TLabel(Sender).Name
0
mnbvcX napisał(a)
(Sender as TLabel).Name
TLabel(Sender).Name

Czasami najlepiej w połączeniu:

if  (Sender is TLabel) then
  TLabel(Sender).Name...
0

Tak w ogóle - lepiej napisać własne THtmlLabel, zajmuje pięć minut ;]

0
mnbvcX napisał(a)
TLabel(Sender).Name

Ten sposób jest dobry. Przy:

(Sender as TLabel).Name

występuje błąd z odwołaniem.

Dziękuję Wszystkim za odpowiedzi i pomoc.
Pozdrawiam

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