Salvar Compente que Estiver Num Form
Caros,
preciso salvar componentes, que podem ser inseridos em Runtime, para que depois possam ser restaurados numa outra situacao.
Preciso salvar as caracteristicas do componente, tais como:
Name, Top, Left, Widh, Parent, Color, Tag, Heigth, etc...
Detalhe,
o Parent, pode variar, pode ser um Form, um Panel, um QuickReport...
resumindo, o componente que poderá ser inserido, pode ter um parent que nao é padrao um ´FORM´.
Alguem ???
Obrigado.
preciso salvar componentes, que podem ser inseridos em Runtime, para que depois possam ser restaurados numa outra situacao.
Preciso salvar as caracteristicas do componente, tais como:
Name, Top, Left, Widh, Parent, Color, Tag, Heigth, etc...
Detalhe,
o Parent, pode variar, pode ser um Form, um Panel, um QuickReport...
resumindo, o componente que poderá ser inserido, pode ter um parent que nao é padrao um ´FORM´.
Alguem ???
Obrigado.
Pedih
Curtidas 0
Respostas
Agsilva
10/06/2006
Cara, use arquivos INI. Procurei e achei esse artigo aqui da DevMedia pra você:
https://www.devmedia.com.br/visualizaComponente.aspx?comp=1183&site=3
:wink:
https://www.devmedia.com.br/visualizaComponente.aspx?comp=1183&site=3
:wink:
GOSTEI 0
Pedih
10/06/2006
Cara, use arquivos INI. Procurei e achei esse artigo aqui da DevMedia pra você:
https://www.devmedia.com.br/visualizaComponente.aspx?comp=1183&site=3
:wink:
Olá AgSilva.
li a materia, porem, precisava de algo diferente.
o usuario insere um componente, em runtime, num panel por exemplo.
quando clicar em gravar, preciso que grave todas as propriedades deste componente que ele inserir no panel. (todas)... inclusive o Parent, que pode variar ... derepente, em vez de um panel, pode ser uma banda de um relatorio no fortesreport por exemplo, entendeu ???
mesmo assim,.obrigado pela dica.
GOSTEI 0
Agsilva
10/06/2006
Uhm. Você pode definir procedimentos para a criação de buttons, edits, etc.. Por exemplo:
Ok? Tenta lá. E mesmo depois disso, você pode armazenar as configurações num arquivo INI.
var button : TButton; begin button := TButton.Create(Form); with button do begin parent := Form; caption := ´Click em mim!´; height := 32; width := 128; left := 10; top := 50; end; end;
Ok? Tenta lá. E mesmo depois disso, você pode armazenar as configurações num arquivo INI.
GOSTEI 0
Pedih
10/06/2006
Uhm. Você pode definir procedimentos para a criação de buttons, edits, etc.. Por exemplo:
Ok? Tenta lá. E mesmo depois disso, você pode armazenar as configurações num arquivo INI.
var button : TButton; begin button := TButton.Create(Form); with button do begin parent := Form; caption := ´Click em mim!´; height := 32; width := 128; left := 10; top := 50; end; end;
Agsilva... blz ??
tá .. entendi.
partindo deste acima que vc citou ... como eu salvaria estas propriedades num .INI ??
desculpe..mas nao consigui entender.
possui msn ou skype ???
No aguardo, grato pela atencao.. valeu mesmo.
GOSTEI 0
Agsilva
10/06/2006
Bom, segue abaixo um exemplo. Leia todos os comentários que estão explicando passo a passo para que serve cada instrução:
Beleza cara? Qualquer coisa, só retornar.
var // inclua IniFile na cláusula Uses configurations : TIniFile; name: String; left : integer; top : integer; visible : boolean; begin // variáveis recebendo os valores das propriedades name := Button2.Name; left := Button2.Left; top := Button2.Top; enabled := Button2.Enabled; visible := Button2.Visible; // criando um simples arquivo arquivo INI configurations := TIniFile.Create(´C:\Configurations.ini´); // abaixo, criando as seções e seus respectivos valores // note que o primeiro valor (seção) recebe a variável name // gravando valores inteiros através do WriteInteger configurations.WriteInteger(name,´Left´,left); configurations.WriteInteger(name,´Top´,top); // gravando valores boolean através do WriteBool configurations.WriteBool(name,´Enabled´,enabled); configurations.WriteBool(name,´Visible´,visible); configurations.Free;
Beleza cara? Qualquer coisa, só retornar.
GOSTEI 0
Agsilva
10/06/2006
Corrigindo o primeiro comentário [i:c70fff3d1a]// inclua IniFile na cláusula Uses[/i:c70fff3d1a], para:
É no plural.
:wink:
// inclua IniFiles na cláusula Uses
É no plural.
:wink:
GOSTEI 0
Pedih
10/06/2006
Corrigindo o primeiro comentário [i:81e51c593a]// inclua IniFile na cláusula Uses[/i:81e51c593a], para:
É no plural.
:wink:
// inclua IniFiles na cláusula Uses
var
// inclua IniFile na cláusula Uses
configurations : TIniFile;
name: String;
left : integer;
top : integer;
visible : boolean;
heigth : integer;
color : TColor;
FontName : String;
Parent : String;
begin
// variáveis recebendo os valores das propriedades
name := Label1.Name;
left := Label1.Left;
top := Label1.Top;
enabled := Label1.Enabled;
visible := Label1.Visible;
heigth := Label1.Height;
Color := Label1.Color;
FontName := Label1.Font.Name;
Parent := Label1.Parent.Name;
// criando um simples arquivo arquivo INI
configurations := TIniFile.Create(´C:\Configurations.ini´);
// abaixo, criando as seções e seus respectivos valores
// note que o primeiro valor (seção) recebe a variável name
// gravando valores inteiros através do WriteInteger
configurations.WriteInteger(name,´Left´,left);
configurations.WriteInteger(name,´Top´,top);
configurations.WriteInteger(name,´Heigth´,heigth);
configurations.WriteInteger(name,´Color´,color);
configurations.WriteString(name,´Font´,FontName);
configurations.WriteString(name,´Parent´,Parent);
// gravando valores boolean através do WriteBool
configurations.WriteBool(name,´Enabled´,enabled);
configurations.WriteBool(name,´Visible´,visible);
configurations.Free;
blz...
executei o seu codigo mais algumas coisas que acrescentei.
ficou do jeito que eu preciso..
agora, como eu restauro deste .INI ???
Desculpe te encher tanto.. heee :oops:
GOSTEI 0
Agsilva
10/06/2006
Relaxa cara, a comunidade é pra isso mesmo.
Bom, é só fazer o contrário, isto é, trocar os Read por Write. Veja o exemplo só com a propriedade Top (não se esqueça de alterar a posição Top do Button2 antes de compilar, pra conferir o resultado):
Bom, o resto das propriedades é contigo. Espero ter ajudado na sua empreitada. Qualquer coisa, só retornar.
[]s.
Bom, é só fazer o contrário, isto é, trocar os Read por Write. Veja o exemplo só com a propriedade Top (não se esqueça de alterar a posição Top do Button2 antes de compilar, pra conferir o resultado):
var configurations : TIniFile; name : String; top : integer; begin name := Button2.Name; // apesar de estranho, isso recupera o arquivo criado // ou seja, não será criado outro arquivo por cima configurations := TIniFile.Create(´C:/Configurations.ini´); // o contrário é ReadInteger top := configurations.ReadInteger(name,´Top´,top); Button2.Top := top; end;
Bom, o resto das propriedades é contigo. Espero ter ajudado na sua empreitada. Qualquer coisa, só retornar.
[]s.
GOSTEI 0
Pedih
10/06/2006
[quote=´agsilva´]Relaxa cara, a comunidade é pra isso mesmo.
Bom, é só fazer o contrário, isto é, trocar os Read por Write. Veja o exemplo só com a propriedade Top (não se esqueça de alterar a posição Top do Button2 antes de compilar, pra conferir o resultado):
agsilva.
blz...
ja que esta diposto a me ajudar.. agradeco.. ae vai ...
mas veja o detalhe, no qual me esbarrei numa outra tentativa diferente desta sua
pra restaurar...
configurations := TIniFile.Create(´C:\Configurations.ini´);
---aqui pega o parent que ta o INI.
parent := configurations.ReadString(name,´Parent´,Parent);
b := TLabel.Create(Self);
b.Parent := ..... (como eu coloca uma string aqui...?)
Obrigado.
Abracos.
Bom, é só fazer o contrário, isto é, trocar os Read por Write. Veja o exemplo só com a propriedade Top (não se esqueça de alterar a posição Top do Button2 antes de compilar, pra conferir o resultado):
var configurations : TIniFile; name : String; top : integer; begin name := Button2.Name; // apesar de estranho, isso recupera o arquivo criado // ou seja, não será criado outro arquivo por cima configurations := TIniFile.Create(´C:/Configurations.ini´); // o contrário é ReadInteger top := configurations.ReadInteger(name,´Top´,top); Button2.Top := top; end;
agsilva.
blz...
ja que esta diposto a me ajudar.. agradeco.. ae vai ...
mas veja o detalhe, no qual me esbarrei numa outra tentativa diferente desta sua
pra restaurar...
configurations := TIniFile.Create(´C:\Configurations.ini´);
---aqui pega o parent que ta o INI.
parent := configurations.ReadString(name,´Parent´,Parent);
b := TLabel.Create(Self);
b.Parent := ..... (como eu coloca uma string aqui...?)
Obrigado.
Abracos.
GOSTEI 0