PDA

View Full Version : سوال: سوال؟ یه مثال خوب و آسون برای موس و رنگ موس تو Turbo C++ 3.0 DOS



sadegh-hut
سه شنبه 18 اسفند 1388, 17:23 عصر
کمک کنید !!!!!!!!:گریه::گریه:

amin1softco
سه شنبه 18 اسفند 1388, 17:27 عصر
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
//************************************************** **********************
int Mouse(void){
REGS in,out;
in.x.ax=0x00;
int86(0x33,&in,&out);
if(out.x.ax==0) return 0;
return 1;
}
//************************************************** **********************
void ShowCursor(void){
REGS in,out;
in.x.ax=0x01;
int86(0x33,&in,&out);
}
//************************************************** **********************
void HideCursor(void){
REGS in,out;
in.x.ax=0x02;
int86(0x33,&in,&out);
}
//************************************************** **********************
void CursorLocate(int* column,int* row){
REGS in,out;
in.x.ax=0x03;
int86(0x33,&in,&out);
*column=out.x.cx;
*row=out.x.dx;
}
//************************************************** **********************
void CursorTo(int column,int row){
REGS in,out;
in.x.ax=0x04;
in.x.cx=column;
in.x.dx=row;
int86(0x33,&in,&out);
}
//************************************************** **********************
int Click(int key){
REGS in,out;
in.x.ax=0x05;
in.x.bx=key;
int86(0x33,&in,&out);
return out.x.bx;
}
//************************************************** ***************************
void fill_circle(int x,int y,int r, int c){
setcolor(c);
while(r){
circle(x,y,r);
r--;
}
}
//************************************************** **********************
main(){
int *x,*y,driver=0,mode=DETECT;
initgraph(&driver,&mode,"../bgi");
Mouse();
ShowCursor();
CursorTo(0,0);
setcolor(15);
circle(300,200,10);
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++){
printf("\n i=%d , j=%d",i,j);
}
}
rectangle(290,190,310,210);
while(1){
CursorLocate(x,y);
if(*x>=290 && *x<=310 && *y>=190 && *y<=210 && Click(0)==1){
HideCursor();
fill_circle(300,200,10,20);
getch();
HideCursor();
exit(1);
}
}
}

sadegh-hut
سه شنبه 25 اسفند 1388, 00:01 صبح
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
//************************************************** **********************
int Mouse(void){
REGS in,out;
in.x.ax=0x00;
int86(0x33,&in,&out);
if(out.x.ax==0) return 0;
return 1;
}
//************************************************** **********************
void ShowCursor(void){
REGS in,out;
in.x.ax=0x01;
int86(0x33,&in,&out);
}
//************************************************** **********************
void HideCursor(void){
REGS in,out;
in.x.ax=0x02;
int86(0x33,&in,&out);
}
//************************************************** **********************
void CursorLocate(int* column,int* row){
REGS in,out;
in.x.ax=0x03;
int86(0x33,&in,&out);
*column=out.x.cx;
*row=out.x.dx;
}
//************************************************** **********************
void CursorTo(int column,int row){
REGS in,out;
in.x.ax=0x04;
in.x.cx=column;
in.x.dx=row;
int86(0x33,&in,&out);
}
//************************************************** **********************
int Click(int key){
REGS in,out;
in.x.ax=0x05;
in.x.bx=key;
int86(0x33,&in,&out);
return out.x.bx;
}
//************************************************** ***************************
void fill_circle(int x,int y,int r, int c){
setcolor(c);
while(r){
circle(x,y,r);
r--;
}
}
//************************************************** **********************
main(){
int *x,*y,driver=0,mode=DETECT;
initgraph(&driver,&mode,"../bgi");
Mouse();
ShowCursor();
CursorTo(0,0);
setcolor(15);
circle(300,200,10);
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++){
printf("\n i=%d , j=%d",i,j);
}
}
rectangle(290,190,310,210);
while(1){
CursorLocate(x,y);
if(*x>=290 && *x<=310 && *y>=190 && *y<=210 && Click(0)==1){
HideCursor();
fill_circle(300,200,10,20);
getch();
HideCursor();
exit(1);
}
}
}





مي گم ساده تر از اين نبود !!!!!!!!!!!!!!:متعجب::متعجب::ناراح ::ناراحت:

amin1softco
سه شنبه 25 اسفند 1388, 14:02 عصر
دوست من در توربو سی راحت ترین و کامل ترینش اینه ولی در کنسول مایکروسافت یکم راحتر میشه که باید از vc++6 به بالا کار کنی و خروجی مربوط به محیط ویندوزه در کل فرقی نداره آخرش باید موقعیت ماوس را با کلید یا هر قسمتی که به عنوان کلید در نظر گرفتی مقایسه کنی اگر اشاره گر ماوس در اون موقعیت بود و در ماوس حالت یک کلید فشرده بود می تونی یک تابعی رو اجرا کنی اما اگه فکر می کنی مثل سی شارپ یا وی بی میشه با ماوس کار کرد در اشتباهی چون راه دیگه اینه که مستقیم با پورت ماوس حرف بزنی و پورت ماوس بایدمشخص باشه چیه ...................................

sadegh-hut
چهارشنبه 26 اسفند 1388, 00:36 صبح
دوست من در توربو سی راحت ترین و کامل ترینش اینه ولی در کنسول مایکروسافت یکم راحتر میشه که باید از vC++‎‎6 به بالا کار کنی و خروجی مربوط به محیط ویندوزه در کل فرقی نداره آخرش باید موقعیت ماوس را با کلید یا هر قسمتی که به عنوان کلید در نظر گرفتی مقایسه کنی اگر اشاره گر ماوس در اون موقعیت بود و در ماوس حالت یک کلید فشرده بود می تونی یک تابعی رو اجرا کنی اما اگه فکر می کنی مثل سی شارپ یا وی بی میشه با ماوس کار کرد در اشتباهی چون راه دیگه اینه که مستقیم با پورت ماوس حرف بزنی و پورت ماوس بایدمشخص باشه چیه ...................................

بازم دمت گرم كه با پاسخ دادن به سوالام به من كمك مي كني amin1softco عزيز
ايششششششششاللللللللا سال خوبي داشته باشي:تشویق::تشویق:
:متفکر::متفکر: يه سوال ديگه اينكه تويه توربو سی چه جور مي شه صدا ايجاد كرد البته به جز b\ :چشمک::چشمک:
ممنون اگه كمك كنيد مثل همون موس كه گفته بودم با يه مثال توضيح بدين:چشمک:

amin1softco
چهارشنبه 26 اسفند 1388, 14:00 عصر
منم عید رو پیشاپیش به شما و همه دوستان برنامه نویس تبریک می گم:قلب: و
اینو قبلا توضیح دادم که باید به پورت کارت بلاستر متصل بشی یک سرچی کن تو فروم پیدا می کنی چگونه یک فایل ویو را پخش کنیم؟:چشمک: ولی تمام سورسی که نیاز داری اینجاست http://www.shdon.com/dos/sound
درست مثل همین ماوسه اول با یک پورت ارتباط بر قرار می کنی و بعد اطلاعات رو براش می فرستی برای ضبظ کردن صدا همین کارو انجام می دی حتما به لینک بالا سر بزن
اما تو ویژوال بهترین راه استفاده از api های ویندوزه که خیلی ساده تر از این کد هاست

sadegh-hut
پنج شنبه 05 فروردین 1389, 01:45 صبح
تشكر:تشویق::تشویق::لبخند:
من هر كاري كه گفته بودي انجام دادم ولي به نتيجه اي نرسيدم .
هم رفتم تو سايتي كه گفته بودي (كه يه چندتا چيز دانلود كردم بعد كه ديدم شون معلوم نبود چي بودن !!!!!!!!!!:گیج::گیج::گیج::گیج:)
تو تايپيكا هم گشتم من يكي كه هيچي در اين مورد نديدم :متعجب::متعجب::متعجب:

