Avatar billede lolle Nybegynder
18. juni 2000 - 18:47 Der er 13 kommentarer og
2 løsninger

ListBox og Memo

Jeg har lige et lille spm !

Hvordan kan man indsætte ListBox linie 1 ind i en Memo

fx hvis linie 0 = lolle0 og så linie 1 = lolle1 og linie 2 = lolle2

Man skal trykke på en Button og så i Memoen komme der til at stå lolle1

Hvordan kan man gøre det ???
Avatar billede speedy Nybegynder
18. juni 2000 - 19:24 #1
Hej

Memo1.Text := ListBox1.Items[1];

/SpEeDy
Avatar billede lolle Nybegynder
18. juni 2000 - 19:38 #2
Tak SpEeDy ;)

Men hvaa så hvis man skal lave en loop så at den skriver alle de Items der er i listboxen ???
Avatar billede lolle Nybegynder
18. juni 2000 - 19:45 #3
og lige et spm til hvis der nu ikke er noget i Listboxen så skal den ikke adde noget hvordan kan man det ???

jeg ved at hvis der ikke er noget i Listboxen så er den -1

Du får lige lidt flere point hvis du lige vil hjelpe ;-)
Avatar billede aasuper Nybegynder
18. juni 2000 - 19:47 #4
Så bruger du bare

For I:=1 to listbox1.Items.Count do
Memo1.Text.Add:=ListBox1.Items[I];

>>>AASuper
Avatar billede aasuper Nybegynder
18. juni 2000 - 19:49 #5
Der sneg sig en fejl ind:

For I:=1 to listbox1.Items.Count do
Memo1.Lines.Add(Listbox1.Items[i];

Du behøver ikke at tage højde for om listboxen er tom. For så kører kodestykket ikke!

>>>AASuper
Avatar billede aasuper Nybegynder
18. juni 2000 - 19:52 #6
Endnu en fejl:

For I:=1 to listbox1.Items.Count do
Memo1.Lines.Add(Listbox1.Items[I-1]);

Den første linje i Listboxen har jo værdien 0...

Nu skulle der ikke være flere fejl! :>

>>>AASuper
Avatar billede lolle Nybegynder
18. juni 2000 - 19:55 #7
Jeg får en fejl når jeg vil compile

Den ved ikke hvaa I er !
Avatar billede lolle Nybegynder
18. juni 2000 - 19:57 #8
var
  I : integer;

jeg skulle lige have det her ;)

tak
Avatar billede snowball Novice
18. juni 2000 - 20:00 #9
Det er sikkert fordi du ikke har deklæret I.

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  For I:=1 to listbox1.Items.Count do
    Memo1.Lines.Add(Listbox1.Items[I-1]);
end;

Snowball
Avatar billede retep Nybegynder
18. juni 2000 - 20:03 #10
Hvis du vil have den markerede linie over i din listbox og ikke bare linie 1, eller alle linierne, skal du skrive:

memo1.lines.add(listbox1.Items.Strings[ListBox1.ItemIndex]);

I er en integer variabel.

Over 'Begin' skal du skrive:

Var
i : integer;

Mvh
Retep
Avatar billede retep Nybegynder
18. juni 2000 - 20:04 #11
Ups, der skulle have stået: Den markerede linie fra din listbox over i din memo...
Avatar billede lolle Nybegynder
18. juni 2000 - 20:05 #12
;) det dur nu ;)))))))
Avatar billede lolle Nybegynder
18. juni 2000 - 20:08 #13
lolle TAKKER til alle som ville gii et lille svar men det var kun speedy og aasuper som lolle skulle bruge ;o)

15 point til hver ;o)
Avatar billede lolle Nybegynder
18. juni 2000 - 20:10 #14
procedure TMainForm.GetClick(Sender: TObject);
var
  I : integer;
begin
If Listbox.Items.Count = 0 Then begin
  Memo.Lines.Add('Der er ikke noget i listen!');
end
else begin
  For I:=1 to Listbox.Items.Count do
  Memo.Lines.Add(Listbox.Items[I-1])
end;
end;

Sådan skulle koden nu se ud ;)
Avatar billede sjensen Nybegynder
19. juni 2000 - 11:02 #15
lolle, selvom spm. er lukket har jeg en enkelt kommentar til din løsning:

Da listbokse, memoer og andre "strings" typer alle er nul-baserede arrays burde du vænne dig til at bruge følgende i dit for loop:

  For I:=0 to Listbox.Items.Count -1 do
  Memo.Lines.Add(Listbox.Items[I])

Derved undgår du at du en dag "glemmer" I-1 og dermed en array fejl.

Den måde du har gjort det på er helt ok, men er en unødvendig fejlrisiko.
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