错误报告:
unit1.pas(184):variable'a' might not have been initialized 
(250):constant expression expected 
(294):constant expression expected 
(296):statement expected,but expression of type 'integer'found 
(297):':'expected but 'begin'found 
(298):undeclared identifier:'panel1' 
(299):undeclared identifier:'edit1' 
(299):missing operator or semicolon 
(299):statement expected,but expression of type 'string'found 
(300):undeclared identifier:'mediaplayer1' 
(302):undeclared identifier:'devicetype' 
(303):'('expected but ':' found 
(305):'('expected but ':' found 
(306):text after final 'end.'-ignored by compiler 
(63):unsatisfied forward or external declaration:'tform1.formdestroy' 
project1.dpr(5):could not compile used unit 'unit1.pas'
代码:
unit Unit1; interface uses 
  MMsystem,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, AxCtrls, OleCtrls, VCF1, StdCtrls, Buttons, MPlayer, ExtCtrls, 
  Tabs; 
  const IsAvi=0; 
        IsWav=1; 
        IsMidi=2; 
        IsOthers=3; 
        IsCD=4; 
type 
  TMSFRec=Record 
  Tracks:Byte; 
  Minutes:Byte; 
  Seconds:Byte; 
  Frames:Byte; 
  end; 
  TForm1 = class(TForm) 
    TabSet1: TTabSet; 
    Panel1: TPanel; 
    MediaPlayer1: TMediaPlayer; 
    Label1: TLabel; 
    Edit1: TEdit; 
    BitBtn1: TBitBtn; 
    BitBtn2: TBitBtn; 
    Timer1: TTimer; 
    OpenDialog1: TOpenDialog; 
    Label2: TLabel; 
    SpeedButton1: TSpeedButton; 
    SpeedButton2: TSpeedButton; 
    SpeedButton3: TSpeedButton; 
    SpeedButton4: TSpeedButton; 
    SpeedButton5: TSpeedButton; 
    SpeedButton6: TSpeedButton; 
    SpeedButton7: TSpeedButton; 
    SpeedButton8: TSpeedButton; 
    SpeedButton9: TSpeedButton; 
    SpeedButton10: TSpeedButton; 
    SpeedButton11: TSpeedButton; 
    SpeedButton12: TSpeedButton; 
    SpeedButton13: TSpeedButton; 
    SpeedButton14: TSpeedButton; 
    SpeedButton15: TSpeedButton; 
    SpeedButton16: TSpeedButton; 
    SpeedButton17: TSpeedButton; 
    SpeedButton18: TSpeedButton; 
    SpeedButton19: TSpeedButton; 
    SpeedButton20: TSpeedButton; 
    SpeedButton21: TSpeedButton; 
    SpeedButton22: TSpeedButton; 
    SpeedButton23: TSpeedButton; 
    SpeedButton24: TSpeedButton; 
    procedure BitBtn2Click(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
    procedure Timer1Timer(Sender: TObject); 
    procedure SpeedButton1Click(Sender: TObject); 
    procedure BitBtn1Click(Sender: TObject); 
    procedure TabSet1Change(Sender: TObject; NewTab: Integer; 
      var AllowChange: Boolean); 
    procedure FormDestroy(Sender: TObject);   private 
    { Private declarations } 
  public 
    { Public declarations } 
    CDTracksArray:array[1..24] of TSpeedButton; 
    CDPosition:Longint; 
    procedure InitCDTracksArrayData; 
  end; var 
  Form1: TForm1; implementation {$R *.dfm} 
procedure TForm1.InitCDTracksArrayData; 
var 
i:integer; 
begin 
CDTracksArray[1]:=SpeedButton1; 
CDTracksArray[2]:=SpeedButton2; 
CDTracksArray[3]:=SpeedButton3; 
CDTracksArray[4]:=SpeedButton4; 
CDTracksArray[5]:=SpeedButton5; 
CDTracksArray[6]:=SpeedButton6; 
CDTracksArray[7]:=SpeedButton7; 
CDTracksArray[8]:=SpeedButton8; 
CDTracksArray[9]:=SpeedButton9; 
CDTracksArray[10]:=SpeedButton10; 
CDTracksArray[11]:=SpeedButton11; 
CDTracksArray[12]:=SpeedButton12; 
CDTracksArray[13]:=SpeedButton13; 
CDTracksArray[14]:=SpeedButton14; 
CDTracksArray[15]:=SpeedButton15; 
CDTracksArray[16]:=SpeedButton16; 
CDTracksArray[17]:=SpeedButton17; 
CDTracksArray[18]:=SpeedButton18; 
CDTracksArray[19]:=SpeedButton19; 
CDTracksArray[20]:=SpeedButton20; 
CDTracksArray[21]:=SpeedButton21; 
CDTracksArray[22]:=SpeedButton22; 
CDTracksArray[23]:=SpeedButton23; 
CDTracksArray[24]:=SpeedButton24; 
for i:=1 to 24 do 
begin 
  CDTracksArray[i].visible:=false; 
end; 
end; 
procedure TForm1.BitBtn2Click(Sender: TObject); 
begin 
  if mediaplayer1.mode=mpplaying then 
  mediaplayer1.Close; 
  close; 
end; procedure TForm1.FormCreate(Sender: TObject); 
begin 
  InitCDTracksArrayData; 
  opendialog1.Filter:= 
  'AVI(*.avi)|*.avi|Wwave(*.wave)|*.wave|MIDI(*.mid)|*.mid|Other(*.*)|*.*'; 
end; procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
  case TabSet1.TabIndex of 
    IsCD: 
      begin 
      if MediaPlayer1.tag <>-1 then 
        begin 
          CDPosition:=MediaPlayer1.Position; 
          with TMSFRec(CDPosition)do 
          begin 
            Panel1.Caption:='曲目:'+IntToStr(Tracks)+',时间: '+IntToStr(Minutes)+':'+IntToStr(Seconds); 
          end; 
        end; 
      end; 
  IsWav,IsMidi,IsAvi,IsOthers: 
  begin 
  end; 
  end; 
end; procedure TForm1.SpeedButton1Click(Sender: TObject); 
var 
i:integer; 
a:integer; 
notcdflag:boolean; 
begin 
  for i:=1 to MediaPlayer1.Tracks do 
    if (Sender as TSpeedButton)=CDTracksArray[i] then 
    a:=i; 
    Panel1.Caption:='请稍等'; 
    Edit1.Text:='播放CD音乐'; 
    MediaPlayer1.DeviceType:=dtCDAudio; 
    MediaPlayer1.FileName:=''; 
    notcdflag:=false; 
    try 
    MediaPlayer1.Open; 
    MediaPlayer1.next; 
    MediaPlayer1.rewind; 
    except 
    notcdflag:=true; 
    end; 
    if notcdflag then 
    begin 
      MediaPlayer1.EnabledButtons:=[]; 
      Edit1.Text:='请装上CD盘片'; 
      ShowMEssage('不能打开CD,请装上CD盘片'); 
    end 
    else 
    begin 
      MediaPlayer1.EnabledButtons:=[btPause,btStop,btNext,btPrev,btEject]; 
      MediaPlayer1.TimeFormat:=tfTMSF; 
      with TMSFRec(cdposition)do 
        begin 
          Tracks:=a; 
          Minutes:=0; 
          Seconds:=1; 
        end; 
      MediaPlayer1.Position:=CDPosition; 
      MediaPlayer1.Play; 
      if mediaplayer1.mode <>mpPlaying then 
        begin 
          MediaPlayer1.Tag:=-1; 
          Panel1.Caption:='没有音乐可以播放'; 
          for i:=1 to 24 do 
            CDTracksArray[i].Visible:=false; 
        end 
      else 
        begin 
          label2.Visible:=true; 
          mediaplayer1.Tag:=0; 
          bitbtn2.Enabled:=false; 
          for i:=1 to mediaplayer1.Tracks do 
          cdtracksarray[i].visible:=true; 
          end; 
        end; 
end; procedure TForm1.BitBtn1Click(Sender: TObject); 
var 
cdloadflag:boolean; 
begin 
  case tabset1.TabIndex of 
    iscd: 
      begin 
        cdloadflag:=true; 
        TabSet1change(sender,tabset1.TabIndex,cdloadflag); 
      end; 
    isavi,iswav,ismidi,isothers: 
      begin 
        opendialog1.FilterIndex:=tabset1.TabIndex+1; 
        if opendialog1.Execute then 
          begin 
            with mediaplayer1 do 
              begin 
                filename:=opendialog1.filename; 
                edit1.text:=extractfilename(opendialog1.filename); 
                autoenable:=true; 
                open; 
                displayrect:=rect(2,2,0,0); 
                panel1.Caption:='请播放'; 
              end; 
          end; 
      end; 
    end; 
end; 
procedure TForm1.TabSet1Change(Sender: TObject; NewTab: Integer; 
  var AllowChange: Boolean); 
var 
i:integer; 
notcdflag:boolean; 
begin 
  mediaplayer1.Tag:=0; 
  if mediaplayer1.mode=mpplaying then 
    mediaplayer1.close; 
  mediaplayer1.enabledbuttons:=[]; 
  bitbtn1.Enabled:=true; 
  case NewTab of 
    IsCD: 
      Panel1.caption:='请稍等'; 
      edit1.text:='播放CD音乐'; 
      mediaplayer1.devicetype:=dtcdaudio; 
      mediaplayer1.filename:=''; 
      notcdflag:=false; 
      try 
      mediaplayer1.open; 
      mediaplayer1.next; 
      mediaplayer1.rewind; 
      except 
      notcdflag:=true; 
      end; 
      if notcdflag then 
        begin 
          mediaplayer1.enabledbuttons:=[]; 
          edit1.text:='请装上CD盘片'; 
          showmessage('不能打开CD,请装上CD盘片'); 
        end 
      else 
        begin 
          mediaplayer1.enabledbuttons:=[btPause,btStop,btNext,btPrev,btEject]; 
          mediaplayer1.timeformat:=tfTMSF; 
          with TMSFRec(CDPosition)do 
            begin 
            Tracks:=1; 
            Minutes:=0; 
            Seconds:=1; 
            end; 
          MediaPlayer1.Position:=CDPosition; 
          MediaPlayer1.play; 
          if MediaPlayer1.mode <>mpPlaying then 
            begin 
            MediaPlayer1.tag:=-1; 
            Panel1.caption:='没有音乐可以播放'; 
            for i:=1 to 24 do 
              CDTracksArray[i].visible:=false; 
            end 
          else 
            begin 
            label2.visible:=true; 
            MediaPlayer1.tag:=0; 
            bitbtn2.enabled:=false; 
            for i:=1 to MediaPlayer1.Tracks do 
              cdtracksarray[i].visible:=true; 
            end; 
          end; 
        end; 
      IsAvi,IsWav,IsMidi,IsOthers: 
      begin 
        Panel1.caption:='播放区'; 
        Edit1.text:='请打开文件'; 
        with MediaPlayer1 do 
        begin 
          DeviceType:=dtAutoSelect; 
          Close; 
        end; 
      end; 
    end; 
end; procedure TForm1.FormDestroy(Sender: TObject); 
begin 
  MediaPlayer1.Close; 
end; end.

解决方案 »

  1.   

    unit1.pas(184):variable'a' might not have been initialized //这不是错,是提示
    (250):constant expression expected 
    (294):constant expression expected 
    (296):statement expected,but expression of type 'integer'found 
    (297):':'expected but 'begin'found 
    (298):undeclared identifier:'panel1' //未定义'panel1' ,估计是界面问题
    (299):undeclared identifier:'edit1' //同上
    (299):missing operator or semicolon 
    (299):statement expected,but expression of type 'string'found 
    (300):undeclared identifier:'mediaplayer1' 未定义
    (302):undeclared identifier:'devicetype' 未定义
    (303):'('expected but ':' found 
    (305):'('expected but ':' found 
    (306):text after final 'end.'-ignored by compiler 
    (63):unsatisfied forward or external declaration:'tform1.formdestroy' 
    project1.dpr(5):could not compile used unit 'unit1.pas' 其他应该都是代码问题,格式问题,或者修改一个地方后,就好了,不看了
      

  2.   

    可我前面也有使用到这些如'mediaplayer1' 'devicetype' ,前面都可以的,为什么这里出错了
      

  3.   

    unit1.pas(184):variable'a' might not have been initialized 
    (250):constant expression expected 
    (294):constant expression expected 
    (296):statement expected,but expression of type 'integer'found 
    (297):':'expected but 'begin'found    //估计是少了一个end或者begin
    (298):undeclared identifier:'panel1'   //放一个panel上去,以后再根据情况来调整位置
    (299):undeclared identifier:'edit1'   //放一个panel上去,以后再根据情况来调整位置
    (299):missing operator or semicolon     //
    (299):statement expected,but expression of type 'string'found 
    (300):undeclared identifier:'mediaplayer1' //没有引用mediaplayer吧
    (302):undeclared identifier:'devicetype'    //声明一个就是了
    (303):'('expected but ':' found                //
    (305):'('expected but ':' found 
    (306):text after final 'end.'-ignored by compiler   //前面有没有配对的begin或end
    (63):unsatisfied forward or external declaration:'tform1.formdestroy' //前后声明不一致
    project1.dpr(5):could not compile used unit 'unit1.pas' 
      

  4.   

    找出问题了,少了个BEGIN,所以错了一片