Pomoc->Wybrany artykuł

dział ogólny

Pomoc->Wybrany artykuł

Nowy postprzez wargo » piÄ…tek, 22 sierpnia 2008, 15:41

Jak można ustawić np. w zdarzeniu po naciśnięciu pozycji w menu aby otwarło wybrany temat. Wiem tylko jak otworzyć cały plik pomocy z menu (zwykłe otwarcie pliku) ale chce zrobić opcję w menu która otwiera wskazany temat a nie spis treści np. informacje.
Ostatnio edytowano piątek, 27 lutego 2009, 20:15 przez wargo, łącznie edytowano 1 raz
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: Pomoc->Wybrany artykuł

Nowy postprzez Cyfrowy Baron » piÄ…tek, 22 sierpnia 2008, 19:07

To wymaga stworzenia specjalnego pliku pomocy na który składają się dwa pliki *.cnt i *.hlp. Potem trzeba to odpowiednio podłączyć do aplikacji. Pliki muszą być odpowiednio przygotowane, czyli nie mogą to być dowolne pliki.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Pomoc->Wybrany artykuł

Nowy postprzez wargo » piÄ…tek, 22 sierpnia 2008, 19:19

Ja mam specjalny program do tworzenia plików hlp i cnt a nawet osobny do chm.
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: Pomoc->Wybrany artykuł

Nowy postprzez Cyfrowy Baron » sobota, 23 sierpnia 2008, 09:19

Nie chce mi się tego dokładnie opisywać, wiec masz tutaj prosty kod dla okienka popup.

Okienko help typu popup, to takie okienko, które pojawia się w wielu aplikacjach po wciśnięciu F1 lub prawego klawisza nad jakimś elementem. Jest to mechanizm standardowo zaimplementowany w WinHelp API Windows'a. Zaprezentowany tu kod pokazuje jak obsłużyć kliknięcie prawego klawisza nad dowolnym elementem. Tam gdzie to możliwe (obiekty klas dziedziczących po TWinControl) używam własności HelpContext, a tam gdzie nie ma tej własności, używam Tag.

Kod: Zaznacz cały
//Unit1.cpp
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   Application->HelpFile="moj_testowy_help.hlp";
}

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
   if (Button == mbRight)
      TForm1->Help(Sender);
}

void __fastcall TForm1::Help(TObject* Sender)
{
   THelpContext HC;
   TClass ClassRef;
   for (ClassRef = Sender->ClassType(); ClassRef != NULL; ClassRef = ClassRef->ClassParent())
   {
      if (String(ClassRef->ClassName()) == "TWinControl")
      {
         HC = ((TWinControl*)Sender)->HelpContext;
         break;
      }
      else
         if (String(ClassRef->ClassName()) == "TGraphicControl")
         {
            HC = ((TGraphicControl*)Sender)->Tag;
            break;
         }

      if (HC != 0)
         Application->HelpCommand(HELP_CONTEXTPOPUP, HC);
}


Zaznaczam jednak, że plik HLP musi być prawidłowo skonstruowany. Zmienna HC (w przykładzie) określa numet kontekstu, a nie jego nazwę, do którego się odwołujemy.

Więcej znajdziesz tutaj: http://www.smountain.com/resource/CPPWinHelp.pdf
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Pomoc->Wybrany artykuł

Nowy postprzez wargo » sobota, 23 sierpnia 2008, 11:22

Nie chodzi mi o podpowiedź tak jak w okienkach dialogowych ten znak zapytania w rogu i kliknięcie.
Chodzi mi o otwarcie normalnego okna pomocy z wybranym tematem. Otworzyłem adres co podałeś i widząc ShellExecute doszedłem do wniosku że wystarczy uruchomić to w postaci komendy(mimo że był opisany nie .hlp a .chm) z parametrami:
Kod: Zaznacz cały
winhlp32 -n 2 c:\program\pomoc.hlp

Kod: Zaznacz cały
winhlp32 -n NUMERKONTEXTU PLIKMOMOCY(PATH)

Polecam program "oasis" do tworzenia plików .hlp.
Ostatnio edytowano piątek, 27 lutego 2009, 20:18 przez wargo, łącznie edytowano 1 raz
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: Pomoc->Wybrany artykuł

Nowy postprzez Cyfrowy Baron » sobota, 23 sierpnia 2008, 12:10

Więc nie do końca się zrozumieliśmy.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Pomoc->Wybrany artykuł

Nowy postprzez wargo » sobota, 23 sierpnia 2008, 13:00

Ale o to właśnie mi chodziło i dziąki za link :w
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 74 gości