| Autor |
Beitrag |
CreepX
Hält's aus hier
Beiträge: 4
|
Verfasst: Di 12.06.07 17:41
Wie kann ich mit hilfe einer Listbox eine bestimmte Sache auswählen und dann diese mit hilfe eines Buttons ausführen?
MfG CreepX
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Di 12.06.07 17:44
Was verstehst du unter einer "bestimmten sache"?
_________________ erare humanum est
|
|
CreepX 
Hält's aus hier
Beiträge: 4
|
Verfasst: Di 12.06.07 17:46
ich will mit der Listbox zwischen Proceduren wählen die etwas berechnen.
|
|
Coder
      
Beiträge: 1383
Erhaltene Danke: 1
WinXP
D2005 PE
|
Verfasst: Di 12.06.07 17:49
ItemIndex gibt dir die Nummer (Index) des ausgewählten Items zurück.
Im Button musst du dann mit if-Anweisungen abfragen welches Item ausgewählt ist und die passende Procedure aufrufen.
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Di 12.06.07 17:52
Du kannst auch der .Objects eigenschaft der Items die Prozedurenpointer zuweisen .... das ist eleganter
_________________ erare humanum est
|
|
CreepX 
Hält's aus hier
Beiträge: 4
|
Verfasst: Di 12.06.07 17:55
Kannst du vielleicht mal nen quelltext dazu angeben hab kein plan was du meinst.
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Di 12.06.07 18:47
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TMyProcedure = Procedure;
TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; procedure Button1Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); private public end;
Procedure Bla; procedure BlaBla;
var Form1: TForm1;
implementation
{$R *.dfm}
Procedure Bla; begin Showmessage('Bla'); end; procedure BlaBla; begin Showmessage('BlaBla'); end;
procedure TForm1.Button1Click(Sender: TObject); begin Listbox1.Items.AddObject('Bla', @Bla); Listbox1.Items.AddObject('BlaBla', @BlaBla); end;
procedure TForm1.ListBox1Click(Sender: TObject); begin TMyProcedure(ListBox1.Items.Objects[Listbox1.ItemIndex]); end;
end. |
So in etwa
gruss
_________________ erare humanum est
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Di 12.06.07 19:00
Ich denke für dich kommt eher folgendes in Frage:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); begin case listbox1.ItemIndex of 0: begin ShowMessage('Berechnung 1'); end; 1: begin ShowMessage('Berechnung 2'); end; 2: begin ShowMessage('Berechnung 3'); end; end; end; |
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Di 12.06.07 19:05
_________________ erare humanum est
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Di 12.06.07 19:21
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Di 12.06.07 19:26
Eben diese Case unterscheidung macht deinen code unflexibel, es war ja nie die Rede von nur 2 oder 3 einträgen, wenn man nun 50 hat, dann wirds mit der code extrem lang und unschön. Der Vorteil meiner Lösung ist halt, dass die Items "selber entscheiden" welche procedure die passende ist
Ich wollte dich auch garnicht kritisieren, du hast schon recht, für einen Anfänger ist deine Lösung wohl in der Tat leichter verständlich.
Da wir nun beide unseren Standpunkt dargelegt haben, können wir es ja einfach dem Threadersteller überlassen sich für eine davon zu entscheiden
nichts für ungut, und nen schönen abend noch 
_________________ erare humanum est
|
|
CreepX 
Hält's aus hier
Beiträge: 4
|
Verfasst: Di 12.06.07 19:29
Danke für eure hilfe ich hab das Problem jetzt geschnallt.
Da Hätte ich ja auch einfacher drauf kommen können!
Wenn man eben zu kompliziert denkt kommt man eben nicht drauf.
Naja Danke noch mal.
MfG CreepX
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Di 12.06.07 19:33
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|