Arsip: [warning] : Variable not have been initialized

 
user image
more 12 years ago

jajang

procedure TfPenyewaanFilm.dbeJumlahExit(Sender: TObject);
var i,b : Integer;
begin
   for i := 1 to sgPenyewaan.RowCount+1 do
   b := sgPenyewaan.RowCount-1;       //b itu jumlah recordcount
   i := 1;                            //i itu jumlah penjumlahan tambah 1 pada recordcount
  while i <= sgPenyewaan.RowCount-1  do
        begin
          //sgPenyewaan.Cells[0,b] := dbeNoSewa.Text;
          sgPenyewaan.Cells[0,i] := IntToStr(i);
          sgPenyewaan.Cells[1,b] := dbeKodeFilm.Text ;
          sgPenyewaan.Cells[2,b] := dbeJudulFilm.Text ;
          sgPenyewaan.Cells[3,b] := dbeHarga.Text;
          sgPenyewaan.Cells[4,b] := dbeQty.Text;
          sgPenyewaan.Cells[5,b] := dbeJumlah.Text;
          Inc(i); //increment
        end;
        sgPenyewaan.RowCount := sgPenyewaan.RowCount + 1;
end;
code diatas itu, ketika keluar dari dbeJumlah maka scara otomtis langsung nambahke stringgrid,, ! tapi yang saya aneh ko ada warning
[Warning] PenyewaanFilm.pas(135): Variable 'b' might not have been initialized
knpa ya pa ada yang salah dalam penulisan code'ya ?!
user image
more 12 years ago

pebbie

karena b di assign di dalam for
user image
more 12 years ago

deLogic

nambahin rekan @pebbie: karena nilai b diberikan didalam perulangan for, dan 'compiler', dengan algoritma dan kalkulasi tertentu, memperhitungkan bahwa terdapat kemungkinan perulangan for tersebut tidak dijalankan sehingga terdapat kemungkinan pemberian nilai ke variabel b tidak dilakukan. Itulah mengapa timbul warning tersebut. Lain hal nya misalnya apabila menggunakan perulangan repeat..until, warning tersebut tidak muncul. Sudah tahukan bedanya repeat..until, for..to..do / for..downto..do, for..in dan while..do ? :D
user image
more 12 years ago

jajang

trus bagaimana cara mengsiasati'ya ?
user image
more 12 years ago

ImanD

@jajang: trus bagaimana cara mengsiasati'ya ?
si b nya kasih nilai awal az sebelum for i := 1 to sgPenyewaan.RowCount+1 do . @pebbie n @deLogic sip...sip... saya setuju sekali dengan jawaban dan penjelasannya. cuman ada sedikit yg mo di tanyain ke si Compiler nech..... sample =====

procedure TForm1.FormCreate(Sender: TObject);
var
  i,j,b: Integer;
begin
  j:=0; // value j ganti dengan nilai >=1 pun sama hasilnya
  for i:=1 to j do
    b:=i;
end;
ini pesen dari si kang kompailer: [Hint] Unit1.pas(31): Value assigned to 'b' never used
user image
more 12 years ago

deLogic

@ImanD: Karena variabel b, setelah diberikan nilainya didalam perulangan for..do, tidak pernah digunakan lagi dalam cakupan blok kode tersebut (didalam procedure FormCreate). Coba misalnya, di bagian bawah, tambahkan kode ShowMessage(IntToStr(b)); Apa yang akan terjadi ?
user image
more 12 years ago

ImanD

@deLogic: @ImanD: Karena variabel b, setelah diberikan nilainya didalam perulangan for..do, tidak pernah digunakan lagi dalam cakupan blok kode tersebut (didalam procedure FormCreate). Coba misalnya, di bagian bawah, tambahkan kode ShowMessage(IntToStr(b)); Apa yang akan terjadi ?
saya sangat setuju juga dengan penjelasan mas bayu......:D yg lebih saya maksud yg ini lho...
@deLogic: nambahin rekan @pebbie: karena nilai b diberikan didalam perulangan for, dan 'compiler', dengan algoritma dan kalkulasi tertentu, memperhitungkan bahwa terdapat kemungkinan perulangan for tersebut tidak dijalankan sehingga terdapat kemungkinan pemberian nilai ke variabel b tidak dilakukan. Itulah mengapa timbul warning tersebut. :D
user image
more 12 years ago

deLogic

si compiler, mungkin, menggunakan konsepsi perulangan for dalam memberikan warning "Variable not have been initialized". Lalu pada kasusnya kang ImanD, kenapa yang ditampilkan adalah hint "never used", bukan warning "not have been initialized"? Mungkin ada prioritas tertentu yang dilakukan oleh compiler dalam menyampaikan hint / warning / error. Untuk lebih jelasnya, kita harus tahu bagaimana compiler Delphi bekerja, dan itu tidak mudah.
user image
more 12 years ago

ImanD

saya sangat setuju juga dengan pernyataan dan penjelasan @deLogic, thanks buanyaaaaaaak. makanya saya tadi kutip:
@ImanD: . . . @pebbie n @deLogic sip...sip... saya setuju sekali dengan jawaban dan penjelasannya. cuman ada sedikit yg mo di tanyain ke si Compiler nech..... . . .
sip sip sip, mas bayu is the best... dah lama nich ga nongol disini makanya jadi kangen nech.
user image
more 12 years ago

bagussb

wah... jadi tentang compiler nih... mungkin compilernya lagi pusings.. jadi milih2 mana yang mau dimunculins.. :-D btw.. buat @jajang... kenapa harus dilooping assign value buat b nya... kalo for-nya diilangin gimana.. :-D
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com