Witam
Pracuję nad komponentem, który pozwoli dodać do swojego programu tzw.: samouczka.
Polega to na tym, iż przy konkretnej kontrolce, np.: przycisku, pojawia się balonik z treścią pomocy.
Opracowałem to w tej chwili, że balon pojawia się zawsze nad przyciskiem.
Problem w tym, że jeśli okno znajduje się na pełnym ekranie, to balon wyjdzie ponad ekran i stanie się niewidoczny.
Chciałbym zapobiec temu i sprawić, że balon pojawi się pod przyciskiem - tak jak pokazane na poniższym obrazku:
Nie mam problemu z ustawieniem balonika pod przycisk.
Chodzi mi o utworzenie "dziubka" na górze, zamiast na dole balonika.
Za utworzenie "dziubka" na dole odpowiada kod
procedure TPomoc.ShowPomoc;
//....
{Kształt balonika}
FormRegion := CreateRoundRectRgn(0, 0, ClientWidth, ClientHeight - 19, 6, 6);
{Strzałka wychodząca u dołu balonika}
Arrow[0] := Point((Width div 2) - 20, ClientHeight - 20);
Arrow[1] := Point(Width div 2, ClientHeight);
Arrow[2] := Point((Width div 2) + 20, ClientHeight - 20);
ArrowRegion := CreatePolygonRgn(Arrow, 3, WINDING);
{Operacje na wyglądzie balonika}
CombineRgn(FormRegion, FormRegion, ArrowRegion, RGN_OR);
DeleteObject(ArrowRegion);
SetWindowRgn(Handle, FormRegion, True);
//....
end;
Jak zmodyfikować ten kod, aby dziubek znajdował się na górze balonika (jak na zdjęciu) ?
Komponent do pobrania: http://www.maciej-o.yoyo.pl/balon_test.rar