09. oktober 2001 - 19:26Der 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
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
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\';
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;
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;
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
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
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.