home *** CD-ROM | disk | FTP | other *** search
- {
- -> I'm trying to use the GetImage and PutImage commands from Turbo
- -> Pascal
-
- Okay.. did you declare a varible that would hold the size you needed? I
- have a little program I wrote to draw a musical staff and put the notes
- up randomly so that I can practice reading music..
- }
-
- Program MusicNotes;
-
- Uses
- Crt,
- Dos,
- Graph,
- XtraDos;
-
- const
- NotePos : Array[1..11] Of Integer =
- (164,179,194,209,224,239,254,269,284,299,314);
- Note : Array[1..11] Of Char =
- ('G','F','E','D','C','B','A','G','F','E','D');
-
- Procedure Beep;
-
- begin
- sound(600);
- delay(100);
- nosound;
- end;
-
- var
- CallUnit : CallH;
- Key : Char;
- P : Pointer;
- Size : Word;
- Y, X,
- MaxX, MaxY,
- grMode,
- grDriver : Integer;
-
- Begin
- grDriver := Detect;
- InitGraph(grDriver, grMode,'D:\bp\bgi');
- MaxX:=GetMaxX;
- MaxY:=GetMaxY;
- SetColor(white);
- Circle(15,15,15);
- FloodFill(15,15,white);
- Size:=ImageSize(0,0,30,30);
- GetMem(P,Size);
- getImage(0,0,30,30,P^);
- cleardevice;
- Y:=((MaxY Div 2)-60);
- For X:=1 To 5 Do
- Begin
- Line(0,Y,MaxX,Y);
- Y:=Y+30;
- End;
- Randomize;
- Repeat
- X:=Random(11)+1;
- PutImage(320,(NotePos[X]-15),P^,ORPut);
- Repeat
- Key:=Char(CallUnit.KeyReturn);
- Until Key=Note[X];
- Beep;
- PutImage(320,(NotePos[X]-15),P^,XOrPut);
- If (X/2)=(X Div 2) Then
- Line(290,NotePos[x],350,NotePos[x])
- Else
- If X>1 Then
- Line(290,NotePos[x-1],350,NotePos[x-1]);
- Until 3=2;
- End.
-
- The important part is the SIZE=.. Use that line to create a varbible
- buig enough to hold the image.