Thread View: pl.comp.lang.pascal
5 messages
5 total messages
Started by marjan
Tue, 13 Nov 2007 21:31
2 procedury na raz
Author: marjan
Date: Tue, 13 Nov 2007 21:31
Date: Tue, 13 Nov 2007 21:31
16 lines
1084 bytes
1084 bytes
Witam. Czy jest możliwe aby program wykonywał 2 procedury na raz? Zależy mi na tym aby pomimo działania programu, w tym wykonywania różnych poleceń, funkcji i procedur, cały czas "w tle" był wydobywany dźwięk (poleceniem sound), ktorego melodia byłaby zapisana właśnie w procedurze. Da się tak zrobić? z góry dzięki za pomoc.. -- pozdrawiam, marjan
Re: 2 procedury na raz
Author: Solaris
Date: Tue, 13 Nov 2007 22:04
Date: Tue, 13 Nov 2007 22:04
49 lines
1925 bytes
1925 bytes
Dnia Tue, 13 Nov 2007 22:31:37 +0100, jakże pięknego
marjan <klero.tk@gmail.pl.no-spam.com> wystukał co zawarte poniżej:
:: Witam.
::
:: Czy jest możliwe aby program wykonywał 2 procedury na raz?
::
:: Zależy mi na tym aby pomimo działania programu, w tym wykonywania
:: różnych poleceń, funkcji i procedur, cały czas "w tle" był wydobywany
:: dźwięk (poleceniem sound), ktorego melodia byłaby zapisana właśnie w
:: procedurze. Da się tak zrobić?
::
coś w ten deseń
var tablica_myzyki: array[0.99] of Byte;
temp:pointer;
tablica_muzyki[0]:=512; (itp itd);
procedure muza(); interrupt;
begin
repeat
for i:=0 to 99
sound(tablica_muzyki[i]);
nosound();
until (false);
end;
begin
getincvec(jakies_przerwanie, temp)
setintvec(jakies_przerwanie, addr(muza))
repeat
writeln('i muzka gra... haha');
until (keypressed):
end.
Co do przerwania, to znajdz sobie jakieś. ;)
--
Home: admin.idns.pl
Linux registered user: 408584
Contact: GG#44450, solaris#idns.pl
19:16:28 -!- Platyna Erroneous Nickname
Re: 2 procedury na raz
Author: Solaris
Date: Tue, 13 Nov 2007 22:05
Date: Tue, 13 Nov 2007 22:05
18 lines
1290 bytes
1290 bytes
Dnia Tue, 13 Nov 2007 23:04:11 +0100, jakże pięknego Solaris <solaris@be.inspired> wystukał co zawarte poniżej: Się troche błędów skardło. ;) :: var tablica_muzyki: array[0..99] of Word; :: until (keypressed): setintvec(jakies_przerwanie, temp); :: end. -- Home: admin.idns.pl Linux registered user: 408584 Contact: GG#44450, solaris#idns.pl 19:16:28 -!- Platyna Erroneous Nickname
Re: 2 procedury na raz
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 13 Nov 2007 22:30
Date: Tue, 13 Nov 2007 22:30
24 lines
1745 bytes
1745 bytes
marjan wrote: > Czy jest możliwe aby program wykonywał 2 procedury na raz? > > Zależy mi na tym aby pomimo działania programu, w tym wykonywania > różnych poleceń, funkcji i procedur, cały czas "w tle" był wydobywany > dźwięk (poleceniem sound), ktorego melodia byłaby zapisana właśnie w > procedurze. Da się tak zrobić? Wątki/Procesy, ogólnie współbieżność. Platforma? Kompilator? - TP? DOS? - to co napisał Solaris, wpiąć się w przerwanie zegarowe (przerwanie o indeksie $1C) - Win32 - utworzyć wątek za pomocą CreateThread() z unitu Windows. - Linux - skorzystać z biblioteki pthreads - ogólnie - w FPC w unit Classes jest klasa TThread, wystarczy przykryć wirtualną metode Execute i będziesz miał "przenośny" wątek. -- Pozdrawiam, Łukasz 'Maly' Ostrowski. http://maly.nemo.pl/
Re: 2 procedury na raz
Author: Wiktor S.
Date: Thu, 15 Nov 2007 13:26
Date: Thu, 15 Nov 2007 13:26
22 lines
1322 bytes
1322 bytes
> - ogólnie - w FPC w unit Classes jest klasa TThread, wystarczy
> przykryć wirtualną metode Execute i będziesz miał "przenośny" wątek.
TThread jest wrapperem na standardowe funkcje freepascala:
function watek(parametr:pointer):longint;
begin
writeln('wątek');
end;
begin
beginthread(@watek); // albo: beginthread(@watek,jakis_pointer);
writeln('program główny');
end.
--
Azarien
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads