21-11-2019, Saat: 18:22
@Tuğrul HELVACI Thread ilgili kişisel yazınızı defalarca okudum.
Hatta paylaşmış olduğunuz örnek kod üzerinden kodlarımda değişiklik yapıyorum.
Fakat aşağıdaki resimdeki hatayı alıyorum. dediğiniz gibi (gerçekten anlamadığın hususları sor, yardımcı olmaya gayret edelim.) yardımlarınızı bekliyorum.

Örnek kodunuz:
Kendi kodlarım:
Hatta paylaşmış olduğunuz örnek kod üzerinden kodlarımda değişiklik yapıyorum.
Fakat aşağıdaki resimdeki hatayı alıyorum. dediğiniz gibi (gerçekten anlamadığın hususları sor, yardımcı olmaya gayret edelim.) yardımlarınızı bekliyorum.

Örnek kodunuz:
procedure TMyThread.Execute; begin inherited; try CoInitialize(nil); try // Database'e bağlan birşeyler yap.. // yada başka bir COM nesnesi ile çalış. finally end; except on E: Exception do begin end; end;
Kendi kodlarım:
procedure TwendenAl.Execute;
var
FDQ: TFDQuery;
XMLNode: IXMLNode;
sTitle, sLink: WideString;
AjansUrl, AjansName: WideString;
begin
inherited;
try
CoInitialize(Nil);
FDQ := TFDQuery.Create(Nil);
Form1.FDGUIxWaitCursor.ScreenCursor := gcrNone;
try
FDQ.Connection := Form1.FDConnection; // databaseden xml aldık
FDQ.Active := False;
FDQ.Close;
FDQ.SQL.Clear;
FDQ.SQL.Add('Select * From XML');
FDQ.Prepared := True;
FDQ.Open;
while Not FDQ.Eof do
begin
AjansUrl := FDQ.FieldByName('URL').AsString;
AjansName := FDQ.FieldByName('AJANS').AsString;
if IsValidURL(Nil, PWideChar(AjansUrl), 0) <> S_FALSE then // Web sayfası kontrol
begin
Form1.XMLDocument.Active := False;
Form1.XMLDocument.LoadFromFile(AjansUrl);
Form1.XMLDocument.Active := True;
XMLNode := Form1.XMLDocument.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item');
FDQ.Next;
while XMLNode <> Nil do
begin
sTitle := Copy(XMLNode.ChildNodes['title'].Text, 1, 255);
sLink := Copy(XMLNode.ChildNodes['link'].Text, 1, 255);
XMLNode := XMLNode.NextSibling;
end;
end;
end;
finally
Form1.XMLDocument.Active := False;
Form1.FDGUIxWaitCursor.ScreenCursor := gcrNone;
FDQ.Free;
CoUnInitialize;
end;
except
on E: Exception do
begin
end;
end;
end;

