Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
uses {Hier stehen noch andere Units}, Registry;
// Innerhalb deines Formulars die zwei neuen Prozeduren deklarieren
type
TForm1 = class(TForm)
// Komponenten auf dem Formular
private
{ Private declarations }
procedure SaveValues;
procedure ReadValues;
public
{ Public declarations }
end;
// Im Implementation Abschnitt:
procedure TForm1.ReadValues;
var reg: TRegistry;
begin
reg:=TRegistry.Create; // Registry Objekt erstellen
reg.RootKey:=HKEY_LOCAL_MACHINE; // Rootkey festlegen
{ Jetzt wird die eigentliche Position in der Registry
festgelegt, falls der Key noch nicht existiert, wird
das Editfeld einfach auf 0 gesetzt, ansonsten der gespeicherte
Wert aus der Regitry ausgelesen }
if reg.OpenKey('Software\DeinWunschname', false) then
Edit6.Text:=reg.ReadString('NochZuZahlen')
else
Edit6.Text:='0';
// Am Ende aufräumen und den Speicher wieder freigeben
reg.CloseKey;
reg.Free;
end;
procedure TForm1.SaveValues;
var reg: TRegistry;
begin
reg:=TRegistry.Create; // Registry Objekt erstellen
reg.RootKey:=HKEY_LOCAL_MACHINE; // Rootkey festlegen
{ Jetzt wird die eigentliche Position in der Registry
festgelegt, falls der Key noch nicht existiert, wird
er angelegt (true am Ende von OpenKey). Mit WriteString
wird dann der Wert abgespeichert }
reg.OpenKey('Software\DeinWunschname', true);
reg.WriteString('NochZuZahlen', Edit6.Text);
// Am Ende aufräumen und den Speicher wieder freigeben
reg.CloseKey;
reg.Free;
end;
Schon mal was Funktionen/Prozeduren gehört?Damit dies auch bei den restlichen Editfeldern funktioniert, muss die eben geschriebene Behandlungsroutine noch den restlichen Editfeldern zugewiesen werden.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, TabNotBk, Menus, Buttons, ExtCtrls, Registry;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
TabbedNotebook1: TTabbedNotebook;
Button2: TButton;
Edit2: TEdit;
Button3: TButton;
Edit3: TEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
Edit4: TEdit;
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
Quit1: TMenuItem;
Help1: TMenuItem;
Info1: TMenuItem;
BitBtn1: TBitBtn;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Button9: TButton;
Button10: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit7: TEdit;
Edit8: TEdit;
Label10: TLabel;
Label11: TLabel;
Panel1: TPanel;
Label12: TLabel;
Edit9: TEdit;
GroupBox2: TGroupBox;
Edit10: TEdit;
Label13: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit6Change(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure Edit7Change(Sender: TObject);
procedure Edit8Change(Sender: TObject);
procedure Edit9Change(Sender: TObject);
private
{ Private-Deklarationen }
procedure SaveValues;
procedure ReadValues;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SaveValues;
var reg: TRegistry;
begin
reg:=TRegistry.Create; // Registry Objekt erstellen
reg.RootKey:=HKEY_LOCAL_MACHINE; // Rootkey festlegen
{ Jetzt wird die eigentliche Position in der Registry
festgelegt, falls der Key noch nicht existiert, wird
er angelegt (true am Ende von OpenKey). Mit WriteString
wird dann der Wert abgespeichert }
reg.OpenKey('Software\Barc', true);
reg.WriteString('NochZuZahlen', Edit10.Text);
// Am Ende aufräumen und den Speicher wieder freigeben
reg.CloseKey;
reg.Free;
end;
procedure TForm1.ReadValues;
var reg: TRegistry;
begin
reg:=TRegistry.Create; // Registry Objekt erstellen
reg.RootKey:=HKEY_LOCAL_MACHINE; // Rootkey festlegen
{ Jetzt wird die eigentliche Position in der Registry
festgelegt, falls der Key noch nicht existiert, wird
das Editfeld einfach auf 0 gesetzt, ansonsten der gespeicherte
Wert aus der Regitry ausgelesen }
if reg.OpenKey('Software\Barc', false) then
Edit10.Text:=reg.ReadString('NochZuZahlen')
else
Edit10.Text:='0';
// Am Ende aufräumen und den Speicher wieder freigeben
reg.CloseKey;
reg.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c: currency;
begin
a := strtofloat( edit1.Text );
b := 1.5;
c := a+b;
Edit1.Text := Floattostr( c );
end;
procedure TForm1.Button2Click(Sender: TObject);
var a,b,c: extended;
begin
a := strtofloat( edit2.Text );
b := 1;
c := a+b;
Edit2.Text := Floattostr( c );
end;
procedure TForm1.Button3Click(Sender: TObject);
var a,b,c: extended;
begin
a := strtofloat( edit3.Text );
b := 0.5;
c := a+b;
Edit3.Text := Floattostr( c );
end;
procedure TForm1.Button4Click(Sender: TObject);
var a,b,c,d,e,f: extended;
begin
a := strtofloat( edit1.Text );
b := strtofloat( edit2.Text );
c := strtofloat( edit3.Text );
d := strtofloat( edit5.Text );
e := strtofloat( edit6.Text );
f := a+b+c+d+e;
Edit4.Text := Floattostr( f );
end;
procedure TForm1.Button5Click(Sender: TObject);
var a,b,c,e,f,g,x: extended;
begin
a := strtofloat( edit1.Text );
b := strtofloat( edit2.Text );
c := strtofloat( edit3.Text );
e := strtofloat( edit5.Text );
f := strtofloat( edit6.Text );
g := strtofloat( edit9.Text );
x := 0;
Edit1.Text := Floattostr( x );
Edit2.Text := Floattostr( x );
Edit3.Text := Floattostr( x );
Edit5.Text := Floattostr( x );
Edit6.Text := Floattostr( x );
Edit9.Text := Floattostr( x );
end;
procedure TForm1.Button6Click(Sender: TObject);
var a,b,c: extended;
begin
a := strtofloat( edit1.Text );
b := 1.5;
c := a-b;
Edit1.Text := Floattostr( c );
end;
procedure TForm1.Button7Click(Sender: TObject);
var a,b,c: extended;
begin
a := strtofloat( edit2.Text );
b := 1;
c := a-b;
Edit2.Text := Floattostr( c );
end;
procedure TForm1.Button8Click(Sender: TObject);
var a,b,c: extended;
begin
a := strtofloat( edit3.Text );
b := 0.5;
c := a-b;
Edit3.Text := Floattostr( c );
end;
procedure TForm1.Button9Click(Sender: TObject);
var a,b,c: extended;
begin
a := strtofloat( edit6.Text );
b := 0.5;
c := a+b;
Edit6.Text := Floattostr( c );
end;
procedure TForm1.Button10Click(Sender: TObject);
var a,b,c: extended;
begin
a := strtofloat( edit6.Text );
b := 0.5;
c := a-b;
Edit6.Text := Floattostr( c );
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit4.Text := FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text) + StrToFloat(Edit3.Text) + StrToFloat(Edit5.Text) + StrToFloat(Edit6.Text));
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
Edit4.Text := FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text) + StrToFloat(Edit3.Text) + StrToFloat(Edit5.Text) + StrToFloat(Edit6.Text));
end;
procedure TForm1.Edit3Change(Sender: TObject);
begin
Edit4.Text := FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text) + StrToFloat(Edit3.Text) + StrToFloat(Edit5.Text) + StrToFloat(Edit6.Text));
end;
procedure TForm1.Edit6Change(Sender: TObject);
begin
Edit4.Text := FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text) + StrToFloat(Edit3.Text) + StrToFloat(Edit5.Text) + StrToFloat(Edit6.Text));
end;
procedure TForm1.Edit5Change(Sender: TObject);
begin
Edit4.Text := FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text) + StrToFloat(Edit3.Text) + StrToFloat(Edit5.Text) + StrToFloat(Edit6.Text));
end;
procedure TForm1.Edit4Change(Sender: TObject);
begin
Edit8.Text := FloatToStr(StrToFloat(Edit4.Text) + StrToFloat(Edit7.Text));
end;
procedure TForm1.Edit7Change(Sender: TObject);
begin
Edit8.Text := FloatToStr(StrToFloat(Edit4.Text) + StrToFloat(Edit7.Text));
end;
procedure TForm1.Edit8Change(Sender: TObject);
begin
Edit10.Text := FloatToStr(StrToFloat(Edit8.Text) - StrToFloat(Edit9.Text));
end;
procedure TForm1.Edit9Change(Sender: TObject);
begin
Edit10.Text := FloatToStr(StrToFloat(Edit8.Text) - StrToFloat(Edit9.Text));
end;
end.
Schon mal was davon gehört, das man eine Routine auch anderen Ereignissen zuweisen kann? Dabei wird keine neue Routine geschrieben, sonderen der Komponente nur mitgeteilt, dass sie die bereits vorhandene Routine benutzen soll. Ich habe nichts davon geschrieben, dass man jeweils eine eigene Routine anlegen und Quellcode kopieren soll.Schon mal was Funktionen/Prozeduren gehört?
Nein. Damit die Prozeduren ausgeführt werden, musst du deiner Anwendung natürlich noch mitteilen, wann sie diese Aufrufen soll. Dies kann z.B. im OnCreate und OnClose Ereignis des Formulars geschehen.Seh ich das richtig, dass es automatisch die read/save prozedur beim starten/beenden des Programms ausführt?
procedure TForm1.Form1Create(Sender: TObject);
begin
ReadValues;
end;
procedure TForm1.Form1Close(Sender: TObject);
begin
SaveValues;
end;
Edit10.Text := FloatToStr(StrToFloat(Edit10.Text) + StrToFloat(Edit8.Text) - StrToFloat(Edit9.Text));
Uups, den Sachverhalt hatte ich gar nicht bedacht. :-(Hat so weit funktioniert, aber der geladene Wert wird einfach überschrieben, wenn ich auf die "+-" buttons drücke, was ja auch absolut logisch ist! Aber das soll ja nicht so sein.
reg.WriteString('Wert1', Edit1.Text);
reg.WriteString('Wert2', Edit2.Text);
reg.WriteString('Wert3', Edit3.Text);
reg.WriteString('Wert4', Edit4.Text);
reg.WriteString('Wert5', Edit5.Text);
if reg.OpenKey('Software\DeinWunschname', false) then begin
Edit6.Text:=reg.ReadString('NochZuZahlen')
Edit1.Text := reg.ReadString('Wert1');
Edit2.Text := reg.ReadString('Wert2');
Edit3.Text := reg.ReadString('Wert3');
Edit4.Text := reg.ReadString('Wert4');
Edit5.Text := reg.ReadString('Wert5');
end else begin
Edit1.Text:='0';
Edit2.Text:='0';
Edit3.Text:='0';
Edit4.Text:='0';
Edit5.Text:='0';
Edit6.Text:='0';
end;