Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid + DoubleClick (https://www.delphipraxis.net/5367-dbgrid-doubleclick.html)

bastos 3. Jun 2003 20:13


DBGrid + DoubleClick
 
moin,
ich möchte bei einer Zeile eines DBGrids mit einem Doppelklick eine Eingabemaske öffnen, wo der entsprechende Daensatz(aus paradox DB) zu der Zeile editiert werden kann.
Das mit dem Doppelklick funtzt ja(Eingabemaske wird geöffnet), aber er zeigt immer in den DBEdits den ersten Datensatz der Table an.
Wie kriege ich das hin, damit immer nur der entsprechende Datensatz angezeigt wird?
hoffe ihr versteht das problem.. ;-)
gruss
bastos

r_kerber 4. Jun 2003 06:12

Hallo bastos,

ich kann das nicht nachvollziehen. Bei mir wird immer der Datensatz angezeigt, auf den ich doppelt geklickt habe!

bastos 4. Jun 2003 08:26

hmmm,
ich weiss einfach nicht weiter, wahrscheinlich fehlt noch etwas im source...
ich weiss nur nicht wie ich dort angebe, welchen datensatz er nehmen soll...

Delphi-Quellcode:
procedure TFormMain.DBGridMainDblClick(Sender: TObject);
var
 myForm: TFormAendLoesch;
begin
   myForm:= TFormAendLoesch.Create(Application);
   myForm.ShowModal;
   myForm.Free;
end;
mfg
bastos

r_kerber 4. Jun 2003 08:30

Ich habe nur folgendes geschrieben:
Delphi-Quellcode:
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  Form2.ShowModal;
end;
Nutzen den DBEdits dieselbe DataSource wie das DBGrid?

bastos 4. Jun 2003 10:07

nein, das datasource der DBGrid ist doch auf der mainForm, und das datasource der DBEdits ist auf der eingabeForm...
kann man von der eingabeForm auf das datasource der mainForm zugreifen?!
oder:
kann man die miteinander verbinden? :|

r_kerber 4. Jun 2003 10:22

Selbstverständlich. Datei - Unit verwenden oder ALT F11

bastos 4. Jun 2003 11:02

ok,
in der auswahl beim datasource wird mir der datasource von dem DBGrid nicht angezeigt.
muss ich das so zuweisen?
Delphi-Quellcode:
procedure TFormAendLoesch.FormCreate(Sender: TObject);
begin
 DBEdit_Name.DataSource=FormMain.DBGridMain.DataSource;
end;
wenn ich das ausführe, öffnet er wieder nur den 1.datensatz der table...
sorry, hab noch nich so den plan :roll:
bastos

Natalia 4. Jun 2003 11:13

Hi, :)

probiere es mit einem DatenModul.
( Datei / Neu / Datenmodul)
da kannst du alle deine Tabellen und DataSourses
plazieren und von jedem Formular dadrauf zugreifen.

(Z.B. DataModule1.DataSourse1...)

Natalia

r_kerber 4. Jun 2003 11:14

Bei mir zeigt er an Form1.DataSource1. Welche Delphi-Version hast Du? Eventuell mußt Du einmal neu übersetezen.

r_kerber 4. Jun 2003 11:17

Zitat:

Zitat von Natalia
probiere es mit einem DatenModul.

Ich kann Natalia nur zustimmen. Das Prinzip ist aber dasselbe. Unit (des Datenmoduls) einbinden. Und nur mit einer Datasource für die Tabelle arbeiten.

bastos 4. Jun 2003 11:20

habe delphi 6 enterprise.
versuche mal das mit dem DataModul

bastos

r_kerber 4. Jun 2003 11:22

Ich hab's auch mit D6E getestet. Sollte also auch so funktionieren. DataModul ist natürlich besser wegen der Übersichtlichkeit.

bastos 4. Jun 2003 11:23

brauche ich die datasources weiterhin auf jedem form?
bzw. ich weise dann dem dataset der datasources das datamodul zu?

bastos

r_kerber 4. Jun 2003 11:24

Nein. Du mußt aber die Unit in die anderen Units mit uses einbinden

bastos 4. Jun 2003 18:40

hi,
das mit dem datamodul wollte nicht so richtig hinhauen, aber ich habe es geschafft, das datasource der mainForm zu verwenden, wie r_kerber mir zu beginn empfohlen hat. und es klappt!
die eingabeform war irgendwie nicht richtig im projekt eingebunden...
danke :o

r_kerber 5. Jun 2003 06:20

Zitat:

Zitat von bastos
das mit dem datamodul wollte nicht so richtig hinhauen,

Wo liegt das Problem? Ein Datamodul ist in jedem Fall zu empfehlen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 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-2025 by Thomas Breitkreuz