![]() |
Form aktualisieren
Hallo,
ich arbeite mit zwei Forms und dementsprechend ja auch zwei Units. Aus dem ersten öffne ich ein zweites heraus, in dem ich eine ini Datei bearbeite, die bestimmte Variablen in dem ersten "füttert". Hab ich nun also die Daten in der ini Datei geändert, möchte ich, dass wenn ich zum ersten Form zurückkehre automatisch aktualisiert wird, damit die Inhalte der Variablen auch neu (aus der ini Datei raus) bestimmt werden. Wie mach ich das am besten? Schon mal vielen Dank, gruß billi |
Re: Form aktualisieren
Hi!
Lies doch einfach beim schließen von Form2 die werte nochmal neu ein (durch erneutes Aufrufen deiner procedure zum einlesen)! Hoffe das hilft! ciao fkerber |
Re: Form aktualisieren
Ich glaube, dass mir damit nicht geholfen ist, da ich ich das ganz form neu laden muss, nicht nur ne Procedure...
|
Re: Form aktualisieren
Hi!
Kannst du mal etwas Code schicken oder so? Weiß grad nicht so genau, wsa du brauchst, wenns nicht nur um die Variablen geht? oder einfach mal näher beschreiben! ciao |
Re: Form aktualisieren
Liste der Anhänge anzeigen (Anzahl: 1)
Das ist die erste Unit:
Delphi-Quellcode:
und das das zweite:
unit UGalDat;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, FileCtrl, IniFiles, Menus; const SELDIRHELP = 1000; type TFeingabe = class(TForm) Lbitteverzpfad: TLabel; Bdurchsuchen: TButton; Ethema: TEdit; Lbittethema: TLabel; Lbittetext: TLabel; Etext: TEdit; Lendung: TLabel; Rendung_ja: TRadioButton; Rendung_nein: TRadioButton; Berzeugen: TButton; Lpfad: TLabel; Mausgabe: TMemo; ListBox1: TListBox; Lzeilenzahl: TLabel; Luberschriftzz: TLabel; MainMenu: TMainMenu; Service1: TMenuItem; Eoptionen: TMenuItem; procedure BdurchsuchenClick(Sender: TObject); procedure BerzeugenClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure EoptionenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Feingabe: TFeingabe; implementation uses Uoptionen; var ini: TIniFile; SearchRec : TSearchRec; athema, atext, Dir, Dateiendung, datenbankname: string; {$R *.DFM} procedure TFeingabe.BdurchsuchenClick(Sender: TObject); begin if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then Lpfad.Caption := Dir; end; procedure TFeingabe.BerzeugenClick(Sender: TObject); var index: integer; FileExt: string; begin begin if Rendung_ja.Checked then FileExt:= '*.jpg' else FileExt:= '*.*'; ListBox1.Clear; Dir := IncludeTrailingBackslash(Dir); ListBox1.Items.BeginUpdate; if FindFirst(Dir + FileExt, faAnyFile, SearchRec) = 0 then try ListBox1.Items.Add(ChangeFileExt(SearchRec.Name, '')); while FindNext(SearchRec) = 0 do ListBox1.Items.Add(ChangeFileExt(SearchRec.Name, '')); finally FindClose(SearchRec); end; ListBox1.Items.EndUpdate; athema := (Ethema.Text); atext := (Etext.Text); Mausgabe.Clear; Lzeilenzahl.caption:=IntToStr(ListBox1.Items.Count); for index := 0 to ListBox1.Items.Count -1 do Mausgabe.Lines.Add('INSERT INTO `'+datenbankname+'` ( `thema` , `name` , `text` ) VALUES ("'+athema+'", "'+ListBox1.Items.Strings[Index]+'", "'+atext+'");'); end; end; procedure TFeingabe.FormActivate(Sender: TObject); begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'einstellungen.ini'); try Lpfad.Caption:=ini.ReadString('Parent_Directory','1',''); Dir:=Lpfad.Caption; Dateiendung:=ini.ReadString('Dateiendung','1',''); datenbankname:=ini.ReadString('Datenbank_name','1',''); finally ini.free; end; Mausgabe.Clear; Lendung.Caption:= 'Nur '+Dateiendung+' Dateien listen und '+Dateiendung+' entfernen?'; end; procedure TFeingabe.EoptionenClick(Sender: TObject); begin Foptionen.ShowModal; end; end.
Delphi-Quellcode:
So, ich hoffe, dass mir der lange Code verziehen wird, aber so ist's am verständlichsten...
unit Uoptionen;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IniFiles, FileCtrl; const SELDIRHELP = 1000; type TFoptionen = class(TForm) Label1: TLabel; Ename_datenbank: TEdit; Label2: TLabel; Eparentdirectory: TEdit; Bdurchsuchen: TButton; Label3: TLabel; Edatei_endung: TEdit; Bspeichern: TButton; Babbruch: TButton; procedure BspeichernClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure BabbruchClick(Sender: TObject); procedure BdurchsuchenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Foptionen: TFoptionen; implementation var ini: TIniFile; Dir: string; {$R *.DFM} procedure TFoptionen.BspeichernClick(Sender: TObject); begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'einstellungen.ini'); try ini.WriteString('Datenbank_name','1', Ename_datenbank.Text); ini.WriteString('Parent_Directory','1', Eparentdirectory.Text); ini.WriteString('Dateiendung','1', Edatei_endung.Text); finally ini.free; end; close; end; procedure TFoptionen.FormActivate(Sender: TObject); begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'einstellungen.ini'); try Ename_datenbank.text:=ini.ReadString('Datenbank_name','1',''); Eparentdirectory.text:=ini.ReadString('Parent_Directory','1',''); Edatei_endung.text:=ini.ReadString('Dateiendung','1',''); finally ini.free; end; end; procedure TFoptionen.BabbruchClick(Sender: TObject); begin Foptionen.close; end; procedure TFoptionen.BdurchsuchenClick(Sender: TObject); begin Dir := Eparentdirectory.Text; if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then Eparentdirectory.Text := Dir; end; end. gruß Markus PS: Im Anhang auch noch das Prog... |
Re: Form aktualisieren
Hi!
Gut, Code ist soweit klar! Und was willst du jetzt genau machen, was muss aktualisiert werden, wenn die Optionen geschlossen werden? ciao fkerber |
Re: Form aktualisieren
naja, wenn du z.b. den Namen der SQL-Datenbank geändert hast (in Optionen) und dann die Liste erzeugst, hast du immer noch den alten Datenbanknamen. Um das zu ändern muss ich bis jetzt das Programm neu starten. :( Das ist umständlich und daher suche ich einen anderen weg.
Eben alles zu aktualisieren! (oder eine andere Methode) gruß billi Wenn noch Fragen offen sind versuchs einfach mal unter ICQ ich bin BKBB aus Darmstadt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz