Cita:
Empezado por cocute
He probado a quitar los memos y poner 2 tstringlist pero no me funciona, no hace nada, tambien he probado con Tstrings pero me da "error abtracto" o algo asi.
Que puede fallar? el mismo código con memos funciona.
|
Si a tí te va bien con los 2 memos (a mi no me funciona) puedes dejarlo así y en todo caso utilizar
BeginUpdate y
EndUpdate para eliminar los retardos de pintado.
Utilizar TStrings/TStringList no te aportará más velocidad, ya que las propias Lines del componente Memo ya son TStrings, simplemente era para que no tuvieras que utilizar TMemos sin ser necesario.
El primer código utilizando TStrings sería así:
Código PHP:
procedure TForm1.FormActivate(Sender: TObject);
var
x:integer;
TS:TStrings;
begin
TS := TStringList.Create();
try
TS.Text :=idHttp1.Get('http://www.aemet.es/es/eltiempo/prediccion/localidades?l=22001');
while TS[0]<>'<h2 class="titulo">' do begin
TS.Delete(0);
end;
while TS[TS.Count-1]<>' <form name="frmMunicipio" method="get" action="/es/eltiempo/prediccion/localidades">' do begin
TS.Delete(TS.Count-1);
end;
TS.Delete(TS.Count-1);
TS.Delete(TS.Count-1);
TS[0]:= '<link rel="stylesheet" type="text/css" media="screen" href="http://www.aemet.es/css/estilos.css" /><h2 class="titulo">';
TS.Text := StringReplace(TS.Text,
'/imagenes/',
'http://www.aemet.es/imagenes/',[rfReplaceAll]);
wb1.LoadFromStrings(TS);
finally
FreeAndNil(TS);
end;
end;
El error abstracto suele dar cuando utilizas como constructor:
Código Delphi
[-]
var
TS:TStrings
begin
TS := TStrings.Create();
En lugar de esto, ya que TStrings es una clase abstracta.
Código Delphi
[-]
var
TS:TStrings
begin
TS := TStringList.Create()