Gość Opublikowano 30 Sierpnia 2010 Udostępnij Opublikowano 30 Sierpnia 2010 Tytuł: GMBox Gatunek: Biblioteka umożliwiająca obsługę paska narzędzi Opis: Library for Game Maker by Bedi GMBox to biblioteka do Game Makera, umożliwiająca dodanie do okna paska narzędzi. Dzięki tej bibliotece, użytkownik aplikacji ma dużo łatwiejszy dostęp do aplikacji. Tworzenie i zarządzanie paskiem narzędzi jest bardzo łatwe, dlatego wszelkie wprowadzanie zmian nie sprawia większych problemów. Biblioteka umożliwia obsługę zdarzeń, czyli wykonywanie akcji w zależności od wybranego przycisku. Mała liczba funkcji umożliwia utrzymanie spójności i przejrzystości kodu. Wszystkie akcje wykonywane są w bibliotece, dlatego oprócz pliku DLL nie potrzeba żadnych innych aplikacji czy bibliotek. Taka krótka notka, jak do jakiegoś super programu =) Autorzy: - Bedi Szczególne podziękowania dla: - PsichiX - Snake Download: Click! Rozmiar pliku: 127 kb Dokumentacja jest w Game Information, a jeśli chcecie ją w pliku, to: kliknij tutaj Testujcie, oceniajcie ;) Na razie przykład nie jest extra, ale udoskonalę to. Enjoy! E: To może dam jakiś przykład, w jaki sposób tego używać (dokładne wyjaśnienie) ;) 1. Zamiana procedury Przed użyciem wszystkich funkcji (w zasadzie tylko przed sprawdzającymi, ale najlepiej dać to od razu po załadowaniu biblioteki) trzeba wywołać funkcję: Box_TransferProc( window_handle() ) Koniecznością jest wpisanie window_handle(). Jeżeli tego nie umieścimy, to wtedy reszta nie będzie działać (żadne funkcje). Funkcja ta (chyba wiadomo) podmienia procedurę okna, co umożliwia obsługę zdarzeń. Funkcja zwraca ten uchwyt, który podaliśmy w pierwszym arg. 2. Tworzenia paska narzędzi Po załadowaniu biblioteki i zamianie procedury, należy wywołać funkcję: Box_MenuBar_Create(); Spowoduje to utworzenie pustego paska, na którym możemy umieszczać elementy. Funkcja zwraca uchwyt do menu, dlatego używam tej funkcji w ten sposób: hMenu = Box_MenuBar_Create(); 3. Dodawanie popupów (zjeżdżających list) Po wykonaniu 1 i 2 punktu, jeśli chcemy umieścić przycisk w pasku narzędzi, na którym po kliknięciu wyjeżdża lista, wywołujemy funkcję: Box_MenuBar_CreatePopup(); Tworzy to listę, i zwraca jej uchwyt. Dlatego: Przykład przycisku Plik: hListPlik = Box_MenuBar_CreatePopup(); Po wykonaniu tej czynności, dodajemy przycisk do paska, który będzie otwierał listę (AddStatic). Box_MenuBar_AddStatic(hMenu, hListPlik, "Plik"); Pierwszy argument to uchwyt paska narzędzi, drugi - uchwyt listy, a trzeci - treść przycisku. Potem wystarczy aby dodawać przyciski do listy: przycisk = Box_MenuBar_AddListItem( hListPlik, "Treść" ); Natomiast jeżeli chcemy tworzyć przycisk, który nie wyświetla listy, lecz po prostu można na niego kliknąć, to dodajemy przycisk do głównego paska funkcją: przycisk = Box_MenuBar_AddListItem( [b]hMenu[/b], "Treść" ); Jeśli chcemy dodać kolejne przyciski z listami, to wykonujemy od nowa #3 punkt. 4. Podpinanie menu do okna Aby podpiąć menu do okna, wystarczy użyć funkcji: Box_MenuBar_SetMenu( hMenu ); Której argumentem jest uchwyt menu. I wtedy menu z wszystkimi przyciskami zostaje dodane do okna. 5. Obsługa kliknięć Aby sprawdzić, jaki przycisk został wciśnięty, wystarczy postawić warunek: if (Box_MenuBar_Clicked( <id_przycisku, zmienna> ) == 1) { // akcja, czy co tam chcecie xd } Prosty przykład wszystkiego: CREATE: Box_LibraryLoad("GMBox.dll"); Box_TransferProc( window_handle() ); hMenu = Box_MenuBar_Create(); hListPlik = Box_MenuBar_CreatePopup(); Box_MenuBar_AddStatic(hMenu, hListPlik, "Plik"); nowy = Box_MenuBar_AddListItem(hListPlik, "Nowy"); Box_MenuBar_SetMenu( hMenu ); STEP: if (Box_MenuBar_Clicked(nowy) == 1) { game_restart(); } No i to na razie wszystko :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 30 Sierpnia 2010 Udostępnij Opublikowano 30 Sierpnia 2010 Autorzy: - Bedi - PsichiX - Snake powinno być chyba coś typu: Autor: -Bedi THX za pomoc (bez niej nie ogarnął bym komunikatów MSG): -bla bla xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 30 Sierpnia 2010 Udostępnij Opublikowano 30 Sierpnia 2010 Brakuje MSVCR100D.dll, a redistów mi się pobierać tylko dla tego przykładu nie chce. Dopisz że wymagasz, albo jak się da to dorzuć dlla do folderu :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Sierpnia 2010 Administratorzy Udostępnij Opublikowano 30 Sierpnia 2010 U mnie jw. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 30 Sierpnia 2010 Udostępnij Opublikowano 30 Sierpnia 2010 https://gmclan.org/index.php?czytajart=71 przekompiluj z opcjami z punktu #9 polega na zamianie na opcje bez dll, to samo sie robi z release Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 30 Sierpnia 2010 Udostępnij Opublikowano 30 Sierpnia 2010 powinno być chyba coś typu: ... No ta, ale jednak oni mu pisali pewne fragmenty kodu i bez nich by to w ogóle nie powstało, więc raczej jest dobrze :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DobryZiom Opublikowano 30 Sierpnia 2010 Udostępnij Opublikowano 30 Sierpnia 2010 może i masz rację Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 30 Sierpnia 2010 Udostępnij Opublikowano 30 Sierpnia 2010 Ok, wszystko jest poprawione, link w 1 poście. E: W zasadzie oni podali mi pewne rozwiązania, więc nie wiem, jak uważacie :D E2: Jest nowszy build. Dodana funkcja symulująca wciśnięcie przycisku w menu (Box_MenuBar_Click( przycisk )). Download - 1 post. Dokumentację uzupełnię przy okazji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 było, pod taką samą nazwą, nie twoje i lepsze ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 Ja nie wiem czy było pod taką nazwą, nie sprawdzałem nigdzie indziej. A to sam wymyśliłem. E: Dajcie może jakieś propozycje co dodać etc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 Nie wiem, czy idzie tak zrobić z Twoim DLL-em ale w przykładzie tego nie widziałem, tak więc co dodać: - możliwość podpinania submenu pod itemy - włączanie/wyłączanie itemów - itemy z możliwością zaznaczania - ikonki do itemów i może jeszcze możliwość ustawienia domyślnego itema w menu ("default menu item"). No i mógłbyś połączyć "Box_TransferProc( window_handle() )" z funkcją od ładowania biblioteki, nie widzę powodu żeby to wywoływać oddzielnie :P Aha, w nazwach itemów z submenu można używać taba żeby wyrównać skrót klawiszowy (np. "Nowy...\tCTRL+N", gdzie "\t" to tab) -- można by o tym wspomnieć w dokumentacji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 1 i 2 myślnik - da się zrobić. 3 nie zrozumiałem, a z 4 pewno będzie problem, ale zobaczymy. Default też dodam. Nie wiem o co chodzi z tym tabem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 4 Września 2010 Filar Społeczności Udostępnij Opublikowano 4 Września 2010 3 to, że jak klikniesz opcje to pojawia się koło niej ptaszek, jak znów klikniesz to znika. Tak? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 Ok, to zobaczę co da się zrobić. Default item i włączanie/wyłączanie właśnie dodałem, teraz tylko wszystko sprawdzę. E: Dobra, koncept na zaznaczanie mam, dodaję. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 Co do taba: http://www.tannerwilliamson.com/wp-content..._batch_file.png te wyrównanie skrótów klawiszowych do prawej (np. "Ctrl+N") jest zrobione w taki sposób: "New\tCtrl+N" "Open\tCtrl+O" "Save\tCtrl+S" itd. w GM-ie zamiast tego "\t" można spokojnie wstawić znak tabulatora do stringa (albo to zrobić np. w taki sposób: "New" + chr( 9 ) + "Ctrl+N"). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 Aaa :) No tak, umieszczę to w dokumentacji. E: Ok. Jest wersja 1.1.1.4, ale dam Wam ją później, bo właśnie wychodzę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 4 Września 2010 Udostępnij Opublikowano 4 Września 2010 Sorry za double posta, ale umieszczam tu wersję 1.1.1.4. Dodane funkcje: - Box_MenuBar_GetDefaultItem( hMenu ) - Box_MenuBar_SetDefaultItem( hMenu, itemID ) - Box_MenuBar_SetItemState( hMenu, itemID, state ) - Box_MenuBar_CheckItem( hMenu, itemID, check ) - Box_MenuBar_Checked( hMenu, itemID ) Pierwsza: Zwraca ID domyślnego itemu w menu (hMenu) Druga: Ustawia w menu (hMenu) domyślny przycisk (itemID) Trzecia: Ustawia na przycisku (itemID) w danym menu (hMenu) stan (state). Albo 1 - aktywny; albo 0 - nieaktywny. Czwarta: Zaznacza lub odznacza przycisk (itemID) w menu (hMenu). 1 - zaznacza; 0 - odznacza. Piąta: Sprawdza czy przycisk (itemID) w menu (hMenu) jest wciśnięty. Jeśli tak - 1, jeśli nie - 0. Dokumentację uzupełnie, jeśli nie będę miał na razie zamiaru dodawać czegoś nowego do DLL (czyli tak za jakiś czas). Na razie urozmaicam to co jest :) W przykładzie jest pokazane użycie wszystkich funkcji, które dodałem. Zaraz wrzucę aktualizację. Ok, Link Między czasie wydałem wersję 1.1.1.5. Dodana funkcja tworzenia submenu. link Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się