Entwickler-Ecke
Datenbanken - [BDE]verhindern das DBGrid automatisch neue Einträge einfügt
Tabakbrummel - So 20.11.05 21:52
Titel: [BDE]verhindern das DBGrid automatisch neue Einträge einfügt
Hi alle
Ich habe da ein Problem mit den verhindern, dass das DBGrid automatisch neue Einträge einfügt? Es geht darum wenn, ich was in der Tabelle speichern (.Post) will speichert es nur in der ersten Zeile im DBGrid und nicht in der nächste Zeile.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm20.ArtenTableBeforeInsert(DataSet: TDataSet); begin Abort; end;
procedure TForm20.SWDBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_DOWN) then begin ArtenTable.DisableControls; ArtenTable.Next; if ArtenTable.EOF then Key := 0 else ArtenTable.Prior; ArtenTable.EnableControls; end; end; |
Meine frage was mache ich da Falsch?
MfG
Tabakbrummel
cartridge - Mo 21.11.05 21:28
Einiges!
Ich weiß zwar nicht genau, was das werden soll, aber schließe die Tabelle nach dem Einfügen einfach und öffne sie wieder. Oder habe ich Dich da gänzlich falsch verstanden?
Durch das Manipulieren des DB- Cursors überspringst Du z.B. schon jeweils eine Zeile...
Gruß Ingo
Tabakbrummel - Mo 21.11.05 23:40
Hi
Ich möchte es so haben wenn, ich was im DBEdit eintrage das es nicht gleich in der Table übernommen wird. Sondern erst wenn, ich mit .Post speichere in der Table übernommen wird.
MfG
Tabakbrummel
Tabakbrummel - Di 22.11.05 13:14
Tabakbrummel hat folgendes geschrieben: |
Hi
Ich möchte es so haben wenn, ich was im DBEdit eintrage das es nicht gleich in der Table übernommen wird. Sondern erst wenn, ich mit .Post speichere in der Table übernommen wird.
[/Edit] Ich arbeite mit Paradox ,TTable und DataCource
MfG
Tabakbrummel |
jasocul - Di 22.11.05 13:38
Dann musst du das mit zwei TTable-Komponenten machen oder "einfache" Edit-Felder nehmen und das manuell eintragen.
Tabakbrummel - Di 22.11.05 14:20
Hi Jasocul
Da hab ich mal eine Frage wie ich das den mit zwei TTable-Komponenten?
Danke im vorraus
MfG
Tabakbrummel
jasocul - Di 22.11.05 14:25
Ein TTable und TDatasource benutzt du für das DBGrid.
Das andere TTable und TDataSource für deine DBEdit-Kopmonenten.
Du musst folgendes beachten:
Wechselst du den Datensatz im DBGrid (bzw. im ersten TTable), musst du das auch im zweiten anpassen. Dafür kannst du einen Filter oder die Find-Methode verwenden.
Wenn der Datensatz gespeichert wird, musst du natürlich ein Refresh mit der ersten TTable-Komponente durchführen. Sonst siehst du die Änderungen nicht im DBGrid.
Ich würde der Einfachheit halber ein zweites Fenster verwenden für die Erfassung und Bearbeitung. Damit sparst du dir eine Menge Probleme, auf die ich jetzt nicht eingehen möchte. Ich will dich ja nicht jetzt schon völlig verwirren.
Tabakbrummel - Di 22.11.05 14:28
Hi Jasocul
Erst mal danke für deine Antworten.
MfG
Tabakbrummel
Tabakbrummel - Di 22.11.05 14:43
Hi Jasocul
Mein du es so das man die zweite Tabelle als art temp. nemmen soll?
Oder mit den Fenster das man spiegeln soll.
MfG
Tabakbrummel
jasocul - Di 22.11.05 15:05
Eher die zweite Variante.
Beispiel:
- In der ersten TTable(DBGrid) wählst du einen Datensatz aus.
- Über einen Button (z.B.) öffnest du das zweite Fenster (Modales Fenster bitte).
- Dort greifst du über ein zweites TTable auf den speziellen Datensatz zu.
- In diesem Fenster hat du dann noch einen Speichern und Abbruch-Button.
- Wenn du speicherst, wird der Datensatz gespeichert und das Fenster geschlossen.
- Im Hauptfenster musst du mit der TTabel-Komponente noch ein Refresh machen, da diese die Änderungen mit dem anderen TTable nicht mitbekommt.
Du arbeitest zwar mit zwei TTable-Komponenten, aber auf der selben Datenbank-Tabelle. Daher hat das mit einer Spigelung oder einer temoorären Tabelle nichts zu tun.
Tabakbrummel - Di 22.11.05 15:38
Hi Jasocul
Mit denn fenster ist nicht so das ding.
Mit den Edit ist denke ich mal eine bessere Lösung? Aber wie es am besten mit den Edit machen?
MfG
Tabakbrummel
jasocul - Di 22.11.05 16:10
Nur mal ein kurzer Ansatz (habe gerade wenig Zeit):
Mit ArtenTable.FieldByName(<Feldname>).AsString kannst du auf die Felder der der Tabelle zugreifen. Damit kannst du die Daten in die Edit-Felder übertragen und wieder zurück geben.
Tabakbrummel - Di 22.11.05 19:26
Hi
Mit den Edit-Felder übertragen habe ich hinbekommen im Button1 und zurück geben auch im FormShow.
Jetzt ist nun noch das Problem? In der DBGrid wenn ich in der zweiten Zeile gehe zeigen die Edits alles von der ersten Zeile der DBGrid an.
Mfg
Tabkbrummel
jasocul - Di 22.11.05 20:02
In deiner TDataSource gibt es ein Ereignis "OnDataChange". Dies wird u.a. ausgelöst, wenn du den Datensatz wechselst. D.h. du kannst jedesmal, wenn das Ereignis ausgelöst wird deine Edit-Felder automatisch neu füllen.
Aufpassen musst du nur, dass du einen Datensatzwechsel nicht zulässt, wenn du gerade in deinen Edit-Feldern etwas am Ändern bist.
Ich würde das DBGrid solange disablen.
Tabakbrummel - Di 22.11.05 20:23
Hi Jasocul
Jetzt weis ich nicht was ich für ein Quelltext in OnDataChange eintragen soll.
MfG
Tabakbrummel
Tabakbrummel - Di 22.11.05 20:33
Hi
Mit der OnDataChange habe ich hin bekommen.
jasocul hat folgendes geschrieben: |
Aufpassen musst du nur, dass du einen Datensatzwechsel nicht zulässt, wenn du gerade in deinen Edit-Feldern etwas am Ändern bist.
Ich würde das DBGrid solange disablen. |
Das mit den Datensatzwechsel verstehe ich nicht.
MfG
Tabakbrummel
jasocul - Mi 23.11.05 09:13
Angenommen, du bist gerade dabei, einen Datensatz zu verändern und wechselst dann im DBGrid die Zeile. Dann sind deine Änderungen in den Edit-Feldern dahin. Das kann natürlich so von dir gewollt sein, ist aber nicht die beste Lösung.
Entweder du sperrst das dBGrid (Enabled := False), solange du bearbeitest oder du prüfst im OnDataChange ob du gerade etwas am Ändern bist und gibst eine Meldung aus. Am besten noch mit der Möglichkeit den Datensatzwechsel abzubrechen oder die Änderungen automaitsch zu speichern.
Tabakbrummel - Mi 23.11.05 10:21
Hi Jasocul
Erst mal vielen Dank für deinen Antworten.
Ich weis nicht ob ich da richtig liege. DBGrind.Enable:= false im AfterEdit.
Da ist Problem. Wenn ich eine Eingabe ändere speichert es sie nicht ab.
Ich bin dann erst mal bis Heute abend ca 20 Uhr nicht im Netz.
MfG
Tabakbrummel
jasocul - Mi 23.11.05 10:48
Im AfterEdit von was?
Ich vermute von einem Edit-Feld.
Mach dir die Arbeit nicht so schwer.
Lege die Edit-Felder auf ein Panel. Solange der Anwender im DBGrid browst, ist das Panel disabled. Wenn der Anwender dann einen Button Ändern oder Erfassen drückt, wird das Panel enabled und das DBGrid disabled. Wird dann ein Button Speichern oder Abbruch gedrückt, wird das Panel wieder disabled und das DBGrid enabled.
Tabakbrummel - Mi 23.11.05 20:59
Hi Jasocul
Eigendlich meinte ich es das man in der DBGrid gar nichts editiert sondern nur über die TEdits. Da ist mein Problem wenn ich was editiere und abspeichere wird das editierte nicht abgespeichert.
MfG
Tabakbrummel
jasocul - Mi 23.11.05 22:15
Aha.
Du hast vermutlich im OnDataChange etwas in der Art gemacht:
Delphi-Quelltext
1:
| Edit1.Text := ArtenTable.FieldByName(<Feldname>).AsString; |
Wenn du die gemachten Änderungen speicher willst, musst du folgendes machen:
Delphi-Quelltext
1: 2: 3:
| ArtenTable.Edit; ArtenTable.FieldByName(<Feldname>).AsString := Edit1.Text; ArtenTable.Post; |
Das ganze für alle betroffenen Felder. Wenn du Daten erfasst, heißt es natürlich:
Delphi-Quelltext
1: 2: 3:
| ArtenTable.Append; ArtenTable.FieldByName(<Feldname>).AsString := Edit1.Text; ArtenTable.Post; |
Ich hoffe, dass ich das so richtig interpretiert habe. Falls nicht, stelle deinen Source doch mal hier rein. Dann wirds vermutlich leichter.
Tabakbrummel - Mi 23.11.05 23:02
Hi Jasocul
Ich Poste mal mein Quelltext.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: 355: 356: 357: 358: 359: 360: 361: 362: 363: 364: 365: 366: 367: 368: 369: 370: 371: 372: 373: 374: 375: 376: 377: 378: 379: 380: 381: 382: 383: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411: 412: 413: 414: 415: 416: 417: 418: 419: 420: 421: 422: 423: 424: 425: 426: 427: 428: 429: 430: 431: 432: 433: 434: 435: 436: 437: 438: 439: 440: 441: 442: 443: 444: 445: 446: 447: 448: 449: 450: 451: 452: 453: 454: 455: 456: 457: 458: 459: 460: 461: 462: 463: 464: 465: 466: 467: 468: 469: 470: 471: 472: 473: 474: 475: 476: 477: 478: 479: 480: 481: 482: 483: 484: 485: 486: 487: 488: 489: 490: 491: 492: 493: 494: 495: 496: 497: 498: 499: 500: 501: 502: 503: 504: 505: 506: 507: 508: 509: 510: 511: 512: 513: 514: 515: 516: 517: 518: 519: 520: 521: 522: 523: 524: 525: 526: 527: 528: 529: 530: 531: 532: 533: 534: 535: 536: 537: 538: 539: 540: 541: 542: 543: 544: 545: 546: 547: 548: 549: 550: 551: 552: 553: 554: 555: 556: 557: 558: 559: 560: 561: 562: 563: 564: 565: 566: 567: 568: 569: 570: 571: 572:
| unit Fischarten;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, DBCtrls, ExtCtrls, ComCtrls, DB, DBTables, ImgList, Buttons, Mask, ExtDlgs, SMDBGrid, DBGrids;
type TForm20 = class(TForm) Panel2: TPanel; SWSpeedButton8: TSpeedButton; SWSpeedButton6: TSpeedButton; SWSpeedButton5: TSpeedButton; SWButton1: TButton; SWButton2: TButton; SWButton3: TButton; SWButton4: TButton; SWSpeedButton7: TSpeedButton; OpenPictureDialog1: TOpenPictureDialog; ArtenTable: TTable; ArtenDataSource: TDataSource; Button5: TButton; ArtenTableID: TAutoIncField; ArtenTableFischart: TStringField; ArtenTableOrdnung: TStringField; ArtenTableFamilie: TStringField; ArtenTableLatein: TStringField; ArtenTableGruppe: TStringField; ArtenTableMaxLaenge: TFloatField; ArtenTableMaxGewicht: TFloatField; ArtenTableMaxAlter: TSmallintField; ArtenTableLaichzeit: TStringField; ArtenTableLebensraum: TStringField; ArtenTableAngeltechnik: TStringField; ArtenTableFormZahl: TFloatField; ArtenTableKapital: TFloatField; ArtenTableImage: TGraphicField; Bevel2: TBevel; SWPanel1: TPanel; RadioButton1: TRadioButton; RadioButton2: TRadioButton; MWTable: TTable; MWDataSource: TDataSource; MWSpeedButton5: TSpeedButton; MWSpeedButton6: TSpeedButton; MWSpeedButton7: TSpeedButton; MWSpeedButton8: TSpeedButton; MWPanel1: TPanel; MWButton1: TButton; MWButton2: TButton; MWButton3: TButton; MWButton4: TButton; MWDBGrid1: TSMDBGrid; SWDBGrid1: TSMDBGrid; Panel3: TPanel; MWDBEdit1: TEdit; Label1: TLabel; MWDBComboBox1: TComboBox; Label2: TLabel; Label3: TLabel; MWDBEdit2: TEdit; Label4: TLabel; Label5: TLabel; MWDBEdit4: TEdit; MWDBEdit3: TEdit; Label6: TLabel; MWDBEdit5: TEdit; Label7: TLabel; MWDBEdit6: TEdit; Label8: TLabel; MWDBEdit7: TEdit; Label9: TLabel; Label10: TLabel; Label11: TLabel; MWDBEdit8: TEdit; MWDBEdit9: TEdit; Label12: TLabel; MWDBEdit10: TEdit; Label13: TLabel; Label14: TLabel; Label15: TLabel; MWDBEdit11: TEdit; MWDBEdit12: TEdit; Label16: TLabel; Label17: TLabel; Label18: TLabel; SWDBEdit1: TEdit; SWDBComboBox1: TComboBox; SWDBEdit2: TEdit; SWDBEdit3: TEdit; SWDBEdit4: TEdit; SWDBEdit5: TEdit; SWDBEdit6: TEdit; SWDBEdit7: TEdit; SWDBEdit8: TEdit; SWDBEdit9: TEdit; SWDBEdit10: TEdit; SWDBEdit11: TEdit; SWDBEdit12: TEdit; Bevel1: TBevel; Bevel3: TBevel; Bevel4: TBevel; MWSpeedButton1: TSpeedButton; MWSpeedButton2: TSpeedButton; MWSpeedButton3: TSpeedButton; MWSpeedButton4: TSpeedButton; SpeedButton1: TSpeedButton; SWSpeedButton1: TSpeedButton; SWSpeedButton2: TSpeedButton; SWSpeedButton3: TSpeedButton; SWSpeedButton4: TSpeedButton; Shape1: TShape; MWDBImage1: TImage; SWDBImage1: TImage; procedure SpeedButton1Click(Sender: TObject); procedure MWDataSourceDataChange(Sender: TObject; Field: TField); procedure ArtenDataSourceDataChange(Sender: TObject; Field: TField); procedure MWSpeedButton2Click(Sender: TObject); procedure MWButton4Click(Sender: TObject); procedure MWButton3Click(Sender: TObject); procedure MWButton2Click(Sender: TObject); procedure MWButton1Click(Sender: TObject); procedure MWSpeedButton8Click(Sender: TObject); procedure MWSpeedButton7Click(Sender: TObject); procedure MWSpeedButton6Click(Sender: TObject); procedure MWSpeedButton5Click(Sender: TObject); procedure MWTableAfterScroll(DataSet: TDataSet); procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ArtenTableAfterScroll(DataSet: TDataSet); procedure SWSpeedButton1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure SWButton4Click(Sender: TObject); procedure SWButton1Click(Sender: TObject); procedure SWButton2Click(Sender: TObject); procedure SWButton3Click(Sender: TObject); procedure SWSpeedButton5Click(Sender: TObject); procedure SWSpeedButton6Click(Sender: TObject); procedure SWSpeedButton7Click(Sender: TObject); procedure SWSpeedButton8Click(Sender: TObject); procedure FormShow(Sender: TObject); private public end;
var Form20: TForm20;
implementation
uses VorgabenArtengruppe;
{$R *.dfm}
procedure TForm20.FormShow(Sender: TObject); begin Path16 := ExtractFilePath(Application.ExeName)+'DAT\Artengruppe'; SWDBComboBox1.Items.LoadFromFile (Path16); MWDBComboBox1.Items.LoadFromFile (Path16); RadioButton1.Checked := true; ArtenTable.First; SWDBEdit1.Text := ArtenTable.FieldByName('Fischart').AsString; SWDBEdit2.Text := ArtenTable.FieldByName('Ordnung').AsString; SWDBEdit3.Text := ArtenTable.FieldByName('Formzahl').AsString; SWDBEdit4.Text := ArtenTable.FieldByName('Kapital').AsString; SWDBEdit5.Text := ArtenTable.FieldByName('Latein').AsString; SWDBEdit6.Text := ArtenTable.FieldByName('Familie').AsString; SWDBEdit7.Text := ArtenTable.FieldByName('MaxLaenge').AsString; SWDBEdit8.Text := ArtenTable.FieldByName('Lebensraum').AsString; SWDBEdit9.Text := ArtenTable.FieldByName('Angeltechnik').AsString; SWDBEdit10.Text := ArtenTable.FieldByName('MaxGewicht').AsString; SWDBEdit11.Text := ArtenTable.FieldByName('Laichzeit').AsString; SWDBEdit12.Text := ArtenTable.FieldByName('MaxAlter').AsString; SWDBComboBox1.Text := ArtenTable.FieldByName('Gruppe').AsString; MWTable.First; MWDBEdit1.Text := MWTable.FieldByName('Fischart').AsString; MWDBEdit2.Text := MWTable.FieldByName('Ordnung').AsString; MWDBEdit3.Text := MWTable.FieldByName('Formzahl').AsString; MWDBEdit4.Text := MWTable.FieldByName('Kapital').AsString; MWDBEdit5.Text := MWTable.FieldByName('Latein').AsString; MWDBEdit6.Text := MWTable.FieldByName('Familie').AsString; MWDBEdit7.Text := MWTable.FieldByName('MaxLaenge').AsString; MWDBEdit8.Text := MWTable.FieldByName('Lebensraum').AsString; MWDBEdit9.Text := MWTable.FieldByName('Angeltechnik').AsString; MWDBEdit10.Text := MWTable.FieldByName('MaxGewicht').AsString; MWDBEdit11.Text := MWTable.FieldByName('Laichzeit').AsString; MWDBEdit12.Text := MWTable.FieldByName('MaxAlter').AsString; MWDBComboBox1.Text := MWTable.FieldByName('Gruppe').AsString; end;
procedure TForm20.SWSpeedButton8Click(Sender: TObject); begin ArtenTable.First; end;
procedure TForm20.SWSpeedButton7Click(Sender: TObject); begin ArtenTable.Prior; end;
procedure TForm20.SWSpeedButton6Click(Sender: TObject); begin ArtenTable.Next; end;
procedure TForm20.SWSpeedButton5Click(Sender: TObject); begin ArtenTable.Last; end;
procedure TForm20.SWButton3Click(Sender: TObject); begin ArtenTable.Edit; ArtenTable.FieldByName('Fischart').AsString := SWDBEdit1.Text; ArtenTable.FieldByName('Ordnung').AsString := SWDBEdit2.Text; ArtenTable.FieldByName('Formzahl').AsString := SWDBEdit3.Text; ArtenTable.FieldByName('Kapital').AsString := SWDBEdit4.Text; ArtenTable.FieldByName('Latein').AsString := SWDBEdit5.Text; ArtenTable.FieldByName('Familie').AsString := SWDBEdit6.Text; ArtenTable.FieldByName('MaxLaenge').AsString := SWDBEdit7.Text; ArtenTable.FieldByName('Lebensraum').AsString := SWDBEdit8.Text; ArtenTable.FieldByName('Angeltechnik').AsString := SWDBEdit9.Text; ArtenTable.FieldByName('MaxGewicht').AsString := SWDBEdit10.Text; ArtenTable.FieldByName('Laichzeit').AsString := SWDBEdit11.Text; ArtenTable.FieldByName('MaxAlter').AsString := SWDBEdit12.Text; ArtenTable.FieldByName('Gruppe').AsString := SWDBComboBox1.Text; ArtenTable.Post; ArtenTable.Refresh; ArtenTable.Next; ArtenTable.Prior; end;
procedure TForm20.SWButton2Click(Sender: TObject); begin case messageBox(handle, 'Wollen sie die Zeile wirklich löschen?' +chr(13)+'Dabei geht die Zeile unwiderruflich verloren!', 'Warnung', MB_ICONWARNING OR MB_YESNO OR MB_DEFBUTTON1) of IDNO: begin end; IDYES: begin ArtenTable.Delete; end; end; end;
procedure TForm20.SWButton1Click(Sender: TObject); begin SWDBEdit1.Clear; SWDBEdit2.Clear; SWDBEdit3.Clear; SWDBEdit4.Clear; SWDBEDIT5.Clear; SWDBEdit6.Clear; SWDBEdit7.Clear; SWDBEdit8.Clear; SWDBEdit9.Clear; SWDBEdit9.Clear; SWDBEdit10.Clear; SWDBEdit11.Clear; SWDBEdit12.Clear; SWDBEdit1.SetFocus; ArtenTable.Append; end;
procedure TForm20.SWButton4Click(Sender: TObject); begin ArtenTable.Cancel; end;
procedure TForm20.Button5Click(Sender: TObject); begin Close; end;
procedure TForm20.SWSpeedButton1Click(Sender: TObject); begin if OpenPictureDialog1.Execute then begin SWDBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; end;
procedure TForm20.ArtenTableAfterScroll(DataSet: TDataSet); begin if (ArtenTable.RecNo > 0) then SWPanel1.Caption := IntToStr(ArtenTable.RecNo) else SWPanel1.Caption := ''; end;
procedure TForm20.FormCreate(Sender: TObject); var i: integer; begin for i:=0 to ComponentCount-1 do if Components[i] is TPanel then (Components[i] as TPanel).ParentBackground:=false; end;
procedure TForm20.RadioButton2Click(Sender: TObject); begin MWTable.First; MWPanel1.Visible := true; MWButton1.Visible := true; MWButton2.Visible := true; MWButton3.Visible := true; MWButton4.Visible := true; MWDBGrid1.Visible := true; MWDBEdit1.Visible := true; MWDBEdit2.Visible := true; MWDBEdit3.Visible := true; MWDBEdit4.Visible := true; MWDBEdit5.Visible := true; MWDBEdit6.Visible := true; MWDBEdit7.Visible := true; MWDBEdit8.Visible := true; MWDBEdit9.Visible := true; MWDBEdit10.Visible := true; MWDBEdit11.Visible := true; MWDBEdit12.Visible := true; MWDBImage1.Visible := true; MWDBComboBox1.Visible := true; MWSpeedButton1.Visible := true; MWSpeedButton2.Visible := true; MWSpeedButton3.Visible := true; MWSpeedButton4.Visible := true; MWSpeedButton5.Visible := true; MWSpeedButton6.Visible := true; MWSpeedButton7.Visible := true; MWSpeedButton8.Visible := true; SWPanel1.Visible := false; SWButton1.Visible := false; SWButton2.Visible := false; SWButton3.Visible := false; SWButton4.Visible := false; SWDBGrid1.Visible := false; SWDBEdit1.Visible := false; SWDBEdit2.Visible := false; SWDBEdit3.Visible := false; SWDBEDit4.Visible := false; SWDBEdit5.Visible := false; SWDBEdit6.Visible := false; SWDBEdit7.Visible := false; SWDBEdit8.Visible := false; SWDBEdit9.Visible := false; SWDBEDit10.Visible := false; SWDBEdit11.Visible := false; SWDBEdit12.Visible := false; SWDBImage1.Visible := false; SWDBCombobox1.Visible := false; SWSpeedButton1.Visible := false; SWSpeedButton2.Visible := false; SWSpeedButton3.Visible := false; SWSpeedButton4.Visible := false; SWSpeedButton5.Visible := false; SWSpeedButton6.Visible := false; SWSpeedButton7.Visible := false; SWSpeedButton8.Visible := false; end;
procedure TForm20.RadioButton1Click(Sender: TObject); begin ArtenTable.First; SWPanel1.Visible := true; SWButton1.Visible := true; SWButton2.Visible := true; SWButton3.Visible := true; SWButton4.Visible := true; SWDBGrid1.Visible := true; SWDBEdit1.Visible := true; SWDBEdit2.Visible := true; SWDBEdit3.Visible := true; SWDBEdit4.Visible := true; SWDBEdit5.Visible := true; SWDBEdit6.Visible := true; SWDBEdit7.Visible := true; SWDBEDit8.Visible := true; SWDBEdit9.Visible := true; SWDBEdit10.Visible := true; SWDBEdit11.Visible := true; SWDBEdit12.Visible := true; SWDBImage1.Visible := true; SWDBCombobox1.Visible := true; SWSpeedButton1.Visible := true; SWSpeedButton2.Visible := true; SWSpeedButton3.Visible := true; SWSpeedButton4.Visible := true; SWSpeedButton5.Visible := true; SWSpeedButton6.Visible := true; SWSpeedButton7.Visible := true; SWSpeedButton8.Visible := true; MWPanel1.Visible := false; MWButton1.Visible := false; MWButton2.Visible := false; MWButton3.Visible := false; MWButton4.Visible := false; MWDBGrid1.Visible := false; MWDBEdit1.Visible := false; MWDBEdit2.Visible := false; MWDBEdit3.Visible := false; MWDBEdit4.Visible := false; MWDBEdit5.Visible := false; MWDBEdit6.Visible := false; MWDBEdit7.Visible := false; MWDBEdit8.Visible := false; MWDBEdit9.Visible := false; MWDBEdit10.Visible := false; MWDBEdit11.Visible := false; MWDBEdit12.Visible := false; MWDBImage1.Visible := false; MWDBComboBox1.Visible := false; MWSpeedButton1.Visible := false; MWSpeedButton2.Visible := false; MWSpeedButton3.Visible := false; MWSpeedButton4.Visible := false; MWSpeedButton5.Visible := false; MWSpeedButton6.Visible := false; MWSpeedButton7.Visible := false; MWSpeedButton8.Visible := false; end;
procedure TForm20.MWTableAfterScroll(DataSet: TDataSet); begin if (ArtenTable.RecNo > 0) then MWPanel1.Caption := IntToStr(ArtenTable.RecNo) else MWPanel1.Caption := ''; end;
procedure TForm20.MWSpeedButton5Click(Sender: TObject); begin MWTable.Last; end;
procedure TForm20.MWSpeedButton6Click(Sender: TObject); begin MWTable.Next; end;
procedure TForm20.MWSpeedButton7Click(Sender: TObject); begin
MWTable.Prior; end;
procedure TForm20.MWSpeedButton8Click(Sender: TObject); begin MWTable.First; end;
procedure TForm20.MWButton1Click(Sender: TObject); begin MWDBEdit1.Clear; MWDBEdit2.Clear; MWDBEdit3.Clear; MWDBEdit4.Clear; MWDBEdit5.Clear; MWDBEdit6.Clear; MWDBEdit7.Clear; MWDBEdit8.Clear; MWDBEdit9.Clear; MWDBEdit10.Clear; MWDBEdit11.Clear; MWDBEdit12.Clear; MWTable.Append; end;
procedure TForm20.MWButton2Click(Sender: TObject); begin case messageBox(handle, 'Wollen sie die Zeile wirklich löschen?' +chr(13)+'Dabei geht die Zeile unwiderruflich verloren!', 'Warnung', MB_ICONWARNING OR MB_YESNO OR MB_DEFBUTTON1) of IDNO: begin end; IDYES: begin MWTable.Delete; end; end; end;
procedure TForm20.MWButton3Click(Sender: TObject); begin MWTable.FieldByName('Fischart').AsString := MWDBEdit1.Text; MWTable.FieldByName('Ordnung').AsString := MWDBEdit2.Text; MWTable.FieldByName('Formzahl').AsString := MWDBEdit3.Text; MWTable.FieldByName('Kapital').AsString := MWDBEdit4.Text; MWTable.FieldByName('Latein').AsString := MWDBEdit5.Text; MWTable.FieldByName('Familie').AsString := MWDBEdit6.Text; MWTable.FieldByName('MaxLaenge').AsString := MWDBEdit7.Text; MWTable.FieldByName('Lebensraum').AsString := MWDBEdit8.Text; MWTable.FieldByName('Angeltechnik').AsString := MWDBEdit9.Text; MWTable.FieldByName('MaxGewicht').AsString := MWDBEdit10.Text; MWTable.FieldByName('Laichzeit').AsString := MWDBEdit11.Text; MWTable.FieldByName('MaxAlter').AsString := MWDBEdit12.Text; MWTable.FieldByName('Gruppe').AsString := MWDBComboBox1.Text; MWTable.Edit; MWTable.Post; MWTable.Refresh; end;
procedure TForm20.MWButton4Click(Sender: TObject); begin MWTable.Cancel; end;
procedure TForm20.MWSpeedButton2Click(Sender: TObject); begin MWTable.Edit; MWTable.Post; end;
procedure TForm20.ArtenDataSourceDataChange(Sender: TObject; Field: TField); begin SWDBEdit1.Text := ArtenTable.FieldByName('Fischart').AsString; SWDBEdit2.Text := ArtenTable.FieldByName('Ordnung').AsString; SWDBEdit3.Text := ArtenTable.FieldByName('Formzahl').AsString; SWDBEdit4.Text := ArtenTable.FieldByName('Kapital').AsString; SWDBEdit5.Text := ArtenTable.FieldByName('Latein').AsString; SWDBEdit6.Text := ArtenTable.FieldByName('Familie').AsString; SWDBEdit7.Text := ArtenTable.FieldByName('MaxLaenge').AsString; SWDBEdit8.Text := ArtenTable.FieldByName('Lebensraum').AsString; SWDBEdit9.Text := ArtenTable.FieldByName('Angeltechnik').AsString; SWDBEdit10.Text := ArtenTable.FieldByName('MaxGewicht').AsString; SWDBEdit11.Text := ArtenTable.FieldByName('Laichzeit').AsString; SWDBEdit12.Text := ArtenTable.FieldByName('MaxAlter').AsString; SWDBComboBox1.Text := ArtenTable.FieldByName('Gruppe').AsString; end;
procedure TForm20.MWDataSourceDataChange(Sender: TObject; Field: TField); begin MWDBEdit1.Text := MWTable.FieldByName('Fischart').AsString; MWDBEdit2.Text := MWTable.FieldByName('Ordnung').AsString; MWDBEdit3.Text := MWTable.FieldByName('Formzahl').AsString; MWDBEdit4.Text := MWTable.FieldByName('Kapital').AsString; MWDBEdit5.Text := MWTable.FieldByName('Latein').AsString; MWDBEdit6.Text := MWTable.FieldByName('Familie').AsString; MWDBEdit7.Text := MWTable.FieldByName('MaxLaenge').AsString; MWDBEdit8.Text := MWTable.FieldByName('Lebensraum').AsString; MWDBEdit9.Text := MWTable.FieldByName('Angeltechnik').AsString; MWDBEdit10.Text := MWTable.FieldByName('MaxGewicht').AsString; MWDBEdit11.Text := MWTable.FieldByName('Laichzeit').AsString; MWDBEdit12.Text := MWTable.FieldByName('MaxAlter').AsString; MWDBComboBox1.Text := MWTable.FieldByName('Gruppe').AsString; end;
procedure TForm20.SpeedButton1Click(Sender: TObject); begin Form21.ShowModal; end;
end. |
Mfg
Tabkbrummel
Tabakbrummel - Do 24.11.05 01:16
Hi Jasocul
Ich habe es hin bekommen, es lag irgend wie an der DataCource oder TTable.
Noch mal vielen Dank für deine Mühe.
[/Edit] Geht doch nicht liegt am OnDataChange.
MFg
Tabakbrummel
jasocul - Do 24.11.05 09:12
Im OnDataChange sehe ich keine Fehler. Bitte schreibe nächstes mal, was nicht geht (Was passiert oder passiert nicht?). Das erleichtert die Fehlersuche.
Die Procedure "MWButton3Click" ist sicher falsch. Bitte wie folgt ändern:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| begin procedure TForm20.MWButton3Click(Sender: TObject); begin MWTable.Edit; MWTable.FieldByName('Fischart').AsString := MWDBEdit1.Text; MWTable.FieldByName('Ordnung').AsString := MWDBEdit2.Text; MWTable.FieldByName('Formzahl').AsString := MWDBEdit3.Text; MWTable.FieldByName('Kapital').AsString := MWDBEdit4.Text; MWTable.FieldByName('Latein').AsString := MWDBEdit5.Text; MWTable.FieldByName('Familie').AsString := MWDBEdit6.Text; MWTable.FieldByName('MaxLaenge').AsString := MWDBEdit7.Text; MWTable.FieldByName('Lebensraum').AsString := MWDBEdit8.Text; MWTable.FieldByName('Angeltechnik').AsString := MWDBEdit9.Text; MWTable.FieldByName('MaxGewicht').AsString := MWDBEdit10.Text; MWTable.FieldByName('Laichzeit').AsString := MWDBEdit11.Text; MWTable.FieldByName('MaxAlter').AsString := MWDBEdit12.Text; MWTable.FieldByName('Gruppe').AsString := MWDBComboBox1.Text; MWTable.Post; end; |
Dein AfterScroll kannst du auch rausschmeißen. Spätestens wenn du die BDE rausschmeißt und/oder auf eine richtige DB wechselst, wird dir RecNo nicht mehr die gewünschten Werte geben.
Ansonsten kannst du das auch ins MWDataSourceDataChange umlagern. Dann sparst du dir das AfterScroll.
Mehr konnte ich auf die Schnelle nicht sehen.
Benutzt du D7Pro oder D7Arch?
Tabakbrummel - Do 24.11.05 11:58
Hi Jasocul
Wenn ich ein neuen Datensatz anlege und in abspeicher funkioniert es, aber wenn ich z.B. ein Fehler eingeschlichen hat (z.B. ein Feld vergessen wird). Nun korregiere ich den fehler im TEdit und speichere. Es wird in DBGrid der korregierte Fehler nicht angezeigt und auch nicht in der Arten.db gespeichert.
Ich benutze Delphi 2005 Pro
Mfg
Tabakbrummel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!