Gå til innhold

Anbefalte innlegg

Hvordan skal jeg få dette programmet til å fungere?

Feilen er vist med

Label1.Caption := Edit1;

 

Poenget her er og trykke på button1 slik at det kommer et random tall

i label en, men først skal man fylle inn et tall i Edit1. Om man treffer riktig tall

skal label2 vise CORRECT, om det er feil skal det stå WRong.

 

Noen som vet hva jeg gjør galt?

Første gang jeg skriver noe selv i delphi :p

-------

 

 

 

procedure TForm3.Button1Click(Sender: TObject);

 

var

T : Integer;

begin

T := Random(10);

Label1.Caption := IntToStr(T);

 

 

end;

 

procedure TForm3.Edit1Change(Sender: TObject);

var

begin

Label1.Caption := Edit1;

if True then Label2.Caption :='CORRECT'

else Label2.Caption :='Wrong'

end;

 

end.

Lenke til kommentar
Videoannonse
Annonse

Hvis jeg forstår deg rett, kan du slette ut prosedyra TForm3.Edit1Change. Istedenfor skriver du denne lille programsnutten i TForm3.Button1Click :

procedure TForm3.Button1Click(Sender: TObject);
var
 T : Integer;
begin
 T := Random(10);
 Label1.Caption := IntToStr(T);

 if Label1.Caption = Edit1.Text then
   Label2.Caption:= 'Korrekt'
 else
   Label2.Caption:= 'Feil';
end;

 

Bruken blir å skrive inn et tall i editboksen, deretter å trykke på Button1. Svar blir da Korrekt eller feil, alt ettersom hva som står i Label1 sin caption.

 

Edit: Glemte en apostrof i 'Feil;. Skal være 'Feil';

Endret av tasle
Lenke til kommentar

Logikken din var nok litt "bakvendt", ved å bruke den prosedyra for Edit1.Change. Denne prosedyra blir kalt opp for hvert tegn (bokstav eller siffer) som du skriver inn, og det er ikke nødvendig.

Algoritmen blir noe sånn som dette:

 

1)

Skriv inn et tall i editboksen.

 

2)

Gi "signal" (ved button klikk) om å lage og sammenligne et slumpetall , med teksten (tallet) som er i editboksen.

 

3) Hvis de to verdiene er like, skriv ut "Korrekt" i en label, hvis ikke - skriv ut "Feil" i den samme labelen.

 

Som du ser, passer det ikke med å ha en separat prosedyre som kjøres for hvert tegn du skriver inn i editboksen. Med andre ord, den editboksen skal ikke sjekke hvert tegn "dynamisk". Den skal være "statisk".

 

På den andre siden, hvis du vil sjekke hvert enkelt tegn i editboksen som en slags feilkontroll, om det tegnet er en bokstav eller et siffer, da hadde den vært berettiget, men ikke i slik form som du hadde.

 

Forøvrig, velkommen til programmeringens verden ! :)

Lenke til kommentar

det går an å gjøre det så elegant at man får opp resultatet bare med å trykke på en bestemt tast( tegn) i edit boksen . f.eks enter

 

 

 

procedure TForm3.Edit1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

var

T : Integer;

 

begin

if key = 13 then begin // 13 er koden for enter tasten

T := Random(10);

Label1.Caption := IntToStr(T);

 

if Label1.Caption = Edit1.Text then

Label2.Caption:= 'Korrekt'

else

Label2.Caption:= 'Feil';

end;

 

 

end;

 

da trenger man ikke å "klikke" på noen knapp

som alternativ kan man bruke keyup eller keypress

on klikk er bare respons fra musen.

Endret av elg-elg123
Lenke til kommentar
det går  an å gjøre det så elegant  at  man får opp resultatet  bare  med  å trykke på en bestemt  tast( tegn)  i edit boksen . f.eks enter

 

 

 

procedure TForm3.Edit1KeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

var

T : Integer;

 

begin

if  key = 13 then begin // 13 er koden  for  enter tasten

T := Random(10);

Label1.Caption := IntToStr(T);

 

if Label1.Caption = Edit1.Text then

  Label2.Caption:= 'Korrekt'

else

  Label2.Caption:= 'Feil';

end;

 

 

end;

 

da trenger man ikke å "klikke" på noen  knapp

som alternativ  kan man bruke keyup eller keypress

on klikk er bare respons fra musen.

8362597[/snapback]

 

 

Det kan gjøres enda litt enklere, om man vil. Poenget er at linthoo kanskje ville ha den knappen med, i alle fall eksperimentere litt og få erfaring. Ikke ødelegg den opplevelsen for han ! :)

Lenke til kommentar

Du kan jo lage et lite program som regner ut hvor mange dager gammel du er. En editboks for fødselsdatoen din, og en knapp for Beregn + en label som viser hvor gammel du er (antall dager fra fødselsdatoen til idag).... Evn. også en annen label som viser hvor mange dager det er til din neste bursdag, fra dagens dato.

Hint: Date, DaysBetween osv. (unit: DateUtils).

 

Men det kommer jo an på hva du selv har interesse for. Er du interessert i sportsfiske, eksempelvis, kan du lage et program som viser k-faktoren for en fisk (http://www.fjellogfiske.no/linkesider/artikler/kfaktor/kfaktor.asp?id=417)

Lenke til kommentar

det var nå bare et forslag som også kan prøves ut.

 

her er et nytt.

hvis man ønsker å ha en slags kontroll om hva som skjer i programmet f.eks til feilsøkning så bruker jeg å legge inn :

 

showmesssage ('tekst'); på diverse steder i programmet

 

'tekst' er den teksten man selv velger

 

da kommer det opp en dialog boks med teksten og en 'ok' knapp

Lenke til kommentar

Du trenger en editboks og en button, samt en label. Skriv inn fødselsdagen i editboksen og klikk på knappen. Da skal antall dager mellom i dag og fødselsdagen din beregnes (differansen mellom din fødselsdag og i dag), og resultatet (antall dager) skrives i labelen.

 

Evn., som elg-elg123 nevnte, du kan også skrive ut antall dager gammel i en meldingsboks vha. ShowMessage. Du har allrede fått et lite hint om hva du kan bruke for å beregne antall dager... :innocent:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...