Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Listbix1 eintragungen in Listbox2 Übertragen per Array (https://www.delphipraxis.net/172238-listbix1-eintragungen-listbox2-uebertragen-per-array.html)

Blueser 20. Dez 2012 01:08

Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Hi Leute :-D ,

wie bekomm ichs auf die reihe, eintragungen von listbox1 über Integer-arrays in listbox2 zu übertragen?


also die eintragungen in listbox1 muss nicht über ein array erfolgen.
aber die übertragung von listbox1 in listbox2...

ich kann mir das über den integer-wert gar nicht vorstellen!
denn, wenn etwas in eine listbox geschrieben wird, isses doch schon ein string!

kann mir bitte jmd. auf die sprünge helfen?

vielen dank!:oops:

Sir Rufo 20. Dez 2012 01:28

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Mal schauen :glaskugel: sieht schlecht aus.

Wenn du nicht weißt, was da nun am Ende rauskommen soll, dann wird das schwierig.
(und die Vorgabe mit dem Int-Array macht es auch nicht eindeutig)

Blueser 20. Dez 2012 01:50

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
hi,
also das prog sieht wie folgt aus:

über ein edit-feld wird in die listbox1 übertragen.

anschließend soll der inhalt von listbox1 in listbox2 über ein array übertragen werden.

scheinbar soll der inhalt über:

Inhalt:Array[1..5] of Integer; übertragen werden...


nur.. wie berwerkstellige ich das nur?

Perlsau 20. Dez 2012 02:37

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Zitat:

Zitat von Blueser (Beitrag 1196146)
hi, also das prog sieht wie folgt aus: über ein edit-feld wird in die listbox1 übertragen. anschließend soll der inhalt von listbox1 in listbox2 über ein array übertragen werden. scheinbar soll der inhalt über: Inhalt:Array[1..5] of Integer; übertragen werden... nur.. wie berwerkstellige ich das nur?

1. Wie du oben bereits festgestellt hast, kann eine Listbox nur Strings aufnehmen.

2. Worin liegt das Problem, den Inhalt eines Editfeldes in die Listbox zu übertragen?

3. Den Inhalt einer Listbox kann man mit
Delphi-Quellcode:
ListBox1.Items.Assign(ListBox2.Items)
direkt übertragen. Ein Array ist dazu nicht erforderlich.

4. Wie kommt das Array of Integer ins Spiel, wo es sich hier doch ausschließlich um Strings handelt?

5. Wer hat dir den Befehl "soll" erteilt?

6. Was möchtest du überhaupt erreichen?

Sir Rufo 20. Dez 2012 02:39

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Zitat:

Zitat von Blueser (Beitrag 1196146)
scheinbar soll der inhalt über

Wichtigste Grundregel bei der Programmierung:

Wenn bei der Implementierung (also dem Programmieren selber) Worte auftauchen wie z.B. scheinbar oder eventuell oder ich glaube, dann hat das Programmieren ab sofort wieder Pause. Denn man kann scheinbar nicht programmieren.

@Perlsau :thumb:

Zitat:

Zitat von Perlsau (Beitrag 1196147)
6. Was möchtest du überhaupt erreichen?

Seine Hausaufgabe fertigstellen :mrgreen:

Blueser 20. Dez 2012 11:59

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Code:
var
  Form1: TForm1;

  Arr: Array [1..5] of string;
  z,i: integer;
  Liste: tstringlist;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin

Liste.add(Edit1.Text);
Listbox1.items:=liste;

end;

procedure TForm1.FormCreate(Sender: TObject);


begin
Liste:= tstringlist.create;

Arr[1]:=edit1.text;
Arr[2]:=edit1.text;
Arr[3]:= edit1.text;
Arr[4]:= edit1.text;
Arr[5]:= edit1.text;



end;


procedure TForm1.Button1Click(Sender: TObject);


begin

     listbox2.items.add(Arr[i])

end;

end.
so sieht mein listing nun aus.

aber wenn ich den button1 klicke kommt in der listbox nur pE (???)
bitte um hilfe!

DeddyH 20. Dez 2012 12:02

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Welchen Wert hat denn i zu dem Zeitpunkt? Ich möchte wetten, dass das 0 ist und somit gar nicht in Deinem Array verfügbar. Eine eingeschaltete Bereichsprüfung sollte einem das auch mitteilen.

Blueser 20. Dez 2012 12:07

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
wenn ich eien forschleife vor den arrays setze.. also in etwa so:

for i = 1 to 5 do

--> kommt ne fehlermeldung bei der übertragung

Klaus01 20. Dez 2012 12:12

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
wieviele Elemente (Items) hat denn Deine Listbox2?

Versuche mal:

Delphi-Quellcode:
for i:=0 to listbox2.items.count -1 do
Grüße
KLaus

DeddyH 20. Dez 2012 12:14

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
:?:

Blueser 20. Dez 2012 12:15

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
hi!

die elemente der jeweiligen listboxen habe ich gar nicht festgelegt!

weiß auch gar nicht wo ich da einen anhaltspunkt hätte.

eine listbox zunem array zu machen habe ich auch shcon dran gedacht aber ich wüsste halt nicht wie.

--> ausgabe erfolgt mit deiner schleife immer noch mit 'pE' :(

Blueser 20. Dez 2012 12:19

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
das wäre meine nächste idee....

Arr[1]:=listbox1.items[z];

Zacherl 20. Dez 2012 12:31

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Zitat:

Zitat von Blueser (Beitrag 1196191)
das wäre meine nächste idee....

Arr[1]:=listbox1.items[z];

Sofern du immer nur das 1. (2.) Element deines Array befüllen willst, ist die Idee gut :mrgreen: Nein, mal ganz ehrlich, wer stellt dir diese absurden Aufgaben? Auch hinsichtlich deines Bubble Sort Threads. Deinem Verständnis nach, gehe ich mal nicht davon aus, dass du dir diese Aufgaben selbst zu Lernzwecken stellst ..

Ich gebe dir mal eine allgemeine Hilfestellung, bei der eigentlich nur noch 2 Zeilen Code fehlen. Damit solltest du eigentlich auf die Lösung kommen:
Delphi-Quellcode:
var
  A: array of Integer;
  I: Integer;
begin
  // Schritt 1: Größe des Arrays der Länge der ListBox1 anpassen
  SetLength(A, ListBox1.Items.Count);
  // Schritt 2: Alle Elemente der ListBox1 ins Array kopieren
  for I := 0 to ListBox1.Items.Count - 1 do
  begin
    // TODO:
  end;
  // Schritt 3: Alle Elemente des Arrays in ListBox2 kopieren
  for I := Low(A) to High(A) do
  begin
    // TODO:
  end;
end;
Wenn du die entsprechenden Zeilen dann eingefügt hast, wirst du auch selbst feststellen, dass die Aufgabenstellung absolut schwachsinnig ist. Man konvertiert einen String in einen Integer, nur um den Wert direkt danach wieder in einen String umzuwandeln :O

DeddyH 20. Dez 2012 12:33

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Ich würde auch gern einmal den genauen Wortlaut der Aufgabe kennen. Mir scheint, hier herrscht ein Missverständnis vor, ansonsten wäre das doch ziemlicher Stuss :mrgreen:

Blueser 20. Dez 2012 12:33

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
hi!

das verlangt alles mein lehrer!

finde ich ehrlich gesagt auch sehr gut, weil man die basics verstehen muss.

es ist ja nicht so, dass ich nicht programmieren könne.
in java stehe ich immerhin auf ner 1...
aber da ich dieses schuljahr wdh. und dieses das letzte schuljahr ist, und ich vorher noch kein delphi hatte, muss ich mal ordenlicht in die tasten hauen!

p.s.: es geht um mein abi ^^

Zacherl 20. Dez 2012 12:38

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Habe meinen Post oben nochmal etwas editiert, um dir ein bisschen mit Code auszuhelfen.

Blueser 20. Dez 2012 12:45

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Code:
rocedure TForm1.Button1Click(Sender: TObject);




           var
  A: array of Integer;
  I: Integer;
begin
  // Schritt 1: Größe des Arrays der Länge der ListBox1 anpassen
  SetLength(A, ListBox1.Items.Count);
  // Schritt 2: Alle Elemente der ListBox1 ins Array kopieren
  for I := 0 to ListBox1.Items.Count - 1 do
  begin
    Arr[1]:= listbox1.Items[i];
  end;
  // Schritt 3: Alle Elemente des Arrays in ListBox2 kopieren
  for I := Low(A) to High(A) do
  begin
    Listbox2.items.add(Arr[i]);
  end;
end;

     //listbox2.items.add(Arr[i])



end.
AHHAA!!!!
jetzt wir dem ziel schon näher!
jetzt erscheint folgendes in listbox2:

pE
Edit1
pE
Edit1

also 2 ausgaben bei jeweils einem klick. eine davon ist fehlerhaft.

vielen dank für deine hilfe!


Edit: darauf wäre ich alleine nicht gekommmen!

Jumpy 20. Dez 2012 12:51

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Arr[1]:= listbox1.Items[i];

Du ballerst immer nur was in Pos 1 des Arrays der Rest bleibt leer.
Später dann liest du aber das Array komplett aus.

Blueser 20. Dez 2012 12:56

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
hi jumpy!

wie darf ich das verstehen?

Arr[1]:= '' ;??

aber das ergibt doch keinen sinn...

Bummi 20. Dez 2012 12:56

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Dieser MixMax mit A und Arr :wall:

DeddyH 20. Dez 2012 12:57

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Wieso Arr[1]? Das ist immer dasselbe Element im Array, darauf wollte jumpy hinaus. Die 1 sollte man vielleicht durch eine Variable ersetzen?

Blueser 20. Dez 2012 12:59

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
hi!

wenn ich statt 'Arr' zu 'A' mache, kommt die fehlermeldung dass integer und string nicht kompatibel sind!

Bummi 20. Dez 2012 13:01

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Die Frage ist was das "tote" A da macht ...

DeddyH 20. Dez 2012 13:01

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Und statt darüber nachzudenken, woran das liegen könnte, nimmt man einfach noch ein Array?

Blueser 20. Dez 2012 13:04

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
ES FUNKTIONIERT!!!

okok.

hab also das A im setleghth zunem Arr gemacht und dann das array of integer weggelassen!

vielen dank leute!!!!

Zacherl 20. Dez 2012 13:36

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Jetzt hast du aber nicht deine Aufgabenstellung beachtet (Integer Array verwenden). Dein "Arr" ist doch ein Array of String. Die Lösung, die ich angedacht hatte ist folgende:

Delphi-Quellcode:
var
  A: array of Integer;
  I: Integer;
begin
  // Schritt 1: Größe des Arrays der Länge der ListBox1 anpassen
  SetLength(A, ListBox1.Items.Count);
  // Schritt 2: Alle Elemente der ListBox1 ins Array kopieren
  for I := 0 to ListBox1.Items.Count - 1 do
  begin
    A[I] := StrToInt(ListBox1.Items[I]);
  end;
  // Schritt 3: Alle Elemente des Arrays in ListBox2 kopieren
  for I := Low(A) to High(A) do
  begin
    ListBox2.Items.Add(IntToStr(A[I]));
  end;
end;
Ich gehe mal davon aus, dass der Lehrer euch den Umgang mit StrToInt() und IntToStr() näherbringen wollte. Alles andere würde bei der Aufgabenstellung für mich keinen Sinn ergeben.

Blueser 20. Dez 2012 14:57

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
oh verflixt!

stimmt du hast recht! danke!

--> naja.. str to int und inttostr hatten wir auch schon durchgenommen.

ich glaube er möchte einfach nur, dass wir jede operation logisch nachvollziehen sollen.

Jumpy 21. Dez 2012 10:44

AW: Listbix1 eintragungen in Listbox2 Übertragen per Array
 
Also logisch find ich diese Aufgabe nicht. Da würd ich eher drei Listboxen nehmen und damit eine Art Türme von Hanoi oder so programmieren, da macht es Sinn einezelne Elemente von einer Listbox zur anderen zu schieben und es macht da ggf. aus Sinn StrToInt zu benutzen, wenn man wissen möchte, was für ein Element man gerade hat und diese wie unten aufgebaut sind. Man könnte natürlich da auch Length benutzen:

Aufbau der Türme:
1
22
333
4444


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz