Wątek przeniesiony 2015-11-19 21:03 z Newbie przez furious programming.

Określenie wysokości obiektu w LazReport z poziomu procedury

0

Witam

W Lazarusie, w formularzu raportu LazReport, mam wstawioną "pustą" grafikę o nazwie "foto". Jej wartości KeepAspect oraz Stretched ustawiłem na True. Grafika, podobnie jak pozostałe dane "tekstowe", jest umieszczona w polu tekstowym memo (o nazwie "pole_foto"). Dane są pobierane i podstawiane do raportu ze StringGrida. Dla bandy (Dane główne o nazwie MasterData1) na której znajdują się te dane (tekst + foto) mam zaznaczoną opcję "Rozciągnięcie". Wysokość grafiki, jeśli występuje, jest za każdym razem taka sama (110) i jest przekazywana w procedurze:

procedure TfOknoProgramu.frReport2EnterRect(Memo: TStringList; View: TfrView);
begin
  SciezkaFoto:=ExtractFilePath(Application.ExeName)+'pliki\stany_magazynowe\foto\foto_id_'+StringGrid1.Cells[0, StringGrid1.Row]+'_nr_1.jpg';
   if View.Name='foto' then
     begin
       if FileExistsUTF8(SciezkaFoto) then
       begin
         View.Visible:=True;
         TFrPictureView(View).Picture.LoadFromFile(SciezkaFoto);
         View.Height:=110;
       end
       else
       begin
         View.Visible:=False;
       end;
     end;
end;

Problem polega na tym, że w sytuacji gdy grafika jest wyższa niż "wysokość" tekstu w pozostałych komórkach tego wiersza, pole memo w którym się ona znajduje oraz pozostałe pola memo w wierszu, nie dopasowują się do wysokości grafiki i grafika ta "zachodzi" na kolejny wiersz poniżej (screen w załączeniu).
W jaki sposób mogę ustawić wysokość wszystkich obiektów memo w danym wierszu, (np. zaraz po określeniu wysokości grafiki: View.Height:=110), na wysokość równą wysokości grafiki + dajmy na to jeszcze 10px, w sytuacji gdy wysokość wiersza (wysokość wszystkich pól memo na bandzie Dane główne) jest mniejsza niż wysokość grafiki.
Ufff.. chyba nic nie zamotałem... ;-)

Z góry dzięki

pozdrawiam

Wojtek

0

Hmmm... Nikt nie ma żadnych pomysłów. Przejrzałem manual do FreeRaport'u ale tam też nie natrafiłem na żaden ślad... :(

0

Z lazreport Ci nie pomogę, ale w FastReport jest specjalne property (można jest nawet w objectinspectorze ustawić), które automatycznie ustawia wysokość komórki do wysokości obiektu (bez względu czy to tekst czy grafika)

0

Jedyne property jakie IMHO może mieć z tym związek to AutoSize. Ustawiam na True, ale to nic nie daje... :(

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