AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBLookupCombo: Gibt´s was Besseres?

DBLookupCombo: Gibt´s was Besseres?

Ein Thema von NSI · begonnen am 1. Feb 2006 · letzter Beitrag vom 1. Feb 2006
Antwort Antwort
NSI

Registriert seit: 20. Aug 2004
16 Beiträge
 
#1

DBLookupCombo: Gibt´s was Besseres?

  Alt 1. Feb 2006, 13:21
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hi!

Ich wollte "mal schnell" ... und jetzt hänge ich schon einen halben Tag durch:

Ich suche eine DBLookupCombo mit folgenden Fähigkeiten:
  • Autolocator möglichst mit Reduktion der Liste (optional)
  • Eventmeldung, wenn die Eingabe in der Liste fehlt (um einen neuen DS anzulegen)
  • Unterstützung des Mausrads, wenn die Liste auf ist
  • Delphi 2006-"fähig"
Vom Verhalten also vergleichbar mit der Combo aus Access.

Da ich kein begandeter Komponenten-Bastler bin, aber - solange es im Rahmen bleibt - zahlwillig, bin ich gleichermaßen für Kaufkomponenten empfänglich (wenn es keine alternative dazu gibt, natürlich).

Jeder Tipp ist willkommen.

Norbert
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#2

Re: DBLookupCombo: Gibt´s was Besseres?

  Alt 1. Feb 2006, 15:00
Also, warum MouseWheel in DBLookupCombo nicht implementiert ist, ist mir auch nicht klar.
Wieder typisch Borland, einfach vergessen, aber an dem solls nicht scheitern.

Der DBGrid reagiert auf das MausRad, also dort (mit leichter Modifikation) abgekupfert.

Delphi-Quellcode:
unit DBLookupComboBoxEx;

interface

uses
  Windows, SysUtils, Classes, Controls, Messages, DBCtrls, Types;

type
  TDBLookupComboBoxEx = class(TDBLookupComboBox)
  private
  protected
    function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
    function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
  public
  published
    property OnMouseWheelDown;
    property OnMouseWheelUp;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('XPCtrls', [TDBLookupComboBoxEx]);
end;

{ TDBLookupComboBoxEx }

function TDBLookupComboBoxEx.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
  Result := False;
  if Assigned(OnMouseWheelDown) then
    OnMouseWheelDown(Self, Shift, MousePos, Result);
  if (not Result) and (ListSource.DataSet.Active) then
  begin
    Perform(WM_KEYDOWN, VK_DOWN, 0); // Tastaturereignis wird der ComboBox untergejubelt
// ListSource.DataSet.MoveBy(1); // Originalzeile aus DBGrid
    Result := True;
  end;
end;

function TDBLookupComboBoxEx.DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
  Result := False;
  if Assigned(OnMouseWheelUp) then
    OnMouseWheelUp(Self, Shift, MousePos, Result);
  if (not Result) and (ListSource.DataSet.Active) then
  begin
    Perform(WM_KEYDOWN, VK_UP, 0); // Tastaturereignis wird der ComboBox untergejubelt
// ListSource.DataSet.MoveBy(-1); // Originalzeile aus DBGrid
    Result := True;
  end;
end;

end.
Damit hätten wir mal das MouseWheel.

Edit: Bei der DBLookupListBox isses natürlich genauso , also weitere Compos erzeugen
Otto
  Mit Zitat antworten Zitat
NSI

Registriert seit: 20. Aug 2004
16 Beiträge
 
#3

Re: DBLookupCombo: Gibt´s was Besseres?

  Alt 1. Feb 2006, 16:09
Zitat von Ferber:
Also, warum MouseWheel in DBLookupCombo nicht implementiert ist, ist mir auch nicht klar.{...}
Wow! Ich sehe, ich sollte mich doch dringend mal mit dem erweitern vorhandener Compos auseinander setzen (Problem: Davor wäre halt noch so viel anders zu erledigen, was Delphi know how betrifft... ).

Das mit dem Lookup / Neu kann ich evtl. mit einer etwas anderen Bedienung realisieren (man muss halt einen button anklicken, um einen neuen Eintrag anzuhängen). Wobei ich weiterhin gespannt bin, wie das weitergeht; dass hier mal schnell eine passende Komponente entstehen könnte, hatte ich zugegebenermaßen nicht erwartet.

Hatte ich mich eigentlich schon bedankt?
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#4

Re: DBLookupCombo: Gibt´s was Besseres?

  Alt 1. Feb 2006, 16:32
Gern geschehen !

Zitat von NSI:
  • ...
  • Autolocator möglichst mit Reduktion der Liste (optional)
  • Eventmeldung, wenn die Eingabe in der Liste fehlt (um einen neuen DS anzulegen)
    ...
Das sind interessante Anregungen.
Jedoch lässt die DBLookUpComboBox IMHO nur Eingabewerte zu, die in der Lookup-Datenmenge vorhanden sind.
Oder bin ich da auf dem Holzweg
Otto
  Mit Zitat antworten Zitat
NSI

Registriert seit: 20. Aug 2004
16 Beiträge
 
#5

Re: DBLookupCombo: Gibt´s was Besseres?

  Alt 1. Feb 2006, 18:51
Zitat von Ferber:
Gern geschehen !

Zitat von NSI:
  • ...
  • Autolocator möglichst mit Reduktion der Liste (optional)
  • Eventmeldung, wenn die Eingabe in der Liste fehlt (um einen neuen DS anzulegen)
    ...
Das sind interessante Anregungen.
Jedoch lässt die DBLookUpComboBox IMHO nur Eingabewerte zu, die in der Lookup-Datenmenge vorhanden sind.
Oder bin ich da auf dem Holzweg
Ein Event "Nicht in der Liste" wäre da die Lösung, um zu Fragen, ob der Eintrag als neues Element in die zugrundeliegende Tabelle rein soll - noch ein paar Zeilen Code für ggf. Index etc. - requery - und das ganze ist glatt und schick in die Benutzerführung integriert. Das mit der Reduktion ist eher ein optischer Gag, kommt aber gut... .
  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 17:09 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