linthoo Skrevet 11. april 2007 Del Skrevet 11. april 2007 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 ------- 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
tasle Skrevet 11. april 2007 Del Skrevet 11. april 2007 (endret) 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 11. april 2007 av tasle Lenke til kommentar
linthoo Skrevet 11. april 2007 Forfatter Del Skrevet 11. april 2007 åja, det var såpass enkelt tusen takk :> satt å stussa på om det var mulig å skrive at i den proceduren, men er det mulig å gjøre det på måten jeg sa også? eller tenker jeg helt feil? Lenke til kommentar
tasle Skrevet 11. april 2007 Del Skrevet 11. april 2007 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
sinnaelgen Skrevet 11. april 2007 Del Skrevet 11. april 2007 (endret) 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 11. april 2007 av elg-elg123 Lenke til kommentar
tasle Skrevet 11. april 2007 Del Skrevet 11. april 2007 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
linthoo Skrevet 11. april 2007 Forfatter Del Skrevet 11. april 2007 stemmer det skal ikke bruke dette til noe var bare for å lære litt kanskje noen som har oppgaver man kan gjøre for å lære mer? evt tutorials? takk for svar ;> Lenke til kommentar
tasle Skrevet 11. april 2007 Del Skrevet 11. april 2007 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
linthoo Skrevet 12. april 2007 Forfatter Del Skrevet 12. april 2007 ja hvorfor ikke takk takk ;> Lenke til kommentar
sinnaelgen Skrevet 12. april 2007 Del Skrevet 12. april 2007 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
linthoo Skrevet 13. april 2007 Forfatter Del Skrevet 13. april 2007 tips til det bursdag beregnings programmet ? Lenke til kommentar
tasle Skrevet 13. april 2007 Del Skrevet 13. april 2007 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... Lenke til kommentar
sinnaelgen Skrevet 14. april 2007 Del Skrevet 14. april 2007 når man beregner med år datoer o.s.v hvordan kan man ta hensyn til skuddår. skuddår har 366 dager mens et vanlig år har 365 dager. hvordan vet man hvor mange skuddår det er mellom 2 datoer ? altså hvis man f. eks. er 10 år er man 3650 dager eller 3658 dager ? (8 av dagen utgjør skuddårsdager ) Lenke til kommentar
tasle Skrevet 14. april 2007 Del Skrevet 14. april 2007 DaysBetween tar hensyn til årets dagantall, om det er skuddår. I andre sammenhenger, om man bare er interessert i et enkelt år, kan man sjekke om året er et skuddår med IsLeapYear. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå