AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktionen aus ListBox auslesen

Ein Thema von Mb123 · begonnen am 26. Okt 2006 · letzter Beitrag vom 26. Okt 2006
Antwort Antwort
Mb123

Registriert seit: 7. Jun 2006
33 Beiträge
 
#1

Funktionen aus ListBox auslesen

  Alt 26. Okt 2006, 10:55
Morgen,

http://www.michael-beering.com/delphi2.JPG

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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Welche Funktionen ?

  Alt 26. Okt 2006, 11:04
Wieso würde eine Listbox wegfallen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Mb123

Registriert seit: 7. Jun 2006
33 Beiträge
 
#3

Re: Welche Funktionen ?

  Alt 26. Okt 2006, 11:24
http://michael-beering.com/delphi21.JPG

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.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union
Online

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Welche Funktionen ?

  Alt 26. Okt 2006, 11:33
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Mb123

Registriert seit: 7. Jun 2006
33 Beiträge
 
#5

Re: Welche Funktionen ?

  Alt 26. Okt 2006, 11:45
hättest du da ein beispeil ? weil hab noch nicht mit addobject und pointer gearbeitet
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union
Online

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Welche Funktionen ?

  Alt 26. Okt 2006, 12:20
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;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Welche Funktionen ?

  Alt 26. Okt 2006, 12:51
Gib deinem Thread bitte noch einen aussagekräftigen Titel, in dem du deinen ersten Beitrag entsprechend editierst. Danke.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Mb123

Registriert seit: 7. Jun 2006
33 Beiträge
 
#8

Re: Funktionen aus ListBox auslesen

  Alt 26. Okt 2006, 19:03
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz