webForumDet fria alternativet

problem.....

8 svar · 228 visningar · startad av Alpha II

Alpha IIMedlem sedan maj 20002 579 inlägg
#1

Vill skriva poängen man har i mitt spel med bildsiffror.
Om poängen är 999,232,424 hur vet jag då att först ska bild 9 målas sen 9, 9, 2, 3 , 2 osv?

yohpopsMedlem sedan feb. 20011 102 inlägg
#2

Du gör en loop som går igenom talet siffra för siffra och väljer bild utefter det.

ex.

lngpoäng=999098
for i = 1 to len(lngpoäng)
lngbild = mid(lngpoäng,i,1)'Här hämtas siffran på platsen i i talet lngpoäng.
next i

Alpha IIMedlem sedan maj 20002 579 inlägg
#3

fins ju ingen funktion som heter mid() :(

agneta_rungMedlem sedan juli 2002138 inlägg
#4

Jag hittar inte heller någon funktion som heter mid...

Så här nå'nting skulle jag göra:

procedure RitaPoangBilder(Poang: integer);
  procedure RitaBild1;
  begin
    ShowMessage('Bild1')
  end;
  procedure RitaBild2;
  begin
    ShowMessage('Bild2')
  end;
  
var
  i: integer;
  PoangStr: string;
begin
  PoangStr := IntToStr(Poang);
  for i := 1 to Length(PoangStr) do
    case StrToInt(PoangStr[i]) of
      1: RitaBild1;
      2: RitaBild2;
      // etc
    end
end;
UlfTMedlem sedan maj 20016 050 inlägg
#5

Angående "Mid()", jag tror yohpops missade att det är ett Delphi-problem. "Mid()" finns i VB.

agneta_rungs kod skulle jag vilja skriva om:

procedure RitaPoangBilder(Poang: integer);
  
var
  i: integer;
  PoangStr: string;
begin
  PoangStr := IntToStr(Poang);
  for i := 1 to Length(PoangStr) do
    case StrToInt(PoangStr[i]) of
      1: ShowMessage('Bild1');
      2: ShowMessage('Bild2');
      // etc
    end
end;

Det finns ju ingen anledning att skriva flera procedurer som alla gör samma sak ;)

BeatboxMedlem sedan okt. 20012 496 inlägg
#6

Det finns en väldigt fin komponent som heter "ImageList" som funkar som en array av bilder. Du skulle kunna indexera arrayen mha siffran som du får fram ur strängen på ovanstående sätt.

Alpha IIMedlem sedan maj 20002 579 inlägg
#7

Finns det nån funktion som fyller upp strängen med nollor så att om poängen är 12 så blir score 0000012? Eller måste man programmera ihop nån liten kod som fixar det?

BeatboxMedlem sedan okt. 20012 496 inlägg
#8

Då är det väl enklare att börja i slutet på strängen och gå åt andra hållet till den är slut.

jtMedlem sedan juni 2000326 inlägg
#9

För att fylla upp strängen med nollor kan du använda Format.

const
Nr = 12;
begin
ShowMessage(format('%.7d',[Nr]));
end;

Genererad på 497 ms · cache AV · v20260730165559-full.f96bc7eb