| Autor |
Beitrag |
Gerd Kayser
      
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Do 08.11.12 15:34
Wenn ich die Aufgabenstellung richtig verstanden hab, dann enthält ListBox1 Kombinationen, die auch mehrfach vorkommen können. In die zweite Listbox sollen alle Kombinationen kopiert werden, ohne ihre ggf. vorhandenen Duplikate. Dann würde ich es so machen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TMainform.Button1Click(Sender: TObject); var Schleife : integer; begin ListBox2.Clear; ListBox2.Sorted := true; ListBox2.Items := ListBox1.Items; for Schleife := ListBox2.Count - 2 downto 0 do if ListBox2.Items[Schleife + 1] = ListBox2.Items[Schleife] then ListBox2.Items.Delete(Schleife + 1); end; |
|
|
Dr.Miezo 
Hält's aus hier
Beiträge: 14
win server 2003, win xp, win 7
Delphi 7 Prof.
|
Verfasst: Do 08.11.12 15:39
bis auf des do passt alles so...ich habs ja angepasst an meinen quelltext...
und wenn ich die function oben bei public so reinsetzte:
Delphi-Quelltext 1:
| function Kombinationsauswahl(AItem: String) : Boolean; |
dann kommt:
unsatisfied forward or external declaration 'TForm1.Kombinationsauswahl'
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Do 08.11.12 15:40
Unten im Quellcode muss dann stehen:
Delphi-Quelltext 1: 2: 3: 4:
| function TForm1.Kombinationsauswahl(AItem: String) : Boolean; begin ... end; |
Das TForm1 davor ist wichtig, damit klar ist, dass das zu der Klasse gehört. Dann wird auch die Listbox gefunden.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
Dr.Miezo 
Hält's aus hier
Beiträge: 14
win server 2003, win xp, win 7
Delphi 7 Prof.
|
Verfasst: Do 08.11.12 15:43
ok ich bin blöd
aber damit funzt der rest noch immer nicht....also mein 'p' will er nich und mit dem begin gehts ah noch ned...
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| function TForm1.Kombinationsauswahl(AItem: String) : Boolean; var i : Integer; p : Integer; gefunden : Boolean; begin gefunden := false; i := 0;
while (not gefunden) and (i <= ListBox1.Items.Count - 1) do begin for p = 1 to 6 do begin if AItem[p] = ListBox1.Items.Strings[i][p] then gefunden := true; end; i := i + 1; end; result := not gefunden; end; |
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Do 08.11.12 15:45
Delphi-Quelltext
Da fehlt der Doppelpunkt.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Für diesen Beitrag haben gedankt: Dr.Miezo
|
|
Dr.Miezo 
Hält's aus hier
Beiträge: 14
win server 2003, win xp, win 7
Delphi 7 Prof.
|
Verfasst: Do 08.11.12 15:50
ok jetzt wirds echt peinlich
das mit in die listbox schreiben hab ich in die letzte zeile gesetzt
Delphi-Quelltext 1:
| ListBox2.AddItem(IntToStr(p)); |
etwa so aber iwie mach der des trotzdem nich...
|
|
Dr.Miezo 
Hält's aus hier
Beiträge: 14
win server 2003, win xp, win 7
Delphi 7 Prof.
|
Verfasst: Do 08.11.12 16:02
passt schon jetzt gehts...
so nur noch eine kurze frage:
in dem langen quelltext den ich vorhin gepostet habe da sind einige andere functions und procedures eingebaut aber gibt es eine möglichkeit nun diese funktion einfach am anfang von button.click zu schreiben ohne diese in den quelltext einzubauen?
also dass die function eben auf 'knopfdruck' funktioniert?
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 08.11.12 16:11
Klar! Einfach auf den Button klicken, dann im Objektinspektor bei "OnClick" doppelklicken. Dann wird im Sourcecode eine neue Methode eingefügt und dort dann die Prozedur/Funktion deiner Wahl aufrufen.
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Für diesen Beitrag haben gedankt: Dr.Miezo
|
|