Einzelnen Beitrag anzeigen

TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Rave - CustomConnection - Felder Farbe dyn ändern

  Alt 9. Jun 2009, 11:18
So ich habe mal etwas ausprobiert und habe eine Möglichkeit gefunden die Texte entsprechend dynamisch anzupassen.

Ich habe im OnBeforePrint Event eines DataText Feldes entsprechenden Code eingefügt.

Da ich jetzt den Code in weiteren Feldern hinzufügen müßte, habe ich mich gefragt ob ich nicht eine Funktion schreiben kann
und ich in dem Event nur die Funktion aufrufe!? Aber ich habe nirgendwo eine Möglichkeit gefunden eigene Funktionen
zuschreiben, vielleicht geht das auch mit der Version nicht die meinem Delphi 2007 Prof beiliegt.

Dann wollte ich evtl. noch den Textvergleich ändern und nicht schreiben Self.Text >= DataText164.Text sondern das
in ein Gleitkommawert umwandeln, jedoch bekomme ich die Meldung das '7.150' kein gültiger Gleitkommawert ist, hat
jemand eine Idee wie ich das abhängig von der Betriebssystemeinstellung realisieren kann.

Also sowas wie MinWert := StrToFloat(StringReplace(DataText164.Text, '.', <Dezimaltrennzeichen>));
in Delphi wäre das ja kein Akt nur wie geht sowas im Rave. Da ich in dem Event auch irgendwie keine
Eigenen Variablen deklarieren kann ist das eh noch komplizierter. Ich kann zwar im Kopf Variablen deklarieren.

Delphi-Quellcode:
{ Event for DataText193.OnBeforePrint }

function DataText193_OnBeforePrint(Self: TRaveDataText);
var
  Min : Float;
  Value : Float;
  Max : Float;

begin
Dann meckert der Compilier vom Rave jedoch das er im Hauptteil des Events den Bezeichner "Min" nicht kennt !?


Delphi-Quellcode:
{ Event for DataText193.OnBeforePrint }

function DataText193_OnBeforePrint(Self: TRaveDataText);
begin

  if (RaveProject.GetParam('BWPrint') = '0') then

    //Min und Max Sollwert vorhanden
    if (DataText164.Text <> '') and (DataText208.Text <> '') then
      if (Self.Text >= DataText164.Text) and (Self.Text <= DataText208.Text) then
        Self.Color := clGreen;
      else
        Self.Color := clRed;
      end;
    end;


    //Nur Min Sollwert vorhanden
    if (DataText164.Text <> '') and (DataText208.Text = '') then
      if (Self.Text >= DataText164.Text) then
        Self.Color := clGreen;
      else
        Self.Color := clRed;
      end;
    end;


    //Nur Max Sollwert vorhanden
    if (DataText164.Text = '') and (DataText208.Text <> '') then
      if (Self.Text <= DataText208.Text) then
        Self.Color := clGreen;
      else
        Self.Color := clRed;
      end;
    end;

  end;


end OnBeforePrint;
  Mit Zitat antworten Zitat