AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Grid auf Frame, TTable & DSource auf Form

Grid auf Frame, TTable & DSource auf Form

Ein Thema von f4k3 · begonnen am 27. Nov 2007 · letzter Beitrag vom 29. Nov 2007
Antwort Antwort
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#1

Grid auf Frame, TTable & DSource auf Form

  Alt 27. Nov 2007, 08:26
Datenbank: Paradox • Version: 7 • Zugriff über: BDE, Datasource
Moin Moin liebe DPler

hab folgendes Prob ...

hab zwei Grids ... Das eine Grid stellt die MIT.DB dar und das andere die Ben.db ...
die beiden Grids liegen auf nem Frame im Hauptprogramm ... der eigentliche Frame ist natürlich seperat in ner .pas datei ...

ich hab mein Hauptprogramm in die "uses"-Liste mit aufgenommen, da auf meinem Hauptprogramm quasi alle Datenbanken liegen ...
wenn ich nun von einem Grid die Proberty "Datasource" festlegen möchte, klappt dass wunderbar, und er zeigt mir noch vor der Laufzeit (quasi im Editiermodus)
die Datensätze korrekt ohne jedes gemoser an.

Sobald ich das Projekt compaliere, sind in beiden Grids keine Datensätze mehr vorhanden bzw. werden nicht angezeigt.
ich muss dazu sagen dass ich nur ein feld anzeigen lasse, nämlich das Feld indem der Name gespeichert ist.

So ... da ich die Datensätze von der Mit.db in die Ben.db kopieren möchte ist es natürlich äußert unvorteilhaft wenn ich keine Daten hab ^^

Des ganze soll so funktionieren ...

Wenn ich auf den Button ">>" (Hinzufügen) klicke, dann soll folgendes getan werden ...

Delphi-Quellcode:
fKundenTV.tBen.Edit; // Table im editier-modus setzen
    fKundenTV.tBen.Insert; // Datensatz hinzufügen

    fKundenTV.tBen.FieldByName('Name').AsString := fKundenTV.tMIT.FieldByName('Name').AsString; //beim aktuellen Datensatz "Namen", der Ben.db zuweisen;
    fKundenTV.tBen.FieldByName('Branche').AsString := fKundenTV.tMIT.FieldByName('Branche').AsString; //beim aktuellen Datensatz "Branche", der Ben.db zuweisen;

    fKundenTV.tBen.Post; // Das ganze speichern
Wenn ich auf den Button "<<" (Entfernen) klicke, dann soll folgendes getan werden ...

Delphi-Quellcode:
    if fKundenTV.tBen.FindNext = False then
    begin

          fKundenTV.tBen.Delete; // aktuellen Datensatz aus Ben.db Löschen

    end;
Ich brauch deshalb ne ausgelagerte Table, weils ne eigene Table für den "Endscreen gibt" ... in der dann auch ne Bilder Slideshow zu finden ist.

Könnt ihr evtl. tipps geben wie ich dem Problem auf die Schliche kommen könnte?
des Prob is halt ich krieg auch keine Fehlermeldung oder sonstiges, nur wenn ich versuch nen datensatz zu löschen wenn keiner mehr vorhanden ist
aber des lässt sich mit ner schönen if abfrage und TFieldByName regeln.

tHx für Eure Posts
Sascha
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Grid auf Frame, TTable & DSource auf Form

  Alt 27. Nov 2007, 11:27
Hallo,

nimm deine MainForm wieder aus der Uses-Anweisung deines Frames heraus. Die DataSource deiner Grids darfst du nicht in der Frame-Vorlage setzen. Diese Verknüpfung gehört in die Instanz, die du in deine MainForm eingebettet hast.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Grid auf Frame, TTable & DSource auf Form

  Alt 27. Nov 2007, 12:11
Mhm ... ok

Aber könntest du mir erklären wo der unterschied liegt wenn ich über meine von der Frame über meine Mainform aus auf die Instanz zugreife?
leuchtet mir noch ned wirklich ein ^^

Aber danke schonmal für die Hilfe werds gleich ma ausprobieren

Komischerweise hat ich dass Prob gestern mit RAD Studion 2007 nicht ...
in der Arbeit mit Delphi 7 hingegen schon ... auch irgendwie komisch ...

vllt. auch nur glück ... vllt liegts auch daran dass dass nicht mein Programm is, sondern ich nur für nen arbeitskollegen erweiter
Sascha
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Grid auf Frame, TTable & DSource auf Form

  Alt 28. Nov 2007, 08:58
Hallo,

ein Frame ist sowas wie eine ChildForm als Template - du sollst da keine unnötigen Abhängigkeiten hinein schreiben. Durch die Aufnahme einer bestimmten Form über USES tust du aber genau das.

Das unterschiedliche Verhalten von D7 und RAD Studio scheint mir nicht produktspezifisch zu sein. Ich vermute eher abweichende Pfade im Dateisystem.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#5

Re: Grid auf Frame, TTable & DSource auf Form

  Alt 29. Nov 2007, 14:36
mhm okay

Aber wie verhält sichs dann mit Programmcode?

Das dürfte quasi nichts anhaben wenn ich den in den einzenen frames niederschreibe oder?
Sascha
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Grid auf Frame, TTable & DSource auf Form

  Alt 29. Nov 2007, 16:44
Aber natürlich darf dein Frame Code enthalten, du darfst auch Units einbinden. Nur die feste Kopplung deines Frames an die später aufnehmende Form ist problematisch - und macht ja auch keinen Sinn.

Als Daumenregel würde ich dir empfehlen: Verknüpfe (USES) deinen Frame nur mit Units, die nicht mit deinem Projekt zusammen übersetzt werden. Dein Code in der Frame-Unit ist völlig unkritisch, wenn er in sich abgeschlossen ist. Ist eine Außenkommunikation - z.B. mit der aufnehmenden Form - notwendig, so kannst du die Verbindung zur Laufzeit und von der Form aus einrichten.

Freundliche Grüße
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf