Avatar billede 17196 Nybegynder
11. februar 2003 - 13:21 Der er 3 kommentarer og
1 løsning

Hjælp til Delphi 5

Jeg er ved at lave et faktura program i Delphi. Og det er meningen at man skal kunne indtaste vareantal og varepris. Som der efter skal lægges sammen og vises i et memo felt.. Det kan jeg godt finde ud af, men til sidst skal jeg lave en total, som lægger alle de tal sammen som står i memofeltet... Det fatter jeg ikke!!!! Sådan ser det ud (se total:=?????? nederst i programmet! Hvad der skal stå her vil jeg gerne vide?):

unit fakpas;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ComCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    Edit2: TEdit;
    Label5: TLabel;
    Edit3: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Edit5: TEdit;
    Label8: TLabel;
    Edit6: TEdit;
    Button1: TButton;
    Button2: TButton;
    FAKTURA: TMemo;
    BitBtn1: TBitBtn;
    ComboBox1: TComboBox;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
  var  k,v:integer;
        total,pris:real;
        p,vareart,post,adresse,navn,s,s2,s3,s4,s5:string;
procedure TForm1.Button1Click(Sender: TObject);
begin
v:=strtoint(edit5.text);
k:=strtoint(edit6.text);

pris:=k*v;
p:=format('%f', [pris]);

vareart:=(combobox1.text);
s4:=format('%s', [vareart]);

faktura.lines.add(s4+p);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
navn:=(edit1.text);
s:=format('%s', [navn]);

adresse:=(edit2.text);
s2:=format('%s', [adresse]);

post:=(edit3.text);
s3:=format('%s', [post]);
faktura.lines.add(s);
faktura.lines.add(s2);
faktura.lines.add(s3);

end;
procedure TForm1.Button2Click(Sender: TObject);
begin
total:=?????????????????????????????????;
s5:=format('%f', [total]);
faktura.lines.add(s5);
end;
end.
Avatar billede borrisholt Novice
11. februar 2003 - 13:25 #1
Kunne du ikke sætte er seriøst pointsum på dette spm ? 30 fx.

Jens B
Avatar billede morten_leth Nybegynder
11. februar 2003 - 13:35 #2
borrisholt>>>> hvis han nu har lyst til at give 200 for det så skal du da ikke blande dig i det... hvis han nu evt. har haft store problemer med det...
Avatar billede nca Juniormester
11. februar 2003 - 14:24 #3
Jeg er fuldstændig enig med borrisholt. Det er ødelæggende for systemet at gi' 200 point for et sådant svar. Men måske er 17196 undskyldt, han har jo endnu ikke prøvet at tjene sine egne point!
Avatar billede doc404 Novice
12. februar 2003 - 01:53 #4
Din "opgave" er at finde beløbet i en linie. Hvis du ændre linien i din kode, der hedder :

  p:=format('%f', [pris]);

til

  p:=format('Kr. %f', [pris]);

Så kan du nemt finde prisen ved at søge efter positionen på 'Kr.' senere.

Så kan du bruge noget lignende denne kode:

procedure TForm1.Button2Click(Sender: TObject);
var
  i,p,Code  : integer;
  Amount,Sum : real;
  s : string;
begin
  Sum := 0;
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    p := Pos('Kr. ',Memo1.Lines[i]);
    if p > 0 then
      begin
        // find tallet i linien f.eks. 22.75 i linien 'Bønnespire Kr. 22.75'
        s := Trim(Copy(Memo1.Lines[i],p+4,255));
        Val(s,Amount,Code);
        if Code = 0 then Sum := Sum + Amount;
      end;
  end;
  ShowMessage(Format('%f',[Sum]));
end;

Måske ikke den mest geniale måde at lave tingene på (kig på f.eks. på en stringgrid) - men det virker...

PS: Enig med de andre, at du måske er lidt generøs med point...

PSS: Gør det til en vane at give dine kontroller fornuftige navne...

F.eks.

btnAddItem i stedet for Button1
edNavn i stedet for Edit1

Ellers løber du hurtigt surt i det

good luck
/doc404
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester