da delphi per php si potrebbero prendere spunti per wizard, ide e funzionalità ma questo in un secondo momento
l'ide non può nascere ora (ammesso che ce ne sia bisogno)
quello che ho in mente è di usare un interprete (che deve essere cross platform sennò non ha senso)
una volta che si ha del codice tipo:
<html>
<head>
<title>THtml "hello world" example</title>
</head>
<body>
<%
begin
Writeln('Hello World');
end;
%>
</body>
</html>
si potrebbe pensare ad un tool (binario in free pascal manco a dirlo) che converta il .THtml in .pas secondo alcune regole tipo:
- l'html viene copiato così come si vede dentro ad istruzioni writeln
- il codice script diventa da compilare
ad esempio il risultato potrebbe essere:
writeln('<html>');
writeln(' <head>');
writeln(' <title>THtml "hello world" example</title>');
writeln(' </head>');
writeln(' <body>');
// <%
// begin <- inizio script quindi non si "traduce"
Writeln('Hello World'); // <- contenuto dello script
// end; <- fine script quindi non si "traduce"
// %>
writeln(' </body>');
writeln('</html>');
questo è ovviamente un'idea, poi bisogna vedere la fattibilità
dell'ide soprattutto ancora non c'è traccia
Edit:
un albero di sviluppo potrebbe essere:
- THtml: cartella per sorgenti
- pcode: cartella con i THtml compilati (1 THtml = N file poichè ci possono essere più script in un unico file THtml)
- pas: cartella con i THtml convertiti in .pas
- bin: risultato della compilazione della cartella pas
<html>
<head>
<title>THtml "hello world" example</title>
</head>
<body>
<%
begin
Writeln('Hello World');
end;
%>
</body>
</html>
forse sarebbe meglio?
<html>
<head>
<title>THtml "hello world" example</title>
</head>
<body>
<%-begin
Writeln('Hello World');
end-%>
</body>
</html>
usti, scusa.
<body>
<p:button caption="ciao" id="btn1" onclick="btn1click();"/>
</body>
sembrano delle macro, direi che l'idea non è male, anzi è meglio che ci sia, andrebbe analizzato per bene.
in aggiunta pensavo anche a poter definire .lfm e .pas con codice in file separati da mettere in uses tipo
<%
uses uFormParticolare; // con puntatore pronto all'uso grazie alla sezione "interface" e costruito in "implementation" in uFormParticolare.pas
begin
fmFormParticolare.RenderHtml; // Edit: si comporta come una "writeln"
end
%>
così gli oggetti li definiamo fuori, con tanto di SQL per database e codice per bottoni
che ne dite?