Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Raficcha

Componente TXMLDocument existe ou não

Recommended Posts

Cara, ja estou começando a achar que o componente TXMLDocument não existe.

 

Bom, estou tentando usar este elemento no Delphi 7. Mas tudo que ele me diz que é o mesmo não foi declarado. Já virei o google atras de qual é o 'uses' que eu uso pra funciona, mas acho que essa é uma informação secreta demais pro pessoal dizer (do tipo, que usa, adivinha como).

 

então eu vim aqui pra v se alguem pode me ajudar a usar esse componente, pq eu simplesmente não to conseguindo..

 

Desculpem-me pela raiva, mas é que realmente não encontrei nada sobre como usar esse componente.

 

o unico progresso que tive foi esse

 

procedure TForm1.Button1Click(Sender: TObject);

var

DocXml : TXMLDocument;

begin

 

end;

 

===========================

 

gostaria que me ajudassem, e ja fica como registro pra quando alguem tiver este problema tambem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, acho que você precisa ter mais calma e humildade... e melhorar suas técnicas de busca... veja o código abaixo que achei neste link:

 

Este código mostra como usar TXMLDocument para salvar e restaurar configurações em um documento XML. O método publico trabalha como um TIniFile.
O código não precisa ser comentado porque é auto explicativo e pequeno. Foi testado apenas no Delphi 7.


unit uCiaXml;

interface

uses
Forms, SysUtils, Windows, XmlIntf, XMLDoc;

type
TXMLConfig = class
private
FModified: Boolean;
FFileName: string;
FXMLDoc: TXMLDocument;
FBackup: Boolean;
function GetVersion: string;
public
constructor Create(const FileName: string); overload;
constructor Create; overload;
destructor Destroy; override;
procedure Save;
function ReadString(const Section, Key, default: string): string;
procedure WriteString(const Section, Key, Value: string);
function ReadInteger(const Section, Key: string; default: Integer): Integer;
procedure WriteInteger(const Section, Key: string; Value: Integer);
function ReadBoolean(const Section, Key: string; default: Boolean): Boolean;
procedure WriteBoolean(const Section, Key: string; Value: Boolean);
property Backup: Boolean read FBackup write FBackup;
property Version: string read GetVersion;
end;

implementation

{ TXMLConfig }

constructor TXMLConfig.Create(const FileName: string);
begin
inherited Create;
FBackup := True;
FFileName := FileName;
FXMLDoc := TXMLDocument.Create(Application);
FXMLDoc.Options := [doNodeAutoIndent];
if FileExists(FFileName) then
FXMLDoc.LoadFromFile(FFileName)
else
begin
FXMLDoc.Active := True;
FXMLDoc.AddChild('Configuration');
end;
end;

constructor TXMLConfig.Create;
begin
Create(ChangeFileExt(Application.Exename, '_cfg.xml'));
end;

destructor TXMLConfig.Destroy;
begin
Save;
FXMLDoc.Destroy;
inherited;
end;

function TXMLConfig.GetVersion: string;
begin
Result := '1.00';
end;

function TXMLConfig.ReadBoolean(const Section, Key: string; default: Boolean): Boolean;
begin
Result := Boolean(ReadInteger(Section, Key, Integer(default)));
end;

function TXMLConfig.ReadInteger(const Section, Key: string; default: Integer): Integer;
begin
Result := StrToInt(ReadString(Section, Key, IntToStr(default)));
end;

function TXMLConfig.ReadString(const Section, Key, default: string): string;
var
Node: IXMLNode;
begin
Node := FXMLDoc.DocumentElement.ChildNodes.FindNode(Section);
if Assigned(Node) and Node.HasAttribute(Key) then
Result := Node.Attributes[Key]
else
Result := default;
end;

procedure TXMLConfig.Save;
begin
if not FModified then
Exit;
if FBackup then

CopyFile(PChar(FFileName), PChar(FFileName + '.bak'), False);
FXMLDoc.SaveToFile(FFileName);
FModified := False;
end;

procedure TXMLConfig.WriteBoolean(const Section, Key: string; Value: Boolean);
begin
WriteInteger(Section, Key, Integer(Value));
end;

procedure TXMLConfig.WriteInteger(const Section, Key: string; Value: Integer);
begin
WriteString(Section, Key, IntToStr(Value));
end;

procedure TXMLConfig.WriteString(const Section, Key, Value: string);
var
Node: IXMLNode;
begin
if ReadString(Section, Key, '') = Value then
Exit;
Node := FXMLDoc.DocumentElement.ChildNodes.FindNode(Section);
if not Assigned(Node) then
Node := FXMLDoc.DocumentElement.AddChild(Section);
Node.Attributes[Key] := Value;
FModified := True;
end;

end.

Se olhar neste código, vai ver que tem as classes listadas no próprio exemplo. Olhando o exemplo, eu suponho que a classe XMLDoc deva conter o componente que procura. Contudo, estou sem delphi aqui para confirmar isto agora.

 

Agora, lendo outro post da web, soube que o componente em questão está na palheta internet do delphi 7.

 

Outro link interessante que vi na pesquisa rápida que fiz no google sobre o assunto, usando como parâmetro apenas TXMLDocument: http://www.caiooliveira.com.br/?p=73.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.