jeg er lige begyndt på delphi, og er ikke den store verdensmester i det.
Jeg har en lommeregner som består af 3 edit. felter, hvor man i de 2 første skriver tallene ind, og i den trejde, vises svaret. Jeg har lavet knapper til tallene 0,1,2,3,4,5,6,7,8,9 - alle disse virker så i edit1.text feltet. Men tænkte på om man så ikke kunne lave en knap, som skiftede over til edit2.text feltet?
Til vallemanden.. Stort tak for din hjælp.. så skifter den ned i boksen, hvad kan jeg så gøre for at min talknapper også virker der?? Min kode ser således ud:
I dine knapper 0 til 9 skriver du i hint feltet 0 ved knap 0, 1 ved knap 1 osv. Alle 10 tal knappers OnClick skal pege på samme procedure dvs. Button4Click, alle andre OnClick procedurer du har lavet til tal knapperne kan du slette.
procedure TForm1.Button15Click(Sender: TObject); begin Edit3.Text:=floattostr(strtofloat(Edit1.Text) * strtofloat(Edit2.Text)) end;
procedure TForm1.Button16Click(Sender: TObject); begin close end;
procedure TForm1.Button17Click(Sender: TObject); begin CEdit:=-Cedit+1; end;
procedure TForm1.Button1Click(Sender: TObject); begin Edit3.Text:=floattostr(strtofloat(Edit1.Text) + strtofloat(Edit2.Text)) end;
procedure TForm1.Button2Click(Sender: TObject); begin Edit3.Text:=floattostr(strtofloat(Edit1.Text) - strtofloat(Edit2.Text)) end;
procedure TForm1.Button3Click(Sender: TObject); begin Edit3.Text:=floattostr(strtofloat(Edit1.Text) / strtofloat(Edit2.Text)) end;
procedure TForm1.Button4Click(Sender: TObject); begin if CEdit=1 then Edit1.Text := Edit1.Text + (Sender as TButton).Hint else Edit2.Text := Edit2.Text + (Sender as TButton).Hint; end;
procedure TForm1.Button6Click(Sender: TObject); begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; end;
kroning: han skal da ikke bruge "hint" - den skal sikkert bruges til noget andet. Det er "tag" der er den rigtige property at bruge, værende en slags gummi-property som man kan bruge til lidt af hvert. Det er også den man kan finde på at typecaste til en pointer/objekt
Måske burde du bare droppe knapperne; det er jo egentligt et forkert design, for hvorfor skal man, med musen, trykke på knapper der allerede findes på tastaturet. Det gælder med lidt besvær også på de bærbare. Du har jo 1-9, +-/* og <retur>.
Skulle jeg lave en lommeregner ville jeg kun lave knapper til de funktioner der ikke findes på tastatures, eksempelvis de trigonometriske SIN(), COS(), TAN() osv. Tastetrykkene kunne fanges/valideres i Application.OnKeyPressed
... og så ville jeg lave det med "Omvendt Polsk Notation" (engelsk: RPN) da det både er lettere at programmere og ditto lettere at anvende.
Den viser bare en rød streg under Implementation, den angiver altså at der er en fejl. Alle andre steder er der ingen ting, det er kun her ved dette ord den viser fejl. Jeg ved ikke lige hvad jeg skal gøre..
Hej har lige prøvet at gøre det på en anden måde. en hvorfor angiver den fejl ved alle if og els sætningerne? [Pascal Error] Lommeregner.pas(69): E2012 Type of expression must be BOOLEAN
Jeg har sagt det før og nu siger jeg det igen, denne gang til dig. Der er nogen der trænger til at sætte sig ned med en Pascal/Delphi bog som de har lånt på biblioteket - før de prøver at strikke et program sammen.
Grunden til du ikke bruger kronings eksempel er vel at du ikke forstår hvar han taler om. Det bør du indrømme og så tage en tur på biblioteket for man lærer ikke at programmere via Eksperten.
Fejlen i ovenævnte (ubrugelige) kodning er, at du bruger := som er en tildelingsoperator mens du skulle bruge = (uden kolon).
Næste fejl er at linjerne er aldeles volapyk'sk.
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.