Avatar billede kb1984 Nybegynder
09. oktober 2001 - 19:26 Der er 8 kommentarer og
2 løsninger

Hjælp til varible

Hej,
jeg er ved og lærer delphi og jeg har et lille problem. Jeg er ved og laver et lille program til modtage varible/tal. Jeg har en form med 6 editboxs
og en knap. OG de editboxs laver random varible der er imellem 1 og 20. Men det jeg har læset i det, jeg er ved og læser, at jeg måske bare kunne bruger en Case\'en eller ting\'. jeg forstår det ikke helt.
så ville gerne have der er nogen gad hjælpe mig lidt.
Og et lille andet spørgsmål til et sammen program.
Jeg skal også gemme de varible i en fil.
så jeg kan henter dem i program ved hjælp af en listbox.
håber der er nogen der vil hjælpe mig...
takker meget.
Kim b

Avatar billede martinlind Nybegynder
09. oktober 2001 - 20:02 #1
Prøv lige at forklar en gang til hvad det er du vil
Avatar billede kb1984 Nybegynder
09. oktober 2001 - 20:13 #2
okay,
Det er faktisk to spørgesmål
Jeg har en form med 6 Edit boxs.
Også har jeg en knap, der gør at når jeg trykker på den, laver Random(20) ud til hver af de af 6 edit boxes.
Også har jeg 6  label ved siden af der skrive
en text, hvis det er et bestemt
Men jeg skal vider om jeg kan bruger en fuction
der hedder noget af den slags,
jeg forstår bare helt og bruger den.
Det er til et spil
Case Varible
5 : +2 til liv
10 : +4 til liv
15 : +6 til liv
20 : +8 til liv
: men jeg forstår ikke helt hvordan jeg laver det
også skal de varible gemts i en file.
Også skal jeg have en listbox, hvor fil ligger i.
ogSå jeg kan putte dem inde i en memo.
Hvordan for eks.  ståer

+ 4 til livet

Hvis det var 10 der blev valgt.
Har du forstået det?
takker for hjælpen
Kim b
Avatar billede kb1984 Nybegynder
09. oktober 2001 - 20:15 #3
Undskyld, hvis jeg staver dårligt.
Men det er om Case fuctionen
også  om en listbox med den fil jeg har gemt
med de varibler i
Avatar billede kb1984 Nybegynder
09. oktober 2001 - 20:20 #4
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StrEdit: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
Str : Integer;
begin
Randomize;
Str := Random(20);
StrEdit.Text := IntToStr(Str);
If str = 5 then Memo1.Text := \'+2 til liv\';
If str = 10 then Memo1.Text := \'+4 til liv\';
If str = 15 then Memo1.Text := \'+6 til liv\';
If str = 20 then Memo1.Text := \'+8 til liv\';

end;

end.
Avatar billede hreiff Nybegynder
25. oktober 2001 - 17:23 #5
I stedet for dine if-sætninger kan du da godt bruge en case sætning:

case str of
5: Memo1.Text := \'+2 til liv\';
10: Memo1.Text := \'+4 til liv\';
15: Memo1.Text := \'+6 til liv\';
20: Memo1.Text := \'+8 til liv\';
end;   
Avatar billede martinlind Nybegynder
25. oktober 2001 - 22:06 #6
Case kan IKKE bruges på strenge KUN på ordinale typer.

Listbox\'e og memo\'er kan gemmes i en fil med functionen SaveToFile / LoadFromFile

/Martin
Avatar billede hreiff Nybegynder
26. oktober 2001 - 10:07 #7
Det er korrekt, men her er str en integer, og derfor går det fint (se kb1984 lille oplæg)
iøvrigt vil det nok være smart at lave en lille procedure, da det skal gentages flere gange:

Procedure EkstraLiv(var s1:String, var s2:String): String;
var
  str: integer;
begin
  Str := Random(20);
  S1 := IntToStr(Str);
  case str of
    5: S2 := \'+2 til liv\';
    10: S2 := \'+4 til liv\';
    15: S2 := \'+6 til liv\';
    20: S2 := \'+8 til liv\';
    else: S2 := \'\';
  end;
end;   

begin
  Randomize;
  Ekstraliv(StrEdit1.Text,Memo1.Text);
  Ekstraliv(StrEdit2.Text,Memo2.Text);
  Ekstraliv(StrEdit3.Text,Memo3.Text);
  osv.
end;
Avatar billede hreiff Nybegynder
26. oktober 2001 - 10:12 #8
Hov, det skulle selvfølgelig have været:

Procedure EkstraLiv(Var S1: String, Var S2: String);

(det var fordi jeg havde regnet med at det skulle være en funktion)
Avatar billede kb1984 Nybegynder
29. oktober 2001 - 09:01 #9
Hmmm, jeg har faktisk selv fundet af fejl, men jeg synes ikke i skal snydes for pointer.
Men jeg er i gang med den stor internetbog
\"Learn youself delphi 4 in 21 days\" også
en udmærket dansk bog, \"programkonstion med delphi 5\" så jeg er lærer noget om delphi, så jeg kan begynder og laver programmer,
vi zez
kim b
Avatar billede kb1984 Nybegynder
29. oktober 2001 - 09:03 #10
undskyld, jeg kan laver et nyt spørgsmål til jer fordi jeg laver en lille fejl, skal jeg det for martinlind fik næsten alle pointerne,
og hreiff fik kun 5 point
kh kim b
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