Arsip: memunculkan nilai tertinggi yang berada di string grid

 
user image
more 13 years ago

radhutz

dear delphiers,, saya mohon bantuannya.. saya mempunyai stringgrid yang terdiri dari 2 kolom.. kolom pertama bertuliskan nama daerah dan kolom 2 berisikan nilai-nilai berupa formatfloat('#,#.00')/atau nilai yang dipisah berdasarkan ribuan untuk masing2 daerah.. kemudian saya memiliki 2label.. dari seluruh nilai yang ada di stringgrid tersebut, saya ingin memunculkan di 2label tersebut daerah yang memiliki nilai tertinggi dan nilainya itu sendiri, yang datanya diambil dari stringgrid itu.. apakah bisa dalam bentuk formatfloat karena saya pernah melakukan perhitungan biasa dengan nilai formatfloat, namun hasilnya tidak keluar atau error.. dan bagaimana agar 2 label tersebut memunculkan daerah dan nilai yang tertinggi?? terima kasih banyak atas bantuannya..
user image
more 13 years ago

radhutz

semoga pertanyaan saya dimengerti..
user image
more 13 years ago

herux

Pertanyaan sudah dimengerti!!. tapi sebaiknya anda jelaskan apa yg sudah anda lakukan. dan apa error yg terjadi. kalo bisa contoh sedikit scriptnya ..
user image
more 13 years ago

onlucid

pertama2 nilai2 harus dikonversi ke integer dulu. tapi delphi itu mengubah format berdasarkan regional setting. jadi supaya aman ya pake ini dulu di OnFormShow: ThousandSeparator:=','; DecimalSeparator:='.'; trus buat fungsi konversi ke integer

function TForm1.tonumber(S: String): int64;
var
  DestI: Integer;
  SourceI: Integer;
  O: String;
begin
  if copy(S,length(S)-2,3)='.00' then S:=copy(S,1,length(S)-3);
  SetLength(O, Length(S));
  DestI := 0;
  for SourceI := 1 to Length(S) do
    if S[SourceI] in ['0'..'9'] then
    begin
      Inc(DestI);
      O[DestI] := S[SourceI]
    end;
  SetLength(O, DestI);
  if trim(O)='' then O:='0';
  result:=strtoint(O);
end;
trus command untuk ambil terbesar

procedure TForm1.Button1Click(sender: TObject);
var i: integer; dterbesar: string; nterbesar: int64; 
begin
nterbesar:=0;
for i:=1 to StringGrid1.RowCount-1 do  
  if tonumber(StringGrid1.Cells[1,i])>terbesar then
    begin
    dterbesar:=StringGrid1.Cells[0,i];
    nterbesar:=tonumber(StringGrid1.Cells[1,i]);
    end;
// set label1 & label2 sebagai namadaerah & nilai yang terbesar
label1.Caption:=dterbesar;
label2.Caption:=formatfloat('#,#.00',nterbesar);
end;
semoga membantu....
user image
more 13 years ago

onlucid

jangan lupa tambahkan : function tonumber(S: String): int64; pada public declaration
more ...
  • Pages:
  • 1
Share to

Random Topic

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