MouseCapture
5. Apr 2012, 09:04
Delphi-Version: 7
Hallo,
ich habe ein Problem mit dem Mausereignis.
Problem:
Ein Form mit einem DBGrid (im oberen Bereich) und Eingabefeldern (im unteren Bereich) .
Bei Mouseup oder Wheel oder UP/Down Key ... im Grid werden die Daten für die Eingabefelder geladen.
Zum Beispiel Lieferbedingungen.
Ein Eingabefeld (Versandart) öffnet ein weiteres Form das nur ein DBGrid mit
den verfügbaren Versandarten enthält. Dort wird bei Mousedown das Fenster geschlossen
und die Daten werden übergeben.
// ceLIBD_A_VERSANDART.Text := FormMain.pub_loadgrid_nr
Je nach Anzahl der Datensätze und Screengröße blendet sich das 2. Form über das DBGrid im
ersten Form. Das erste Form bekommt dann das Mouseup im DBGrid und die Felder werden neu geleden.
Damit sind die übergebenen Werte wieder weg.
Versuche:
1. Mousecapture im Form welches das 2. Aufruft
procedure TFormHilfsdaten.ceLIBD_A_VERSANDARTButtonClick(Sen der: TObject);
begin
MouseCapture := true;
Auswahlliste('VERA',Self.Top + Self.ceLIBD_A_VERSANDART.Top,Self.Left + Self.ceLIBD_A_VERSANDART.Left);
// 2. Form wird normalerweise under dem ComboEdit angezeigt, sind aber mehr Datensätze enthalten dann
// wird der ganze Screen benutzt.
if FormMain.pub_loadgrid_nr <> '' then ceLIBD_A_VERSANDART.Text := FormMain.pub_loadgrid_nr ;
MouseCapture := false;
end;
Brinmgt aber nix, das Mouseup kommt trotzdem auf das Grid, obwohl das fukusierte
Element das Comboedit ist.
2. Mousecapture bei onclose oder onclosequery im 2. Form
Tut es auch nicht.
Lösungsansatz:
Beim Schließen des 2. Forms alle Mausereignisse abfangen.
Frage:
Wie geht dem ?
|