StringGrid/RichEdit itp.

0

Witam.

Mam kilka pytanek dotyczących obsługi Delphi. Mianowicie:

  1. Mam do RichEdita wczytany plik *.rtf przy pomory richedit1.Lines.LoadFromFile(). W tym wczytanym tekście chciałbym zmienić wszystkie napisy które są kursywą na podkreślone o kolorze czerwonym. Może ktoś podrzucić rozwiazanie mojego problemu? Bo szukałem już chyba wszędzie i nadal nie wiem. Próbowałem to zrobić tak:
if (richedit1.SelAttributes.Style =  [fsItalic])  then
begin
 richedit1.SelAttributes.Style :=  [fsUnderline];
 richedit1.SelAttributes.Color :=clRed;
end; 

ale niestety to nie działa...

  1. Do StringGrida wczytuję x kolumn i y wierszy liczb (parametry x,y podawane przez usera). Chciałbym na koniec zapisać te liczby wierszami do pliku tekstowego. Znalazłem (chyba w gotowcach) procedurkę na odczyt/zapis ale coś nie idzie mi jej użycie. Może ktoś to przybliżyć? Albo ewentualnei podać jakiś inny komponent przy pomocy którego łatwiej wykonam to co opisałem?

  2. Mam do rozwiązania zadanie które z podanego wzoru matematycznego (dopuszczalne są wyrażenia w nawiasach, potęgowanie i dzielenie. Program ma odczytać wzór, ładnie go sformatować i wyświetlić na ekranie. Ma ktoś pomysł jak można się do tego zabrać? Tzn. przy pomocy jakiegoś case czy czegoś innego? Jak rozróźnić kolejne nawiasy (jeśli np. na początku wzoru są 3 lewe? W czym najlepiej to wypisywać? W memo, czy np. lepiej od razu zapisywać kolejne linie do pliku txt? Np. taki wzorek:

(((1-x)3)/(x2-1))^3 żeby wyglądał po formacie tak:

                  3
|-        3    -|
|    (1-x)     |
|   -------    |
|     2         |
|_   x - 1   _|
0

Ad 1: Może jest inny sposób, ale po nieprzespanej nocy i ślęczeniu w Delphi nad
pewnym programem wpadłem na coś takiego jak poniżej, sprawdziłem i działa, a
jak chcesz inny sposob to może ktoś inny Ci doradzi lub znajdziesz coś w google.

var
  I : integer;
begin
  for I := 1 to Length(RicheDit1.Text) do
  begin
    RichEdit1.SelStart := I;
    RichEdit1.SelLength := 1;
    if (richedit1.SelAttributes.Style =  [fsItalic])  then
    begin
      RichEdit1.SelAttributes.Color := clRed;
      RichEdit1.SelAttributes.Style := [fsUnderline];
    end;
  end;
end;

Ad 2: Kiedyś chyba sprawdzałem ten kod - z pod poniższego linku i działał, jak
należy, sprawdź: http://www.swissdelphicenter.ch/torry/showcode.php?id=941

Ad 3: z matmy jestem noga, ale podejrzewam, że wyodrębniajać ze wzoru jego
poszczególne elementy można w pętli dodawac określoną ilość spacji czy innych
znaków, ale to musisz pokombinować samodzielnie. Dwa programy już za Ciebie
w zasadzie napisałem podająć rozwiązania do znalezienia w google, to chociaż z
tym trzecim pokombinuj samodzielnie. Poza tym post raczej do Newbie, kurcze.

0

Pierwsze działa super - dzięki :)

Co do drugiego - to jednak nie zapisuje wierszami tak jak pisałeś. Będę więc musiał poszukać jakiegoś innego rozwiązania.

A co do trzeciego - będe jeszcze myślał.

0

@dziku2: ten kod z pod linku co podałem, zapisuje jak trzeba. A jak
chcesz aby działał w inny sposób - to po prostu go sobie dostosuj ;/

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