Autor Beitrag
MBaer3003
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 18.02.08 16:24 
Hallo an alle,

ich bin blutiger Anfänger und versuche gerade eine einfache Personaldatei zu schreiben.
Ich habe dazu bereits eine Verbindung von Delphi nach SQL 2005 Ex per ADO hinbekommen.
Auch habe ich bereits ein einfaches dazugehörige Formular entwickelt. Aufgerufen wird es wie folgt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TFormMain.ActionNewPersonalExecute(Sender: TObject);
begin
  FormNewPersonal := TFormNewPersonal.Create(self);
  try
    FormNewPersonal.ShowModal
    finally
    FormNewPersonal.Release
  end;
end;


Das Funktioniert auch alles so weit.
Nun will ich jedoch das die dazugehörige TADODataSet-Instanz automatisch auf True gesetzt wird, wenn die Form geöffnet wird. Dies wollte ich wie folgt machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TFormNewPersonal.FormShow(Sender: TObject);
begin
  with DM do begin
    ADODataSetNewPersonal.Active := True;
  end;
end;


Aber das funktioniert leider nicht.
Wenn ich die TADODataSet-Instanz manuell auf True setzte, kann ich ganz normal Daten eingeben.
Ich habe aber gelesen, dass die FormShow immer durchlaufen wird, wenn die Form geöffnet wird. Bei aber scheinbar nicht. Mache ich da grundlegend etwas falsch oder liegt es nur an einer ganz bestimmten Einstellung.
Für einen Hinweis wäre ich sehr dankbar.

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Xong
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: Mo 18.02.08 16:28 
Wird die Verbindung zur Datenbank denn geöffnet bzw. ist diese auch noch offen, wenn du das DataSet öffnest?
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 18.02.08 16:36 
Bitte Delphi-Tags verwenden, Deine Quelle sind so rel. unlesbar!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
MBaer3003 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 18.02.08 16:57 
user profile iconXong hat folgendes geschrieben:
Wird die Verbindung zur Datenbank denn geöffnet bzw. ist diese auch noch offen, wenn du das DataSet öffnest?

Die Verbindung zur Datanbank ist die ganze Zeit offen.
Habe das mit ADOConnection1 Connected auf True gesetzt.
Mike19
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 256

Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
BeitragVerfasst: Mo 18.02.08 17:22 
Hallo,
ist Deine FormMain die erste Form, welche geöffnet wird ?. Dann kannst Du dir das Form.Show eigentlich sparen. Wenn Du dann in Form.Create Dein Datasetauf True setzt, müsste eigentlich alles funktionieren.

Gruß Micha
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mo 18.02.08 18:56 
falls ich es richtig verstanden habe:

du musst den constructor von TFormNewPersonal überschreiben und darin das ADO auf True setzen...
dann wird automatisch bei TFormNewPersonal.Create dein ADO auf True gesetzt.

muss leider weg, wenns so in etwa die Richtung ist was du willst, schreib ich später gerne genaueres ;)

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
MBaer3003 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 18.02.08 19:17 
user profile iconMike19 hat folgendes geschrieben:
Hallo,
ist Deine FormMain die erste Form, welche geöffnet wird ?. Dann kannst Du dir das Form.Show eigentlich sparen. Wenn Du dann in Form.Create Dein Datasetauf True setzt, müsste eigentlich alles funktionieren.

Gruß Micha


Funktioniert so erst einmal. Danke.
Wollte natürlich auch umgedreht auf False folgendermaßen setzten:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TNewPersonal.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 with DM_Handy2 do
 begin
     ADODataSetNewPersonal.Active :=False;
 end;
end;


was natürlich auch nicht funktioniert. Habe es aber jetzt anders gelöst und setze während des speichern des Datensatzen auf False. Geht also auch.

Ist es aber trozdem richtig, das Form.Show normalerweise beim Öffnen der Form gestartet wird ?
Danke
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 18.02.08 20:33 
user profile iconKroko hat folgendes geschrieben:
Bitte Delphi-Tags verwenden, Deine Quelle sind so rel. unlesbar!

Bitte etwas verständlicher ausdrücken sonst wird das auch nix. :wink:

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)