PDA

View Full Version : نوشتن برنامه منو



maryam safarzadeh
چهارشنبه 25 آبان 1384, 16:00 عصر
سلام من دنبال برنامه یک منو زیبا برای محیط borland c می گردم اگر کسی میدونه کمکم کنه؟
در ضمن روش برنامه نویسی در محیط گرافیکی c را بلد نیستم یک مثال کوچک اگر دارین بگین :تشویق:

mzjahromi
چهارشنبه 25 آبان 1384, 16:29 عصر
یه سر به اینجا بزن

mzjahromi
چهارشنبه 25 آبان 1384, 16:30 عصر
یه سر به اینجا بزن
http://www.barnamenevis.org/forum/showthread.php?t=30283

M.kavyani
پنج شنبه 26 آبان 1384, 00:39 صبح
یا سلام
این تاپیکی بود که قبلا" خودم بیان کردم و شما قرار شد که یه سورس برام بفرستید و لی چون دیدید دوستان دیگر جواب دادن از فرستادن سورس منصرف شدید و من هم از دریافتش. راستش باید بگم که سورس خیلی کامل بود. به عبارتی یه برنامه کامل بود که خیلی از کار ها رو میکرد و شامل منو هم بود. ممنون میشم اگر سورسی در اختیار قرار بدهید که ساده تر باشه و اینقدر سر در گم نشیم. ممنون
در پناه حق موفق و کامروا باشید.

mzjahromi
پنج شنبه 26 آبان 1384, 09:18 صبح
این کد تغییر رنگ یک منو


; PROGRAMMER Mohammad Zolghadri Jahromi created at 1377
.286
.MODEL COMPACT
.CODE

PUBLIC SEND_CRLF
;---------------------------------------------------;
;THIS PROGRAM SEND CURSOR TO NEW LINE ;
;---------------------------------------------------;

SEND_CRLF PROC
PUSH AX
PUSH DX
MOV AH,02
MOV DL,13
INT 21H
MOV DL,10
INT 21H
POP DX
POP AX
RET
SEND_CRLF ENDP
PUBLIC @CURSOR_RIGHT$qv
@CURSOR_RIGHT$qv PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,3
MOV BH,0
INT 10h
MOV AH,2
INC DL
CMP DL,79
JBE OK
CALL SEND_CRLF
JMP DONE
OK: INT 10H
DONE: POP DX
POP CX
POP BX
POP AX
RET
@CURSOR_RIGHT$qv ENDP
PUBLIC WRITE_ATTRIBUTE_N_TIMES
WRITE_ATTRIBUTE_N_TIMES PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV BL,DL
XOR BH,BH
MOV DX,CX
MOV CX,1
ATTR_LOOP:
MOV AH,8
INT 10H
MOV AH,9
INT 10H
CALL @CURSOR_RIGHT$qv
DEC DX
JNZ ATTR_LOOP
POP DX
POP CX
POP BX
POP AX
RET
WRITE_ATTRIBUTE_N_TIMES ENDP

PUBLIC @WRITE_PHANTOM$qv
;----------------------------------------------------------;
;input: ;
; DL:attribute ;
; CX:number of characters ;
;output: ;
; NONE ;
;----------------------------------------------------------;
@WRITE_PHANTOM$qv PROC
CALL WRITE_ATTRIBUTE_N_TIMES
RET
@WRITE_PHANTOM$qv ENDP

END

mzjahromi
پنج شنبه 26 آبان 1384, 09:19 صبح
اینهم کدی که از تو C++ کالش می کنه


extern void WRITE_PHANTOM(void);
void io::phantom(int x,int y,int num,char col)
{
gotoxy(x,y);
asm mov cx,num
asm mov dl,col
WRITE_PHANTOM();
}
//-------------------------------------------------------------------
void io::phantoms(int x,int y,int num,char col)
{
gotoxy(x,y);
for(int i=0;i<num;i++)
{
asm xor bh,bh
asm mov ah,08
asm int 10h
if(_AL!=' ')
{
num-=i;
num++;
putch(8);
break;
}
CURSOR_RIGHT();
}
asm mov cx,num
asm mov dl,col
WRITE_PHANTOM();
}

می تونی اون اسمبلیه رو هم بیاریش تو C++
ما بقی کاراش دیگه با خودتونه

mzjahromi
پنج شنبه 26 آبان 1384, 09:22 صبح
اینهم کدی که میتونه صفحه نمایش رو براتون بچرخونه
مورد استفاده اش اینه که میتونی بفهمی چطوری با حافظه صفحه نمایش کارکنی و وقتی یک منو می خواد Dropdown بشه چطوری می تونی محتویات زیرشو نگه داری که بعدش بتونی برشون گردونی


#include<bios.h>
#include<dos.h>
#include<conio.h>
void ror_screen(void);
void rol_screen(void);
void main(void)
{
do{
ror_screen();
delay(10);
}while(!bioskey(1));
getch();
do{
rol_screen();
delay(10);
}while(!bioskey(1));
}
void rol_screen(void)
{
int i,j,k;
unsigned int c;
asm{
mov ax,0b800h
mov es,ax
}
j=0;
for(i=0;i<25;i++)
{
asm{
mov bx,j
mov ax,es:[bx]
mov c,ax
}
for(k=0;k<80;k++,j=j+2)
asm{
mov bx,j
mov ax,es:[bx+2]
mov es:[bx],ax
}
asm{
mov ax,c
mov es:[bx],ax
}
}
}
void ror_screen(void)
{
int i,j,k;
unsigned int c;
asm{
mov ax,0b800h
mov es,ax
}
j=158;
for(i=0;i<25;i++)
{
asm{
mov bx,j
mov ax,es:[bx]
mov c,ax
}
for(k=0;k<80;k++,j-=2)
asm{
mov bx,j
mov ax,es:[bx-2]
mov es:[bx],ax
}
asm{
mov ax,c
mov es:[bx],ax
}
j+=320;
}
}

mzjahromi
پنج شنبه 26 آبان 1384, 09:24 صبح
اینها رو باید با هم ترکیب کنین تا بتونین منو بسازین ولی من منو آماده ندارم.
متاسفانه وقت این کار رو هم ندارم
اگه کد دیگه ای هم خواستین بگین شاید داشته باشم.

mzjahromi
پنج شنبه 26 آبان 1384, 10:21 صبح
اینو یه نگاه بندازین.سال 77 با C++ نوشتم. شاید زیاد جالب نباشه ولی قبول کنین همینشم خیلی کار برده

M.kavyani
جمعه 27 آبان 1384, 15:34 عصر
دستت درد نکنه بسیار بسیار ممنون

maryam safarzadeh
جمعه 27 آبان 1384, 18:19 عصر
ممنون از جوابهاتون