AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi ComboBox in StringGrid: OnExit geht, OnChange geht nicht!!??
Thema durchsuchen
Ansicht
Themen-Optionen

ComboBox in StringGrid: OnExit geht, OnChange geht nicht!!??

Ein Thema von cs.rumpelstilzchen · begonnen am 16. Sep 2004 · letzter Beitrag vom 17. Sep 2004
Antwort Antwort
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#1

ComboBox in StringGrid: OnExit geht, OnChange geht nicht!!??

  Alt 16. Sep 2004, 11:08
Hallo Leute! Ich bin neu hier und bitte um Nachsicht falls ich was verkehrt mache.

Zum Thema:

Ich progge gerade einen Abfrage-Editor für eine Datenbank. Die Abfragefelder habe ich als ComboBoxen zur Laufzeit erzeugt und den Grid-Zellen einer StringGrid (Name: SqlGrid) zugeordnet.

Code:
      MyFeld[iIdx] := TComboBox.Create(Self);
      MyFeld[iIdx].ItemHeight := SqlGrid.RowHeights[iIdx + 1];
      MyFeld[iIdx].Font := SqlGrid.Font;
      MyFeld[iIdx].BoundsRect := SqlGrid.CellRect(SQL_GRID_FELD,iIdx + 1);
      MyFeld[iIdx].Parent := SqlGrid;
      MyFeld[iIdx].Items := FeldStrings;
      MyFeld[iIdx].Style :=csDropDownList;
      MyFeld[iIdx].AutoCloseUp := true;
      MyFeld[iIdx].OnExit := MyFeldComboBoxExit;
      SqlGrid.Objects[SQL_GRID_FELD,iIdx + 1] := MyFeld[iIdx];
      MyFeld[iIdx].BringToFront;
procedure TDk32BstSqlComposerWnd.MyFeldComboBoxExit(Sender: TObject); Funktioniert soweit prima... aber:

Ich möchte die Inhalte der ComboBoxen in einer Zeile voneinander abhängig machen, d.h. zu einem gewählten Datenbankfeld auch nur sinnvolle Inhalte anbieten.
Dazu habe ich eine Ereignisprozedur geschrieben und diese an die entsprechenden ComboBoxen dem Ereignis OnExit zugewiesen. Auch das funktioniert prima, aber...
... eigentlich wollte ich das Ereignis OnChange benutzen!

   MyFeld[iIdx].OnChange := MyFeldComboBoxExit; Das funzt aber nicht! Es scheint, als würde das Ereignis gar nicht ausgelöst!
Testweise habe ich das ganze mal mit einer ComboBox im Formular ausprobiert, da geht das!

Es scheint also nur innerhalb einer StringGrid nicht zu gehen !!

Kann jemand helfen?
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: ComboBox in StringGrid: OnExit geht, OnChange geht nicht

  Alt 16. Sep 2004, 15:53
Wie soll den OnChange aufgerufen werden, wenn du die ComboBox davorschaltest?
Dann wird die doch angesprochen und überhaupt nicht das Feld in der Grid, oder hab ich jetzt was falsch verstanden?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#3

Re: ComboBox in StringGrid: OnExit geht, OnChange geht nicht

  Alt 16. Sep 2004, 15:59
Hallo Stevie!

Ich benutze das Ereignis OnChange der ComboBox, nicht des Grids! Mit dem Ereignis OnExit geht das wie gesagt!
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: ComboBox in StringGrid: OnExit geht, OnChange geht nicht

  Alt 16. Sep 2004, 17:35
Moin Rumpelstilzchen,

leg' das StringGrid mal auf ein Panel.
Das Panel solltest Du so einstellen, dass man anschliessend nichts mehr davon sieht (BevelInner und BevelOuter auf bvNone).
Als Parent für die ComboBox wird dann das Panel angegeben, nicht das StringGrid.
Beim StringGrid muss dann noch Align auf alClient gestellt werden, damit die relativen Positionen der Comboboxen passen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#5

Re: ComboBox in StringGrid: OnExit geht, OnChange geht nicht

  Alt 17. Sep 2004, 10:40
Danke Christian, funktioniert!

Allerdings nur, wenn ich das Align nicht auf alClient lege, vermutlich weil ich das StringGrid mit einer vertikalen ScrollBar benutze!??!

Sieht zwar irgendwie etwas merkwürdig aus das Ganze, aber ist in Ordnung so!

Insgesamt ist das dann wohl ein 'Workaround' (schräg durch die Brust ins Auge), oder gibt es irgendeine plausible Erklärung warum das OnChange innerhalb eines StringGrids nicht funktioniert? Eigentlich mag ich dieses Getüftel mit übereinanderliegenden Objekten usw. nicht, ist irgendwie keine saubere Programmierung, oder?

Kommt sowas unter Windows/Delphi öfter vor?

Nochmals danke für die Hilfe!
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#6

Re: ComboBox in StringGrid: OnExit geht, OnChange geht nicht

  Alt 17. Sep 2004, 11:08
Nochmal ich!

Also ich hab mir das Ganze nochmal in Ruhe angesehen und festgestellt, daß ich das Panel gar nicht brauche ! Ich kann als Parent genauso gut das Formular angeben !

Trotzdem danke für deinen Tip, ohne hätte ich das gar nicht herausgefunden!
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: ComboBox in StringGrid: OnExit geht, OnChange geht nicht

  Alt 17. Sep 2004, 16:16
Moin Rumpelstilzchen,

bitte, gerne.

Das Panel als Basis sollte nur die Berechnung der Position vereinfachen, da diese ja relativ zum Parent gerechnet wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz