24. august 2003 - 17:30Der er
21 kommentarer og 1 løsning
Start tid
Hejsa Jeg vil gerne have sådan at når man trykker på en knap så starter der et ur som tæller op i Timer : minutter : sekunder tiden skal så ganges med et tal som hentes fra en combobox..
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
hejhej > Mega cool der er dog et lille problem. Det var meningen at tiden skulle ganges med værdien i compoboxen også give et resultat. alså tid * compobox = resultat ! Resulatatet skal så løbende blive "opdateret" efter som tiden køre.
Et anden spm. er det muligt at der fx i compoboxen står Ohøj og så have værdien 3 alså hvis man vælger ohøj så bliver 3 ganget med tiden :-) Hæver lige pointne til 100 :-)
function SecondToTime(const Seconds: Cardinal): Double; var ms, ss, mm, hh, dd: Cardinal; begin dd := Seconds div SecPerDay; hh := (Seconds mod SecPerDay) div SecPerHour; mm := ((Seconds mod SecPerDay) mod SecPerHour) div SecPerMinute; ss := ((Seconds mod SecPerDay) mod SecPerHour) mod SecPerMinute; ms := 0; Result := dd + EncodeTime(hh, mm, ss, ms); end;
procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := True; end;
function GetComboValue(Combobox: TComboBox): Integer; begin if Combobox.Text = 'Ohøj' then Result := 3; if Combobox.Text = 'Hejhej' then Result := 2; if Combobox.Text = 'Hej' then Result := 1; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Tid := Tid + 1; Label1.Caption := TimeToStr(SecondToTime(Tid*GetComboValue(ComboBox1))) end;
Programmet skal være til at udregne prisen for den tid man er online med en ikke fast forbindelse så resultatet skal ikke komme som et ur hvis du forstå :-) det skal bare være "prisen" dette have jeg tænkte mig var at jeg regnede sekund prisen ud for at være på internettet så skulle sekunderne i uret ganges med sekund prisen og blive til tallet det koser for den tid du har været på ! håber du forstår :-)
Det virker bedre men nu er der bare andre problemer :-) for det første kan et result i comboboxen ikke være 0,0035 okay så jeg skriver 00035! men kan man komventere sådan at det bliver i kr, alså for den tæller jo i øre kan man få det til ligeså snart at den når 100 øregrænsen og så få den til at skrive 1,(næste tæller op til 100) og så skifter den til 2 :-)
function IsInteger(Str: String): Boolean; var F: Single; Code: integer; begin val(Str,F,code); Result := True; if code <> 0 then Result := False end;
function PunktumTilKomma(Str: String): String; begin Result := AnsiReplaceStr(Str, '.', ','); end;
function GetComboValue(Combobox: TComboBox): Single; begin if IsInteger(Combobox.Text) then begin Result := StrToFloat(PunktumTilKomma(Combobox.Text)); end; if Combobox.Text = 'Ohøj' then Result := 3; if Combobox.Text = 'Hejhej' then Result := 2.25; if Combobox.Text = 'Hej' then Result := 1; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Tid := Tid + 1; Label1.Caption := TimeToStr(SecondToTime(Tid)); if Tid*GetComboValue(ComboBox1) >= 100 then Label2.Caption := FloatToStr(RoundTo((Tid*GetComboValue(ComboBox1))/100,-2)) + ' kr' else Label2.Caption := FloatToStr(RoundTo(Tid*GetComboValue(ComboBox1),-2)) + ' øre'; end;
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.