Ik ben dus bezig met een web applicatie en loop tegen een "probleem" aan.
Binnen de applicatie zijn een aantal data objecten te gebruiken. In mijn kleine applicatie nog maar 2, namelijk Client en Clients. Clients is een lijst van 0 of meer Client objecten.
Nou wil ik de templates vullen met de data uit de objecten. Maar helaas mag er maar 1 data-module binnen een web applicatie. Dat betekend dat als de code om de templates te vullen in 1 web module moet. Dit wordt wat veel en dus onoverzichtelijk:
Code:
procedure TModuleMain.PageViewClientsHTMLTag(Sender: TObject; Tag: TTag;
const TagString: String; TagParams: TStrings; var ReplaceText: String);
var
x: Integer;
begin
if TagString = 'list' then
begin
if TagParams.Values['name'] = 'clients' then
begin
Clients := TClientList.Create;
try
for x := 0 to Clients.Count - 1 do
begin
CurrentClientIndex := x;
ReplaceText := ReplaceText + PageClient.Content;
end;
finally
Clients.Free;
end;
end;
end;
end;
procedure TModuleMain.PageClientHTMLTag(Sender: TObject; Tag: TTag;
const TagString: String; TagParams: TStrings; var ReplaceText: String);
var
Client: TClient;
begin
Client := Clients.Items[CurrentClientIndex];
if TagString = 'id' then
ReplaceText := IntToStr(Client.Id);
if TagString = 'name' then
ReplaceText := Client.Name;
if TagString = 'address' then
ReplaceText := Client.Address;
if TagString = 'city' then
ReplaceText := Client.City;
end;
Binnen de web-module ook nog:
Code:
private
CurrentClientIndex: Integer;
Clients: TClientList;
Ik zou dit graag in een class of in ieder geval een andere unit willen hebben zodat ik het overzicht niet verlies als er meer objecten/templates bij komen. Maar hoe los ik dit een beetje goed op? Wat doen jullie meestal in dit geval om het een beetje overzichtelijk te houden? Graag jullie mening + ideeen.
Bookmarks