AGB  ·  Datenschutz  ·  Impressum  







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

Komponentensuche: Mathparser für StringGrid

Ein Thema von mschaefer · begonnen am 7. Sep 2007 · letzter Beitrag vom 8. Sep 2007
Antwort Antwort
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#1

Komponentensuche: Mathparser für StringGrid

  Alt 7. Sep 2007, 20:14
Ja ich suche einen Mathparser, den man an das StringGrid koppeln kann. Hinergrund ist, dass ich einige enfache Rechnungen in einem Grid ermöglichen möchte. Dass muß allerdings nur auf Aufruf einmal rechnen. Vielleicht hat jemand auch eine Idee wie man einen der Parser hier aus der DP um den Zellzugriff auf das StringGrid erweitern könnte.

Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Komponentensuche: Mathparser für StringGrid

  Alt 7. Sep 2007, 20:20
Wie meinst du das denn genau?
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#3

Re: Komponentensuche: Mathparser für StringGrid

  Alt 7. Sep 2007, 20:38
Vielleicht ist das etwas naiv, aber hatte mir Überlegt, dass ich eine externe Parserkomponente habe und die berechnet aus einem StringGrid mit Formeln die Ergebniswerte und legt diese in ein zweites StringGrid ab. Also eine MiniTabellenkalkulation mit Grundrechenarten. Allerdings kein selbst rechnendes Spreadsheet, da die oft mit anderen Funktionen völlig überladen sind.

Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Komponentensuche: Mathparser für StringGrid

  Alt 7. Sep 2007, 23:24
Also sucht du ein Stringgrid, dass beim Aufruf einer bestimmten Methode seine (Formel)Zellen als (Ergebnis)Zellen in ein weiteres Grid rendert? Sowas könnte man recht elegant über HAM und ein GetVariable-Plugin lösen, das Variablen im Excel-Format annimmt...
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#5

Re: Komponentensuche: Mathparser für StringGrid

  Alt 8. Sep 2007, 06:49
Ja ich werde mir Deinen Parser mal genauer anschauen,
wird wohl aber ein paar Tage dauern. Du scheinst aber die Funktionen sauber in die Units aufgeteilt zu haben, das ist gut!

Den Zugriff aus eine Zelle im StringGrid ist da der banale Teil:

  ValueStr := StringGrid.Cells[ Col, Row ] Allerdings müßte dann wohl auch zunächst ein Baum aufgebaut werden welche Zellen in einer Formel noch angesprochen werden.

Jedenfalls gefällt mir die Idee mit dem HAM-Parser !

Viele Grüße // Martin



PS: Mir ist derzeit nicht klar, ob das der Parser intern über seinen ParserTree leisten könnte oder ob man das extern aufbaut
und dem Parser dann eine lange Formel übergibt.
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Komponentensuche: Mathparser für StringGrid

  Alt 8. Sep 2007, 16:25
Du brauchst nicht mal den ParseTree, nur ein Plugin:

Delphi-Quellcode:
TStringGridVariableProvider = class(THAMPlugin)
  private
    fGrid: TStringGrid;
  public
    constructor Create(stringgrid: TStringGrid);

    function GetVariable(Name: string; Index: Integer; GetMethod: THAMGetMethod;
                         out MetaResult: THAMVariable): Boolean; override;
  end;

constructor TStringGridVariableProvider.Create(stringgrid: TStringGrid);
begin
  inherited;
  fGrid := stringgrid;
end;

function TStringGridVariableProvider.GetVariable(Name: string; Index: Integer; GetMethod: THAMGetMethod;
                         out MetaResult: THAMVariable): Boolean;
begin
  if(GetMethod = gmByName) then
  begin
    MetaResult := THAMVariable.Create;
    MetaResult.Parse(fGrid.Cells[{aus Name die Indizes berechnen}]);
    Result := false;
  end;
end;
Das dürfte schon ausreichen, um ein Stringgrid einzubinden.

Allerdings musst du mit den erstellen Variablen aufpassen, ich weiß nicht mehr, ob die überhaupt freigegeben werden..
  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 10:08 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