amin1softco
پنج شنبه 05 فروردین 1389, 02:08 صبح
در این لینک یک مثال از پخش فایل صوتی و یک مثال از ضبط کردنش وجود داره آخر صفحه
در تاپیکم یکی قبلا پرسیده بود فایل صوتی را چطور پخش کنیم ....

اما شما چه صدایی می خواهید تولید کنید؟

sadegh-hut
چهارشنبه 11 فروردین 1389, 21:32 عصر
ببين من مي خوام مثلا يه برنامه بنويسم كه وقتي با موس روي چيزي كليك كرديم يه صدايي توليد كنه يا مثلا هركار ديگه كرديم يه صدايي بده .:متفکر::متفکر:
در ضمن مي خوام اين قابليتو داشته باشه كه كابر بتونه تنظيم كنه كه صدا داشته باشه يا نه
همين !!!!!!!!:چشمک:

amin1softco
چهارشنبه 11 فروردین 1389, 21:42 عصر
برای اینکه یک صدا تولید کنی فقط کافیه از این کد استفاده کنی


sound(6);
delay(500);
nosound();

اگه می خواهی یک فایل صوتی رو پخش کنی بهتره از یک نرم افزار خارج از برنامه که این قابلیت رو داره استفاده کنی و با فرواخوانی نرم افزار خارجی صدا رو پخش کنی ولی روش اول راحت تره

sadegh-hut
چهارشنبه 11 فروردین 1389, 22:04 عصر
sound(6);
delay(500);
nosound();

از اين استفاده كردم ولي هيچي نشد ؟؟؟؟
ميگم براي گرافيك هم اون اول با TC مشكل داشتم بعد فهميدم كه بايد يه سري فايل از پوشه ي BGI تو پوشه ي BIN كپي مي كردم بعدم مشكل رفع شد.
حالا مي گم يه وقت اينم اينجوري نيست ؟؟؟؟؟؟:متفکر:

amin1softco
پنج شنبه 12 فروردین 1389, 00:15 صبح
دوست من من خودم این کد رو تست کردم یک صدا شبیه به بالا رفتن آسانسور ایجاد می کنه در ضمن احتیاج به سر فایل dos.h داره. البته با ویندوز اکس پی نمی دونم جواب بده یا نه ولی با داس باکس جواب داد:



#include <dos.h>
int main(void)
{
for(int i=1;i<=100;i++){
sound(i);
delay(i);
}
nosound();
return 0;
}

sadegh-hut
پنج شنبه 12 فروردین 1389, 01:03 صبح
عجب آسانسوري دارين!!!:متعجب:
منظورت صداي داخل كيسه؟؟
من كه نمي خوام از تو كيس صدا بياد !!!

amin1softco
پنج شنبه 12 فروردین 1389, 01:42 صبح
ببین توربو سی یعنی همین صدای بلند گوی کیس:لبخند: البته کلی خندیدم دمت گرم خیلی با حالی...
کار هایی که می گم رو انجام بده تا بوسیله توربو سی یک صدای صاف از اسپیکر پخش بشه
1- صدا هایی که داری رو تبدیل به فایل wav کن یک نمونه از این فایل ها در ضمیمه هست. در ضمن تو پوشه X:\WINDOWS\Media ویندوز از این صدا های کوتاه هست میشه ازشون استفاده کرد.
2- فایل های ویو رو در پوشه X:\TC\bin توربو سی کپی کن.
3- فایل SBWAV.C را در پوشه X:\TC\INCLUDE کپی کن.
4- حالا برنامه زیر رو اجرا کن تا صدا از اسپیکرت پخش بشه.


#include "sbwav.c"

void main ()
{
//Check for Sound Blaster
FindSB ();
if (!SBFound ()) {
printf ("Sound Blaster not found.\n");
return;
}

//Initialise Sound Blaster
SBOpen ();

//Play a file
SBPlay ("TEST.WAV");
do; while (SBPlaying () && !kbhit ());
SBStop ();

//Close Sound Blaster
SBClose ();
}

sadegh-hut
پنج شنبه 12 فروردین 1389, 18:56 عصر
باور كن اشكال از من نيست من مي فهمم چي مي گي اما .............:عصبانی++:
اما اين دفعه ديگه صدا آسانسورم در نيمد :لبخند:، ميگم اين كه گفتي به زبان C‍ بود ديگه (من ‍ مي خوام C باشه )
آخه كتابخونه C همه شون "h . " دارن اما اين "c . " بود آخرش.(SBWAV.C)
اينم ارور هاش:



Error ..\INCLUDE\SBWAV.C 203: Function 'memset' should have a prototype
Error ..\INCLUDE\SBWAV.C 309: Function 'strlen' should have a prototype
Error ..\INCLUDE\SBWAV.C 422: Function 'memset' should have a prototype

:گیج::گیج:

sadegh-hut
پنج شنبه 12 فروردین 1389, 19:00 عصر
راستي تو فايل ضميمه كه داده بودي WAVPLAY.C نگفته بودي بايد چي كارش كنم ؟؟؟؟؟؟؟؟:متفکر::متفکر:

amin1softco
جمعه 13 فروردین 1389, 00:01 صبح
ببین به نظر من توربو سی شما تنظیم نیست این توربو سی تنظیم شده با حجم 2.5 مگ دانلود کن و برنامه رو باهاش کامپایل کن باید درست بشه
دانلود (http://up.iranblog.com/2162/1270230643.zip)
نتیجه کامپایلم اینه ببین روی کامپیوترت اجرا می شه یا نه
دانلود (http://up.iranblog.com/2162/1270200638.zip)

sadegh-hut
جمعه 13 فروردین 1389, 01:00 صبح
اول از همه دستت درد نكنه؛
آره اجرا شد . اين همون برنامه ايه كه براي من error گرفت ؟؟؟؟؟

amin1softco
جمعه 13 فروردین 1389, 01:05 صبح
اول از همه دستت درد نكنه؛
آره اجرا شد . اين همون برنامه ايه كه براي من error گرفت ؟؟؟؟؟
بله دقیقا همون برنامه است

sadegh-hut
جمعه 13 فروردین 1389, 01:39 صبح
:عصبانی++::عصبانی++::عصبانی++: :گریه::گریه: :گریه:
خيييييييير....!!!!!
بابا من كه از خيرش گذشتم ! :ناراحت: مي خواستم ازش تو پرو‍ژم استفاده كنم و كلاس بذارم كه فكر كنم اين چيزا بهم نيومده!

به هر حال ممنون.

amin1softco
جمعه 13 فروردین 1389, 01:43 صبح
:عصبانی++::عصبانی++::عصبانی++: :گریه::گریه: :گریه:
خيييييييير....!!!!!
بابا من كه از خيرش گذشتم ! :ناراحت: مي خواستم ازش تو پرو‍ژم استفاده كنم و كلاس بذارم كه فكر كنم اين چيزا بهم نيومده!

به هر حال ممنون.
خوب چی شد مشکل کجاست؟!!!!!!!!!!! اگه به سر فایل ها گیر می ده
این دوتا خط رو به اول برنامه اضافه کن


#include <string.h>
#include <conio.h>

آخر برنامه هم یک getch اضافه کن.

sadegh-hut
جمعه 13 فروردین 1389, 02:01 صبح
كاشكي مشكل اين چيزا بود ؛
هنوزم همون ارور ها رو كه گفتم مي ده .
حالاوقتي رفتم دانشگاه اونجا با كامپيوترا سايت اجراش مي كنم ببينم چي ميشه
فعلا بي خيالش بايد شد . جور ديگر بايد ديد !!!!!!!!!!!!!!!:لبخند:
:اشتباه: