Skocz do zawartości

Maxius

Użytkownicy
  • Postów

    267
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Maxius

  1. Patrz! Zapomniałem o FAQ! Dziękuję wam bardzo!
  2. Witam, Po dłuższym czasie powróciłem nowy, lepszy. :) I mam pytanie - czy w GM idzie zrobić przeźroczystość danego obiektu? Z góry dziękuję i pozdrawiam, Maxiu
  3. Witam! Chciałbym się spytać ile warty jest taki sprzęt: Procesor: AMD Athlon 64 Dual - Core 2,71 GHz Pamięć: DDR2 2GB Kingston Dysk twardy: 80 GB 7200 Obr\min. Segate Monitor: Samsung SyncMaster T190 20000:1 19" Głośniki: Creative SBS 380 Obudowa: IBOX Lynx 703LD Płyta główna: GIGABYTE GA-M61PME-S2P Karta graficzna: GeForce 9800 GTX Zasilacz: GIGABYTE 460W
  4. Maxius

    Uciążliwe wirusy

    Mam takie wirusy, że gdy je usuwam avastem to ok usuwają się. Tylko przy każdym włączeniu komputera na nowo się pojawiają. Daje log z HiJackThis. Pomóżcie!
  5. Mam dylemat... Nie wiem który zestaw wybrać: czy ten? http://allegro.pl/item628944741_gigabyte_g...00_gma3100.html czy może ten? http://allegro.pl/item629853478_gigabyte_a...gb_gef6100.html Prosił bym o doradzenie w sprawie kupna. Bo nie chce wydać pieniędzy na nic. Aha! I jaki jeszcze cooler do nich polecacie? Pozdrawiam. Maxius
  6. Najpierw popraw na bbcode, a ja na nie oceniam, do póki nie poprawisz.
  7. Maxius

    Kurs basica...

    Dzięki wielkie :) Pozdrawiam!
  8. Maxius

    Kurs basica...

    Witam! Szukam jakiegoś kursu Basica ( ale takiego oryginalnego ), programuje w JustBasic. Nie chodzi mi o Visual Basic. Bardzo proszę o pomoc. Z góry dziękuję i pozdrawiam, Maxius, Mornet
  9. To dobrze. A poza tym autor domaga się credits: Ale grę rób dalej!
  10. Maxius

    Galeria Grafik

    Jest to mój pierwszy rysunek w pixelart. Mieczyk
  11. Maxius

    Szkieletor

    Trochę mi się wydaje że fabuła zerżnięta Fable : Lost Chapters! Ale nic. Pracuj dalej.
  12. Coldplay - Viva La Vida PS. Kurcze! Ale mój temat się rozwinął!
  13. Maxius

    Qapid

    Nie no fajne. Ale nie podgania na razie JDownloadera. Pracuj dalej! :) 4.5/5
  14. No no coraz lepiej! jest super naprawdę! 4+/5 !
  15. Dzięki za wszystkie rady. Niedługo ukaże się wersja 1.1 już demo.
  16. Ale zrozum też, że jest to jego pierwsza gra.
  17. Jak na początkującego to nieźle. Dobrze że nie jest to jakiś kacz de klaun :) Daje 3/5 Pozdro!
  18. Tytuł: Wirtualna perkusja Gatunek: Muzyczna Opis: Tak więc... po długiej przerwie postanowiłem zrobić coś nowego, prawdziwego i mojego. Jest to Wirtualna perkusja. Można na niej na razie tylko grać, oraz posłuchać dwóch próbek i włączać, wyłączać Hi-hat. Skład perkusji: Hi - hat -------------- Crash Tom 8" Tom 12" | | Werbel - Bęben basowy - Floor tom W tej wersji nie ma praktycznie niczego, dlatego umieszczam w zapowiedziach. W następnej wersji planuję zrobić: - Nagrywanie wygrywanego przez nas utworu, - Podkłady Jest to wersja 1.0. Możecie także sugerować różne pomysły, które mogę wprowadzić w następnej wersji. Autorzy: Programowanie: Maxius Fabuła: Maxius Grafika: Maxius Muzyka: Dźwięki bębnów z findsounds.com Screeny: Pre - Alpha - Beta Pobierz!
  19. Wielkie dzięki! Pozdrawiam i dziękuję!
  20. Więc tak. Tworze grę i mam ustawione że po kliknięciu spacji ma się odtwarzać dany dźwięk. Lecz gdy nacisnę spacje dźwięk się odtwarza ciągle, do momentu gdy puszczę przycisk. Więc jak zrobić żeby po naciśnięciu dźwięk odtworzył się tylko raz a nie cały czas? I dopiero po puszczeniu i naciśnięciu jeszcze raz klawisza dźwięk się znowu odtworzył? Z góry dziękuję i pozdrawiam, Maxius
  21. Maxius

    Mystic Land

    Mojej roboty miksturki życia i many. Myślę, że się przydadzą. Pozdrawiam, Maxius
  22. Maxius

    Przepraszam...

    Witam. Dziś chciałem przeprosić wszystkich za moje wygłupy i inne nieciekawe rzeczy. Przepraszam także wszystkich których uraziłem. Żałuję za to co zrobiłem i obiecuję że się poprawię. Chciał bym też, aby był bym traktowany tak jak inni, czyli nie wyśmiewany itd. Obiecuję także że nie będę już robił głupich programów i gier. Tak więc proszę o wybaczenie ( jeżeli oczywiście można ).
  23. W tym artykule mam zamiar omówić wszystkie najważniejsze pojęcia dotyczące bibliotek DLL - sposobu ich pisania, wykorzystanie, łączenie z programem itp. Zacznijmy więc. Biblioteka DLL DLL to skrót do Dynamic Link Library i jest to plik, w którym znajduje się skompilowany kod źródłowy, który to może być później wykorzystany w połączeniu z aplikacją. Dobrze, już wiesz, że biblioteka dll może zawierać procedury, które możesz wykorzystać w swoim programie. Teraz pewnie zapytasz: "Po co właściwie wykorzystywać biblioteki, skoro kod można zawrzeć w pliku wykonywalnym EXE?". Dobre pytanie i kilka różnych odpowiedzi. DLL może być wykorzystany przez wszystkie języki programowania. Tak więc pisząc bibliotekę w C++ Builder możesz ją wykorzystać w Delphi. Jest to duża zaleta. Przykładem może być tutaj biblioteka do odtwarzania plików mp3 - jest ona napisana w C++, a możesz ją wykorzystać w Delphi. Innym przykładem może być funkcja DrawText lub ShellExecute, z których pewnie często korzystasz. Tak naprawdę są to funkcje importowane z bibliotek DLL dostarczonych wraz z Windowsem. Tak więc funkcje DrawText i ShellExecute są funkcjami Windowsowymi. Inny przykład. Każda aplikacja posiada błędy i nie można się ustrzec. Możesz w swoim programie częśc koduumieścić w bibliotece DLL, a część w pliku EXE. Teraz jeżeli wykryjesz jakiś błąd to wystarczy, że wymienisz tylko plik DLL, a nie cały program. Dobra przejdźmy do konkretów. Żeby stworzyć bibliotekę DLL należy z menu File wybrać New, a następnie w oknie, które się pojawi kliknąć na ikonę z napisem DLL. Otworzy się nowy projekt, a w nim: library Project1; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select View-Project Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the DELPHIMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using DELPHIMM.DLL, pass string information using PChar or ShortString parameters. } uses SysUtils, Classes; begin end. Obszerny komentarz omówię później. Doprowadź wygląd biblioteki do takiej postaci: library Project1; uses Windows; //<-- wystarczy tylko ten moduł procedure ShowWindow; stdcall; begin MessageBox(0, 'Witaj! Jestem procedurą z biblioteki DLL!', 'Witam!', MB_OK); end; exports // eksportuj procedurę ShowWindow name 'ShowWindow'; begin end. Jak widzisz w bibliotekach nie kładzie się komponentów, ale jedynie pisze. Dobra, mamy jedną procedurę. Zauważ klauzurę exports u dołu biblioteki. Otóż po tym słowie wpisuje się nazwy procedur, które zostaną eksportowane "na zewnątrz" tzn., będzie możliwe ich wykorzystanie poza biblioteką. Eksportowanie procedur i funkcji Tak jak mówiłem - po słowie exports wypisuje się procedury i funkcje, które będą eksportowane. Jeżeli masz więcej niż jedną procedurę do eksportu wypisujesz je po przecinku: exports Procedura, JakasFunkcja; Istnieje możliwość eksportowania procedur poprzez nazwę. Znaczy to, że procedura eksportowana może mieć inną nazwę - np: exports JakasEksportowanaProcedura name 'Go'; ' W tym wypadku eksportowaliśmy procedurę JakasEksportowanaProcedura, ale eksportowaliśmy ją pod nazwą Go. Istnieje także możliwość eksportowania procedur poprzez indeks: exports JakasEksportowanaProcedura index 1, JakasEksportowanaProcedura2 index 2; Importowanie procedur z bibliotek Jeżeli już skompilujesz bibliotekę możesz ją wykorzystać w swoim programie. Oto sposób ( statyczny ) na zaimportowanie procedury z biblioteki. Na samym początku chciałem wspomnieć, że jest to statyczny sposób na załadowanie biblioteki. Najlepiej w sekcji Interface umieść taki nagłówek: procedure ShowWindow; stdcall external 'Example_lib.dll' name 'ShowWindow'; Załadowanie biblioteki następuje za pomocą słowa external - po tym nazwa biblioteki, a na samym końcu nazwa procedury do zaimportowania. Zauważ słowo stdcall pojawiające się teraz jak i w bibliotece DLL przy nazwie procedury. Zawsze stosuje tę dyrektywę gdyż zapewnia ona kompatybilność jeżeli np. biblioteka jest napisana w Delphi, a wykorzystujesz ją w C++. Istnieją także inne dyrektywy, które możesz wykorzystać przy swoich procedurach: safecall - Opatrując tą dyrektywą swoją procedurę masz pewność, że każdy zaistniały wyjątek zostanie przekazany do programu wykorzystującego daną bibliotekę. register - Ta dyrektywa począwszy od Delphi 2 jest dyrektywą domyślną gdyż zapewnia największą efektywność działania. Związane jest to z czyszczeniem stosu podczas działania procedury, ale nie zamierzam się tutaj rozpisywać o tej dyrektywie. pascal, cdecl Są to dwie konwencje - Pascalowa i C++. Rzadką są one wykorzystane gdyż mieszanką tych dwóch dyrektyw jest stdcall. Teraz gdy chcesz uruchomić procedurę ShowWindow wystarczy, że gdzieś w programie napiszesz: ShowWindow; Spowoduje to załadowanie z biblioteki DLL powyższej procedury. Gdy otworzysz projekt biblioteki DLL możesz w nim umieścić formularz. Wystarczy z menu File wybrać New Form. To nie wszystko musisz bowiem napisać procedurę, która tworzyć i wyświetlać będzie formularz. Oto cały kod biblioteki DLL: library LibSample; uses Forms, Main in 'Main.pas' {Form1}; procedure ShowForm; var Form1 : TForm1; begin Form1 := TForm1.Create(Application); // stworz formularz Form1.ShowModal; // wyswietl formularz Form1.Free; // zwolnij zmienna end; exports ShowForm index 1; begin end. Teraz gdy skompilujesz taką bibliotekę to będzie miała rozmiar zwykłego programu - w Delphi 2 jest to 175 KB. Cóż jest to niewątpliwie wada Delphi - generuje zbyt duże pliki wykonywalne oraz biblioteki DLL. Ok, teraz wyświetlenie formularza z biblioteki następuje za pomocą takiego kodu: procedure ShowForm; stdcall external 'LibSample.dll' index 1; // to w sekcji Interface No i gdzieś w programie wystarczy, że napiszesz: ShowForm; Proszę nie oceniać surowo jest to mój pierwszy artykuł. Pozdrawiam, ΜΦΞ
×
×
  • Dodaj nową pozycję...