![]() |
on formcreate leere dbedit felder?!?
hallo.
ich habe ein prog grschrieben, in dem man daten eingibt, und diese dur klicken eines buttons gespeichert werden. ABER: immer wenn ich das form über F9 testen will, steht in den dbedit-feldern der zu letzt eingegebene datensatz. ich möchte jedoch, dass die dbedit felder leer sind, wenn ich das form öffne. is das irgendwie zu machen??? thx schon mal im vorraus felix |
Re: on formcreate leere dbedit felder?!?
Hallo,
bist du sicher, dass du die Felder nirgendwo füllst? Eigentlich sollten sie leer sein, wenn du das Programm startest. Immerhin werden Fenster und Felder neu erstellt. |
Re: on formcreate leere dbedit felder?!?
HI
Es sei denn sie sind von anfang nicht leer :-D |
Re: on formcreate leere dbedit felder?!?
das ist der code zum speichern
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin //Ausgabe - Gesamt Schläge incl. Zu-/Abzüge und Gesamt Drops //if Table1.State <> dsEdit then // table1.Edit; Table1.Append; end; der cod der beim öffnen des forms ausgeführt wir:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin //Tabelle öffnen table1.Open; //Namen aus Datei einlesen with Name do begin Items.LoadFromFile(extractfilepath(application.exename)+ 'spieler.txt'); end; //Orte aus Datei einlesen with Ort do begin Items.LoadFromFile(extractfilepath(application.exename)+ 'plaetze.txt'); end; end; |
Re: on formcreate leere dbedit felder?!?
und der cod, wo die var's definiert werden:
Code:
if (Name.ItemIndex <> -1) and (Ort.ItemIndex <> -1) then
begin if table1.State <> dsEdit then table1.Edit; //Einlesen der Variablen wupb1 := Table1.FieldByName('Bahn1').AsInteger; wupb2 := Table1.FieldByName('Bahn2').AsInteger; wupb3 := Table1.FieldByName('Bahn3').AsInteger; wupb4 := Table1.FieldByName('Bahn4').AsInteger; wupb1d := Table1.FieldByName('Bahn1Drops').AsInteger; wupb2d := Table1.FieldByName('Bahn2Drops').AsInteger; wupb3d := Table1.FieldByName('Bahn3Drops').AsInteger; wupb4d := Table1.FieldByName('Bahn4Drops').AsInteger; |
Re: on formcreate leere dbedit felder?!?
...und: es handelt sich um dbedit felder. die sind in der tabelle feste felder zugeordnet... un um mich noch genauer auszudrücken... es wird nicht immer der zu letzt eingegebende datensatez angezeigt, sondern immer der erste in der tabelle...sry ;)
|
Re: on formcreate leere dbedit felder?!?
Moin, moin,
hört sich so an, als ob Du neue Felder an die Datenbank anhängen willst und deshalb brauchst du die leeren Eingabemasken. Das lässt sich machen. Problem im OnCreate-Ereignis ist noch keine Datenbankverbindung da hier kann man also noch nichts machen. Das geht erst im OnShow-Ereignis. Das wird aber nur ausgelöst, wenn visible von false auf true geschaltet wird und das Formular ffertig aufgebaut ist. Also: 1. Im OnCreate visible auf false dann wieder auf true; 2. Im OnShow gibtst Du den Befehl "Query.append" damit sind die Felder dann leer.... Grüße // Martin |
Re: on formcreate leere dbedit felder?!?
Hallo,
DBEdit Felder sind an das Recordset gebunden. Es werden immer die Werte des aktuellen Datensatzes angezeigt, und dies ist in deinem Fall der erste in der Tabelle. Imho hast du 2 Möglichkeiten: 1.) du verwendest normale Edits und speicherst die Werte über Insert, bzw. Update befehle oder 2.) du verwendest statt der TTable eine TQuery Komponente. das würde dann ungefähr so ausschauen:
SQL-Code:
Wenn du einen leeren DS anzeigen willst:
Select *
From TABELLEN_NAME Where UNIQUE_KEY = :Nummer
Delphi-Quellcode:
Ich hoffe es hat dir geholfen.
with Query1 do begin
Close; ParamByName('Nummer').AsInteger := -1; // vorausgesetzt es gibt keinen Wert mit -1 in der Tabelle Open; end; Garby |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 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