moga li pod DELPHI...
23 отговора
1116 прегледа
moga li pod DELPHI...
kak moje da s enapravi nesto koeto predi izlizane ot programata da zapise vav fail tekustite stoinosti na vsicki poleta (Edit, Button, Memo....) i voobste cialoto tekusto sastoianie, i sped nanovo puskane na programata d ago proceta obratno?
estestvenno moga racno da zapisa i vazstanova pootdelni vsixki tezi parametri no tova nee udobno?
bi moglo da stane ako znam oblastta v pametta kadeot s epazat tezi danni i da ia zapisa vav fail! ama zvucio mnogo samnitelno....
niakoi znae li nesto?
estestvenno moga racno da zapisa i vazstanova pootdelni vsixki tezi parametri no tova nee udobno?
bi moglo da stane ako znam oblastta v pametta kadeot s epazat tezi danni i da ia zapisa vav fail! ama zvucio mnogo samnitelno....
niakoi znae li nesto?
Re: moga li pod DELPHI...
standartnia na4in za tova e da polzvash baza danni - ORACLE, MySQL ...

Re: moga li pod DELPHI...
stava vapros ce nekade v nekoia forma e imalo nekakvo pole "edit" i tam niakoi e e napisal nesto. vaprosa e sled kato izleze ot programata i ia startira otnoto tam vse oste da stoi tova koeto e napisal.
уф!
bi moglo da stane ako znam oblastta v pametta kadeot s epazat tezi danni i da ia zapisa vav fail! ama zvucio mnogo samnitelno....
Определено е МНОГО съмнително, да не говорим за надеждност. Не съм чак толкова навътре с подробностите от ниско ниво, но ако се ползват API-та от рода на GlobalAlloc (за което ще ти се наложи да изчетеш маса от сорсовете на Delphi за ползваните там wrapper функции) -- направо забрави.
Най-добре ще бъде ако си имаш някакви структури за състояние, които да се ъпдейтват при самата промяна на въпросните edit-и и при изход ще можеш да си ги записваш на каквото си щеш, даже и в база данни :)
НАЙ-добрия клуб ТУК
Re: moga li pod DELPHI...
Imashe edno wreme edni komponenti koito pri izlizane si zapiswaha sastoianiata i pri start pak si gi chetat.
Obache ne se seshtam koi sa.
Maiche biaha AHMTritonTools?
Obache ne se seshtam koi sa.
Maiche biaha AHMTritonTools?
Re: moga li pod DELPHI...
Mojesh da gi zapisvash v niakakva malka baza danni, a ako ne sa mnogo mojesh da gi zapishesh v Windows Registri, i ottam da gi pro4etesh pri startiraneto.
Re: moga li pod DELPHI...
az tocno i tova ste naprava nakraia! ste gi zapisa v .ini fail, prosto ideata mi bese da ne izbroiavam vsicko pootdelno, zastoto ste e mnogo, no iavno taka ste trebva da naprava!
Re: moga li pod DELPHI...
в RXLib има компоненти FormStorage i FroemPlacement - май ще свършат работа.
Re: moga li pod DELPHI...
Ами недей да ги изброяваш! Врътни един цикъл по всички компоненти във формата и за всеки проверявай дали не е от тип, който подлежи на записване (едва ли искаш да запишеш и Label-ите). Ако пасне някой, записваш му съответната характеристика (Text, Selected или каквото ти трябва).
Между другото, същата техника се използва от компоненти за (псевдо)автоматичен превод на форма - различни езикови файлове с етикетите; компонентата го чете и блъска по съдържанието на формата.
На света има три вида хора: които могат да броят и които не могат.
Между другото, същата техника се използва от компоненти за (псевдо)автоматичен превод на форма - различни езикови файлове с етикетите; компонентата го чете и блъска по съдържанието на формата.
На света има три вида хора: които могат да броят и които не могат.
Re: moga li pod DELPHI... lesno reshenie
Ima gotow komponent(ama ne e free) - pri nego si okazwash koi komponenti i koi tehni property da se zapiswat - raboti bezpogreshno - az go polzwam i za sahraniawane na sastoianieto na formata - pusni edna belezka s mail (w moia profil) - ama mislia 4e paketa e dosta goliam - no ste ti go pratia
---
IN VINO VERITAS!
---
IN VINO VERITAS!
имай си едно наум с .ini файловете:
Май имат някакво ограничение откъм размер. Веднъж си имах главоболия. Освен това работата с тях не е чак толкова по-лесна, отколкото да си направиш собствен config-файл.
НАЙ-добрия клуб ТУК
НАЙ-добрия клуб ТУК
Re: moga li pod DELPHI...
ami, tova da varta v cikal vsicko e idealno! samoce kak da go naprava?
az imam edna kupcina ot imena edit1, edit2... edit100... primerno ako ne sam gi prekrastil
sastestvuva li niakakvo obsto edinno opisane na vsicko v edna forma?
to az ne sam mnogo navatre s Delphi-to
az imam edna kupcina ot imena edit1, edit2... edit100... primerno ako ne sam gi prekrastil
sastestvuva li niakakvo obsto edinno opisane na vsicko v edna forma?
to az ne sam mnogo navatre s Delphi-to
Re: moga li pod DELPHI... lesno reshenie
Опитай това.
unit Class1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
ListBox1: TListBox;
GroupBox1: TGroupBox;
ListBox3: TListBox;
Edit1: TEdit;
ComboBox1: TComboBox;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Const
FileName='OpiComp.txt';
procedure TForm1.FormCreate(Sender: TObject);
var
I:integer;
AStr,BStr,CStr:String;
Source: TComponent;
begin
if FileExists(FileName) then
with ListBox3.Items do
begin
LoadFromFile(FileName);
for I:=0 to Count-1 do
begin
AStr:=Strings;
BStr:=Copy(AStr,1,Pos(#9,AStr)-1);
AStr:=Copy(AStr,Pos(#9,AStr)+1,255);
CStr:=Copy(AStr,1,Pos(#9,AStr)-1);
AStr:=Copy(AStr,Pos(#9,AStr)+1,255);
if BStr='TEdit' then
begin
Source := FindComponent(CStr);
(Source as TEdit).Text:=AStr;
end;
if BStr='TComboBox' then
begin
Source := FindComponent(CStr);
(Source as TComboBox).Text:=AStr;
end;
end;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
procedure add(Sender:TObject);
begin
with ListBox3.Items do
if Sender.ClassNameIs('TEdit') then
Add((Sender as TEdit).ClassName+#9+
(Sender as TEdit).Name+#9+
(Sender as TEdit).Text)
else
if Sender.ClassNameIs('TComboBox') then
Add((Sender as TComboBox).ClassName+#9+
(Sender as TComboBox).Name+#9+
(Sender as TComboBox).Text);
end;
var
I:integer;
begin
ListBox3.Clear;
for I:=0 to ComponentCount-1 do
Add(Components);
ListBox3.Items.SaveToFile(FileName);
end;
end.
object Form1: TForm1
Left = 192
Top = 107
Width = 544
Height = 375
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 144
Top = 152
Width = 185
Height = 177
Caption = 'Panel1'
TabOrder = 1
object ListBox1: TListBox
Left = 32
Top = 64
Width = 121
Height = 97
ItemHeight = 13
TabOrder = 0
end
object Edit1: TEdit
Left = 24
Top = 24
Width = 121
Height = 21
TabOrder = 1
Text = 'Edit1'
end
end
object GroupBox1: TGroupBox
Left = 344
Top = 24
Width = 185
Height = 201
Caption = 'GroupBox1'
TabOrder = 0
object ComboBox1: TComboBox
Left = 24
Top = 24
Width = 145
Height = 21
ItemHeight = 13
TabOrder = 0
Text = 'ComboBox1'
end
end
object ListBox3: TListBox
Left = 40
Top = 16
Width = 201
Height = 121
ItemHeight = 13
TabOrder = 2
end
end
unit Class1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
ListBox1: TListBox;
GroupBox1: TGroupBox;
ListBox3: TListBox;
Edit1: TEdit;
ComboBox1: TComboBox;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Const
FileName='OpiComp.txt';
procedure TForm1.FormCreate(Sender: TObject);
var
I:integer;
AStr,BStr,CStr:String;
Source: TComponent;
begin
if FileExists(FileName) then
with ListBox3.Items do
begin
LoadFromFile(FileName);
for I:=0 to Count-1 do
begin
AStr:=Strings;
BStr:=Copy(AStr,1,Pos(#9,AStr)-1);
AStr:=Copy(AStr,Pos(#9,AStr)+1,255);
CStr:=Copy(AStr,1,Pos(#9,AStr)-1);
AStr:=Copy(AStr,Pos(#9,AStr)+1,255);
if BStr='TEdit' then
begin
Source := FindComponent(CStr);
(Source as TEdit).Text:=AStr;
end;
if BStr='TComboBox' then
begin
Source := FindComponent(CStr);
(Source as TComboBox).Text:=AStr;
end;
end;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
procedure add(Sender:TObject);
begin
with ListBox3.Items do
if Sender.ClassNameIs('TEdit') then
Add((Sender as TEdit).ClassName+#9+
(Sender as TEdit).Name+#9+
(Sender as TEdit).Text)
else
if Sender.ClassNameIs('TComboBox') then
Add((Sender as TComboBox).ClassName+#9+
(Sender as TComboBox).Name+#9+
(Sender as TComboBox).Text);
end;
var
I:integer;
begin
ListBox3.Clear;
for I:=0 to ComponentCount-1 do
Add(Components);
ListBox3.Items.SaveToFile(FileName);
end;
end.
object Form1: TForm1
Left = 192
Top = 107
Width = 544
Height = 375
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 144
Top = 152
Width = 185
Height = 177
Caption = 'Panel1'
TabOrder = 1
object ListBox1: TListBox
Left = 32
Top = 64
Width = 121
Height = 97
ItemHeight = 13
TabOrder = 0
end
object Edit1: TEdit
Left = 24
Top = 24
Width = 121
Height = 21
TabOrder = 1
Text = 'Edit1'
end
end
object GroupBox1: TGroupBox
Left = 344
Top = 24
Width = 185
Height = 201
Caption = 'GroupBox1'
TabOrder = 0
object ComboBox1: TComboBox
Left = 24
Top = 24
Width = 145
Height = 21
ItemHeight = 13
TabOrder = 0
Text = 'ComboBox1'
end
end
object ListBox3: TListBox
Left = 40
Top = 16
Width = 201
Height = 121
ItemHeight = 13
TabOrder = 2
end
end
Редактирано от TRN на
Re: moga li pod DELPHI... lesno reshenie
Maj ne me razbra - az imam komponent pri towa absolutno uniwersalen - zaka4ash go za formata - popalwash koi controli i koi tehni property da se zapiswat i wsi4ko e 6.
Mezdu drugoto paketa se kazwa RXlib - [линк] - ako ne me laze pametta
---
IN VINO VERITAS!
Mezdu drugoto paketa se kazwa RXlib - [линк] - ako ne me laze pametta
---
IN VINO VERITAS!
eто така:
Сложи си един StringGrid и пусни ей това:
...
НАЙ-добрия клуб ТУК
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
ctrl: TControl;
begin
StringGrid1.RowCount := ControlCount + 1;
StringGrid1.ColCount := 4;
for i := 0 to ControlCount-1 do
begin
ctrl := Controls[ i];
StringGrid1.Cells[1, i+1] := ctrl.Name;
StringGrid1.Cells[2, i+1] := ctrl.ClassName;
StringGrid1.Cells[3, i+1] := ctrl.ClassName;
//..... i t.n.
end;
end;
...
НАЙ-добрия клуб ТУК
Re: eто така:
taka stana! mersi!
znaeh si az c enemoje da nema nacin visicko da e dostapno kato niakakav masiv :-)
znaeh si az c enemoje da nema nacin visicko da e dostapno kato niakakav masiv :-)
Re: moga li pod DELPHI...
samo RxLib shte ti swyrshi rabota
[линк]
component FormStorage
-------------------------
towa e signatura
[линк]
component FormStorage
-------------------------
towa e signatura
Re: moga li pod DELPHI...
Ако въпросното поле не е поле от клас TDBEdit, начина за това е в тригер OnClose на формата да се напише код, който да обхожда желаните интерфейсни обекти и да записва във външен файл (TXT, DBF, DB ...) стойностите на свойствата им Text или Value.
Всеки може да опикае пода. Бъдете мъже и окендзайте тавана!
Всеки може да опикае пода. Бъдете мъже и окендзайте тавана!