Toon posts:

[Delphi] wazig probleem met dbgrid*

Pagina: 1
Acties:

Verwijderd

Topicstarter
mensen,

ik heb een heel raar probleem

ik heb een dbgrid en een toolbutton toevoegen

de code achter die knop is:
code:
1
2
3
4
5
procedure TfrmBeheerApl.toolbtnAddClick(Sender: TObject);
begin
  dmFMS.ADOTable1.Insert;
  addQuery();
end;


dan komt de tabel/en ook de dbgrid in toevoeg modus en zie je ook dat ie een nieuwe regel in die grid zet, vervolgens kan ik mooi waarden invoeren in de dbeditvelden en na een post statement voegt ie alles braaf toe.


echter nu komt het probleem
wanneer ik eerst wat in de dbgrid ga rondklikken en vervolgens op die knop klik,
dan maakt ie geen nieuwe record aan maar blijft ie op het laatstgeklikte record staan
en wanneer ik dan in een dbedit iets wil invoeren begint ie ook meteen te springen in de dbgrid om de bijbehorende waarde te zoeken

heel wazig dus

maar nu komt het mooiste, die knop was dus een toolbutton
wanneer ik nu dezelfde code op een gewone button zet:
code:
1
2
3
4
5
procedure TfrmBeheerApl.Button1Click(Sender: TObject);
begin
  dmFMS.ADOTable1.Insert;
  addQuery();
end;


dan werkt het wel, of ik nu wel of niet geklikt heb in de dbgrid

hoe kan dit in hemelsnaam? en hoe los ik dat op?
ik wil namelijk vanwege de gui gebuik maken van die toolbuttons

[ Voor 2% gewijzigd door whoami op 19-12-2003 11:07 ]


Verwijderd

Topicstarter
nog mooier
heb een gewone button op die toolbar (waar die toolbutton op staat) erbij gezet
zelfde code erop, werkt prima
vervolgens de onclick van de toolbutton op button1click gezet
en hij doet hetw eer niet

het ligt dus aan de toolbutton, maar waarom? ik geef toch alleen maar een procedure op die hij moet uitvoeren bij het event onclick
waarom is dan de werking toch anders???

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Ik heb je topictitel aangepast en code tags toegevoegd. Gelieve er in het vervolg zelf even op te letten.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Grids vind ik zowiezo niet leuk om mee te werken, en al helemaal niet als je een gebruiker de mogelijkheid heeft om data te editten/toe te voegen op die grid.

Misschien kan je het omzeilen door eerst een MoveLast() oid te doen op je recordset vooraleer je die dataset in editmode zet en er een nieuw record aan toe voegt?

https://fgheysels.github.io/


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 27-05 23:27

Creepy

Tactical Espionage Splatterer

whoami schreef op 19 december 2003 @ 11:10:
Misschien kan je het omzeilen door eerst een MoveLast() oid te doen op je recordset vooraleer je die dataset in editmode zet en er een nieuw record aan toe voegt?
En toen drukte de gebruiker op cursor omhoog terwijl dat record in edit mode staat :P

Direct bewerken in een gid is een leuke feature, maar naar mijn idee nauwelijks bruikbaar. Ik zou er een los edit scherm voor maken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • schoene
  • Registratie: Maart 2003
  • Laatst online: 15:12
Check eerst of de Table nog in Edit mode is, in dat geval doe je een Post, voer daarna je huidige code in

(ik weet de code in Pascal niet, maar in C++Builder zo het zo zijn:)

C++:
1
2
if (dmFMS->ADOTable1->State == dsEdit)
  dmFMS->ADOTable1->Post ();

[ Voor 6% gewijzigd door schoene op 19-12-2003 11:47 ]


Verwijderd

Topicstarter
whoami schreef op 19 december 2003 @ 11:10:
Grids vind ik zowiezo niet leuk om mee te werken, en al helemaal niet als je een gebruiker de mogelijkheid heeft om data te editten/toe te voegen op die grid.

Misschien kan je het omzeilen door eerst een MoveLast() oid te doen op je recordset vooraleer je die dataset in editmode zet en er een nieuw record aan toe voegt?
ik ben niet aan het editten hierin, ik gebruik hem puur om te navigeren, het editten gebeurd in daarvoor bestemde editvelden. Met de grid kies ik dus eigenlijk het record dat ik ga wijzigen

die movelast werktte trouwens niet, het ligt niet aan de code, het ligt aan die toolbutton, die doet gewoon wat anders dan een standaard button, en waarom?
Geen flauw idee

Verwijderd

Topicstarter
schoene schreef op 19 december 2003 @ 11:47:
Check eerst of de Table nog in Edit mode is, in dat geval doe je een Post, voer daarna je huidige code in

(ik weet de code in Pascal niet, maar in C++Builder zo het zo zijn:)

C++:
1
2
if (dmFMS->ADOTable1->State == dsEdit)
  dmFMS->ADOTable1->Post ();
heeft er ook niks mee te maken
in beiden situaties is de state gewoon browse

  • klinz
  • Registratie: Maart 2002
  • Laatst online: 21-05 09:01

klinz

weet van NIETS

Het verschil tussen een TToolButton en een TButton is dat laatstgenoemde Focus kan krijgen. Bij klikken op de ToolBarButton verliest het grid de focus niet. Misschien kun je daar wat mee :-)

Verwijderd

Topicstarter
klinz schreef op 19 december 2003 @ 12:15:
Het verschil tussen een TToolButton en een TButton is dat laatstgenoemde Focus kan krijgen. Bij klikken op de ToolBarButton verliest het grid de focus niet. Misschien kun je daar wat mee :-)
YOU RULE!
dat si inderdaad de verklaring
ben je eeuwig dankbaar!

thx

  • klinz
  • Registratie: Maart 2002
  • Laatst online: 21-05 09:01

klinz

weet van NIETS

Ennuh, hoe heb je het nu opgelost? :-)
Pagina: 1