![]() |
Funktionen aus ListBox auslesen
Morgen,
![]() Ich habe folgendes Problem: Ich möchte wie oben in dem Programm die Funktionsbeschreibung mti dem Term zusammensetzen und unter Funktionen anzeigen lassen. Nun zu der eigentlichen Frage: ich weiß nicht genau was für eine box ich zum anzeigen der funktionen nehmen soll, denn am ende sollte man zwischen den einzelnen funktionen auch noch wechseln können, um so z.b. verschiedene wertetaffeln anzeigen zu können. außerdem wär es gut wenn man innerhalb der box eine funktion löschen könnte (für diesen fall würden memo und listbox ja schon wegfallen). Es wär klasse wenn mir da jemand einen rat geben könnte. Danke |
Re: Welche Funktionen ?
Wieso würde eine Listbox wegfallen?
|
Re: Welche Funktionen ?
![]() okay da hab ich mich wohl iwie vertan, sorry.. listbox funktioniert super ! aber ne andere frage: wie kann ich jetzt aus der listbox die einzelnen funktionen ansprechen ? ist es da nicht am besten vorher die terme zu speichern ? weil sonst muss ich ja die strings aus der listbox erst wieder zerlegen oder ? :? Ich will also durch doppelklick auf die Gleichung diese dann verwenden. |
Re: Welche Funktionen ?
Du kannst wenn Du AddObject anstelle von AddString verwendest einen Pointer auf ein Objekt oder sonstwas in die Listbox mit einfügen. Dann rufst Du die enstprechende Prozedur auf.
|
Re: Welche Funktionen ?
hättest du da ein beispeil ? weil hab noch nicht mit addobject und pointer gearbeitet :?
|
Re: Welche Funktionen ?
Nicht schön, aber soll ja auch nur das Prinzip zeigen:
Delphi-Quellcode:
type
TCustomFunktion = class public Parameter : extended; function execute : extended; virtual; abstract; end; TFunktion1 = class(TCustomFunktion) public function execute : extended; override; end; TFunktion2 = class(TCustomFunktion) public function execute : extended; override; end; TForm1 = class(TForm) Button1: TButton; ListBox1: TListBox; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Funktion1, Funktion2 : TCustomFunktion; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Funktion1 := TFunktion1.Create; Funktion2 := TFunktion2.Create; end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.AddObject('Funktion1', Funktion1); ListBox1.Items.AddObject('Funktion2', Funktion2); end; procedure TForm1.Button2Click(Sender: TObject); var x : extended; begin if Listbox1.ItemIndex = -1 then exit; TCustomFunktion(ListBox1.Items.Objects[Listbox1.ItemIndex]).Parameter := 3; x := TCustomFunktion(ListBox1.Items.Objects[Listbox1.ItemIndex]).Execute; Showmessage(Format('Ergebnis %n', [x])); end; { TFunktion1 } function TFunktion1.execute: extended; begin result := Parameter * 7; end; { TFunktion2 } function TFunktion2.execute: extended; begin result := Parameter * 3 end; |
Re: Welche Funktionen ?
Gib deinem Thread bitte noch einen aussagekräftigen Titel, in dem du deinen ersten Beitrag entsprechend editierst. Danke.
|
Re: Funktionen aus ListBox auslesen
habs jetzt doch anders gemacht.. ich les die werte die in der listbox stehen einfach aus und setze sie dann wieder in die edit felder ein & arbeite dann von dort aus mit ihnen weiter. aber tortzdem danke für deinen vorschlag ! Hier der Code:
Delphi-Quellcode:
procedure TMemo1.ListBox1Click(Sender: TObject);
var s,SubStr,SubStr2:string; begin s := listbox1.items[listbox1.itemindex]; SubStr := Copy(s,Pos('=',s)+1,25); edit2.Text:= SubStr; SubStr2 := Copy(s,0,Pos('=',s)-1); edit1.Text:= SubStr2; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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-2025 by Thomas Breitkreuz