04. september 2002 - 21:13Der er
13 kommentarer og 1 løsning
Forløbende nummer
Hej, jeg har en knap som skal opdatere et nummer (lægge en til) når der trykkes på den og vise dette tal i en edit box. Har fx. prøvet med Edit2.text:= IntToStr(1 + (StrToInt(Edit2.text))); men det virker ikke.
var I, Code: Integer; S: String; begin S := Edit2.Text; Val(S, I, Code); if Code = 0 then begin Inc(I); Edit2.Text := IntToStr(I); end else ShowMessage('Du behøver da vist ikke lære alfabetet, men tallene burde du kigge lidt mere på!'); end;
Jeg undskylder at jeg ikke har fået sagt tydligt nok hvad det er jeg mener og at jeg har sat for høje point. Jeg skal ikke selv skrive starte værdien . Har prøvet med dette men ved ikke om der findes "null" i delphi og om det er sådan man sætter startværdien til 0. if edit2.text = null Edit2.text:= IntToStr(0); else edit2.Text := inttostr(strtoint(edit2.Text)+1);
Du får lige noget kode med et par kommentarere eller 2! ;)
//Nu skal vi prøve noget. Sker der en fejl, så stopper programmet ikke bare, men kører videre efter at det enten har færdiggjort finally eller except try Edit2.Text := IntToStr(StrToInt(Edit2.Text)+1); //Her kan vores fejl opstå except //Hvis der sker en fejl, så køres det som står inden for except Edit2.Text:= '0'; //Efter som der er sket en fejl sætter vi bare teksten i edit2 til at være '0' end; //og de levede lykkeligt til deres dages ende! ;)
Til hermandsen Mange tak men programmet går ned... men der står 0 næste gang man køre det. Jeg kan godt se hvad du mener med except og det burde vel også virke. Jeg har prøvet at teste om værdien er null med en if sætning for at få den til at sætte til 0 hvis der ingen værdi er men kan ikke få det til at virke.
procedure TForm1.Button2Click(Sender: TObject); begin if Edit2.text = null Edit2.Text:= '0'; //Her melder den fejl else Edit2.Text := IntToStr(StrToInt(Edit2.Text)+1); end. //Slutter denne "end" if sætningen eller skal den ikke være der. end; end.
I Delphi er der ikke noget der hedder null, jeg tror faktisk det er nil du tænker på, og det har egentlig ikke noget med sagen at gøre! :)
En tom streng hedder bare ''
I Delphi angiver man strenge med '<streng>' 'Hey, her har vi en streng!'.
Jeg kommenterer lige din procedure først...
procedure TForm1.Button2Click(Sender: TObject); begin if Edit2.text = null //Hvis det her var rigtigt skulle der være et semikolon for enden. Edit2.Text:= '0'; //Her melder den fejl. //Ja, men grunden til at den melder fejlen der er på grund af en fejl fra forrige linie. else //For at have else, skal du også have et then. Det hedder "if, then, else" i Delphi. Edit2.Text := IntToStr(StrToInt(Edit2.Text)+1); //Den her burde faktisk være god nok, med mindre der sker en konverteringsfejl fordi at Edit2.Text f.eks. indeholder et bogstav. end. //Slutter denne "end" if sætningen eller skal den ikke være der. //Der skal faktisk først være "end." (med punktum) til sidst, alle andre end's skal være "end;" (med semikolon). Dog skal der i dette tilfælde ikke være noget end, da du ikke har et begin ud over det der starter proceduren... end; //Det her end; slutter proceduren end. //Slut på den unit
Jeg vil anbefale dig at låne Delphi 4 Programmering af Per Amdal Steffensen på biblioteket. Den er utrolig godt skrevet og før du ved af det smider du rundt omkring dig med pointere, dll-filer og dynamiske array'es...
Jeg har faktisk lige lånt den da jeg havde brug for at få opdateret min viden omkring OOP (Objekt Orienteret Programmering), og selv om det er anden gang jeg læser den, synes jeg stadig det er god og lærrig bog... Den er virkelig et "must" til alle danske Delphi-programmørere, og spørg bare hvor mange af Ekspertens Delphi-brugere der ikke har haft fingrene i den bog... :)
Hvis du vil kan du kontakte mig på ICQ eller MSN, så skal jeg gerne hjælpe dig videre med dit projekt... Du kan finde mine info under min bruger-profil! ;)
//hermandsen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.