Autor Beitrag
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: 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:

ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: 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:

ausblenden Delphi-Quelltext
1:
function Kombinationsauswahl(AItem: String) : Boolean;					

dann kommt:
unsatisfied forward or external declaration 'TForm1.Kombinationsauswahl'
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 15:40 
Unten im Quellcode muss dann stehen:
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: 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...

ausblenden 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 - 1do
  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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 15:45 
ausblenden Delphi-Quelltext
1:
for p := 1 to 6 do					

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 Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 15:50 
ok jetzt wirds echt peinlich

das mit in die listbox schreiben hab ich in die letzte zeile gesetzt

ausblenden Delphi-Quelltext
1:
ListBox2.AddItem(IntToStr(p));					


etwa so aber iwie mach der des trotzdem nich...
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: 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