Showing posts with label SERBIAN WORLD. Show all posts
Showing posts with label SERBIAN WORLD. Show all posts

Monday, September 6, 2021

Say something to me and the whole world

SERBIAN WORLD

My new website, written 10 minutes from scratch!

http://rad.eu5.org






Rapid-application development (RAD), also called rapid-application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even instead of design specifications.

RAD is especially well suited for (although not limited to) developing software that is driven by user interface requirementsGraphical user interface builders are often called rapid application development tools. Other approaches to rapid development include the adaptiveagilespiral, and unified models.

More tips:

https://www.howtogeek.com/747842/how-to-use-a-whiteboard-in-a-microsoft-teams-meeting/

Insert more jpgs to LazReport:





  1. procedure TForm1.frReport1EnterRect(Memo: TStringList; View: TfrView);
  2. var
  3.   FileName: String;
  4. begin
  5.   if (View is TfrPictureView) then
  6.   begin
  7.     if (View as TfrPictureView).Name = 'imMyImage' then //change imMyImage
  8.     begin
  9.       FileName := SQLQuery1.FieldByName('PATH_OF_IMAGE').AsString); //change SQLQuery1
  10.       (View as TfrPictureView).Visible := FileExists(FileName);
  11.       if (View as TfrPictureView).Visible then
  12.         (View as TfrPictureView).Picture.LoadFromFile(FileName);
  13.     end;
  14.   end;
  15. end;


for i := 1 to 36 do begin
   sgEL.Row := i;
   frReport1.LoadFromFile(gsReportPath+myReport.lrf');
   frReport1.PrepareReport;  {from Rows[i]}
   frCompositeReport1.Reports.add(frReport1);
end;
frCompositeReport1.ShowReport;

//---

var
  r: TfrReport;
for i := 1 to 36 do begin
   sgEL.Row := i;
   r:=TfrReport.create(self);
   r.loadFromFile(gsReportPath+'myReport.lrf'); // here myReport.lrf must be the report corresponding to Row "i"
   frCompositeReport1.Reports.add(r);
end;
frCompositeReport1.ShowReport;

//---

type
TForm1 = class(TForm)     
 Filas: TfrUserDataset;   
 frCompositeReport1: TfrCompositeReport;       
 [...]
 procedure TheReportEnterRect(Memo: TStringList; View: TfrView);
 procedure TheReportGetValue(const ParName: String; var ParValue: Variant);
 [...]
end;

procedure TForm1.Button12Click(Sender: TObject);
var
i : integer;
begin

  with frCompositeReport1 do begin
    DoublePass:= True;
    Reports.Clear;
  end;
  for i := 1 to 36 do begin
   sgEL.Row := i;
   TheReport :=TfrReport.Create(self);
   TheRepor.OnEnterRect:= @TheReportEnterRect;
   TheReport.OnGetValue:= @TheReportGetValue;
   TheReport.Dataset := Filas;
   TheReport.loadFromFile(gsReportPath+'myReport.lrf');
   //TheReport.PrepareReport;
   //TheReport.ShowReport; {The 36 pages are OK}
   frCompositeReport1.Reports.add(TheReport);
end;
frCompositeReport1.ShowReport;


//---

var  TheReport : array [1..100] of TfrReport;
begin
for i := 1 to 36 do begin
   sgEL.Row := i;
   TheReport[i]:=TfrReport.Create(self);
   TheReport[i].OnEnterRect:= @TheReportEnterRect;
   TheReport[i].OnGetValue:= @TheReportGetValue;
   TheReport[i].Dataset := Filas;
   TheReport[i].loadFromFile(gsReportPath+'myReport.lrf');
 //  TheReport[i].PrepareReport;
 //  TheReport[i].ShowReport;         {It's OK}
   frCompositeReport1.Reports.add(TheReport[i]);
   TheReport[i].Free;
end;
frCompositeReport1.ShowReport;


Even more stuff to go: