IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @281
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Intenzívne zoštíhlenie

Chudnite pohodlne a účinne. Jedinečná technológia ktorá funguje. www.inalinia.sk

Neuveriteľne lacná .sk doména

Rýchla registrácia domén za výborné ceny. www.exohosting.sk

Získajte bonus 50 €

Prejdite na ktorýkoľvek program s platbou na faktúru. Len cez e-shop. www.o2.sk

Aktuálna novinka

Zisti pravdu o stravovaní! Vyšetrovanie odhalilo tajomstvo dokonalého tela. www.news2channel.net

Postavil si dom za 3 600 €.

Simon Dale z Walesu sa rozhodol postaviť pre svoju rodinu ekologický mojdom.zoznam.sk

Zoradenie údajov v StringGrid

Zaslať odpoveď
AutorSpráva
mariachi
Užívateľ
Užívateľ

Založený: 10.09.2008
Príspevky: 103
Bydlisko: Bratislava

PríspevokZaslal: Ne 10.05.09 12:35Odpovedať s citátomNávrat hore

Zdravím. Potreboval by som pomôcť.
Na formulári mám jeden StringGrid (3sx11r) a potreboval by som zoradiť riadky podľa hodnoty v jednom stĺpci. To by nebol až taký problém pretože sa to dá spraviť jednoducho cez StringList.Short, ide ale o to že sú to čísla a ono ich zoraďuje "abecedne" a ja potrebujem aby ich zoraďovalo podľa veľkosti...
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Ne 10.05.09 13:38Odpovedať s citátomNávrat hore

Ja by som to spravil takto:
Všetky čísla si uložiš do poľa. Potom pole zotriediš a takto zotriedené hodnoty od najväčšieho zapíšeš do StringGird.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
mariachi
Užívateľ
Užívateľ

Založený: 10.09.2008
Príspevky: 103
Bydlisko: Bratislava

PríspevokZaslal: Ne 10.05.09 19:09Odpovedať s citátomNávrat hore

Lenže to mi zoradí iba čísla, ale mená hráčov ostanú nezoradené.....
Skúsil som to dvojrozmerným poľom, avšak kvôli menám hráčov to musí byť pole stringov, takže keď chcem zoradiť musím používať konverziu typov. Program mi to v pohode skompiluje, ale keď to chcem spustiť tak vypíše chybu. Procedúra vypadá asi takto:
citácia:
procedure TTop10.Zorad;
var i,j,pom: integer;
opakovat: boolean;
pole: array [2..10,1..10] of string;
begin
for i := 1 to 2 do
for j:= 1 to 10 do
pole[i,j] := Najlepsi.Cells[i,j];

repeat
opakovat := FALSE ;
for i := 1 to 10 do
if strtoint(pole[2,i]) > strtoint(pole[2,i+1]) then
begin
opakovat := TRUE;
pom := strtoint(pole[2,i+1]);
pole[2,i+1] := pole[2,i];
pole[2,i] := inttostr(pom);
end;
until(opakovat = FALSE);


for j := 1 to 10 do
for i:= 1 to 2 do
StringGrid1.Cells[i,j] := pole[i,j];
end;
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Ne 10.05.09 19:38Odpovedať s citátomNávrat hore

No myslím, že to ide aj trošku ľahšie. Skús si prerobiť svoj program takto:
Zadefinuj si record, kde budú mená hráčov a ich skóre:

kód:
type
TTabulka = record
  poradie: integer;
  meno: string[100];
end;


a deklaruj pole recordov:

kód:
var
  Tabulka: array[1..10] of TTabulka;


Potom, ako som vyššie popísal, zotriediš prvky v poli Tabulka (pričom pristupuješ k poradiu, teda takto: Tabulka[i].poradie). A po zotriedení budeš mať zotriedené aj mená.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd