Komponent QrExpr z palety QuickReport

0

Komponent QrExpr z palety QuickReport zwraca właściwość value w dziwnym formacie TQREvResult. Ja chciałbym tę wartość wyświetlić w Edicie lub Labelu i nie wiem jak zmienić format tych danych na String czy Extended(któryś z tych normalnych). Proszę o pomoc. ;)

0

Nie mam tej palety, ale proponuje napisac TQREvResult i nacisnac F1--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

Oto informacje dotyczące właściwości Value komponentu QrExpr, jakie udało mi się znależć w pomocy Delphi:

type TQREvResultType = (resInt, resDouble, resString, resBool, resError)
type TQREvResult = record
case Kind : TQREvResultType of
resInt : (intResult : Longint);
resDouble : (dblResult : Double);
resString : (strResult : String[255]);
resBool : (booResult : Boolean);
end
property Value : TQREvResult

Description

Use the Value property to access the value of the Expression. It returns a variant record with the result of the calculation.

Szczerze powiedziawszy nie za bardzo rozumiem o co w tym chodzi i gdzie mam to wstawić. Próbowałem na różne sposoby i w różne miejsca przez parę godzin i nic.

0

Nie mam zainstalowanego Delphi, wiec nie moge sprawdzic moich przypuszczen, ale moge troche porzezbic.

Wiec komponent moze zwracac wartosci roznych typow: LongInt, Double, String (krotki) lub Boolean. Nie uzywa do tego standardowych zmiennych typu wariant, ale wlasnego rekordu wariantowego (odpowiednik unii z C)

Najpierw musisz dowiedziec sie, jakiego typu wartosc zwrocil komponent. Powinien miec jakas wlasciwosc (moze sie nazywac Kind), ktora opisuje zwrocony typ. Postepowanie uzalezniasz od zawartosci tej wlasciwosci

case NazwaKomponentu.Kind of //zapewne Kind
resInt:
Edit1.Text:=IntToStr(NazwaKomponentu.Value.intResult);
resDouble:
Edit1.Text:=FloatToStr(NazwaKomponentu.Value.dblResult);
resString:
Edit1.Text:=NazwaKomponentu.Value.strResult;
resBool:
if NazwaKomponentu.Value.booResult then
Edit1.Text:='True'
else
Edit1.text:='False';
resError: Edit1.text:='Error'
else
Edit1.text:='Nie mam pojecia';
end;

--
Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

Dzięki za pomoc :D
Wprawdzie nie wykorzystałem tej metody ale podsunęła mi ona pomysł jak rozwiązać mój problem. {brawo}

1 użytkowników online, w tym zalogowanych: 0, gości: 1