Autor Beitrag
m.schultheis
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mo 01.09.03 17:32 
Hy Leute,

ich gebe in einem TEdit eine Telefonnummer ein, wenn diese schon in einer Tabelle vorhanden ist, dann möchte das die Telefonnummer automatisch aufgrund der Nummer in der Datenbank vervollständigt wird ...
sprich : ich gebe ein 880....

und im TEdit erscheint dann die Nummer: 880-9001 ...
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mo 01.09.03 19:03 
Hallo,

dazu benötigst du das onchange event des Edits. Und dann setzt du auf die Tabelle mit den telefonnummern einen filter. Und wenn ein datensatz durch den filter durchkommt, kann vervollständigt werden.

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 01.09.03 20:09 
Es gäbe auch die Möglichkeit, eine ComboBox als Eingabefeld zu nehmen, in die Items die Nummern reinzuschreiben. Min. ab Delphi 7 unterstützt die CB AutoVervollständigung.

Fragt sich nur, was Datenmengen-Mmäßig sinnvoller ist.
m.schultheis Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mo 01.09.03 21:28 
das funktioniert wunderbar danke ... ich frag mich ab und an warum einfache sachen nie auf der hand liegen ;o) aber ich hätte gerne das wenn ich schon eine ziffer eingebe , das er mir im combo auch schon einträge anzeigt, er zeigt sie nur an wenn er tatsächlich den kompletten zeichenstring gefunden hat ...
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 01.09.03 21:32 
Hmm, weiß gerade auf die Schnelle nimmer, wie sich das Teil verhält. Du suchst also eher so etwas, wie in Outlook, wenn man ne neue Mail schreibe, die Adresse eingibt und dann z.B. so ein weiteres Fenster unten erscheint, aus dem man den Empfänger auswählt?
Oder noch leichter gesagt, eine Art CodeInsight, wie in Delphi?

Hmm, das könnte ich auch gebrauchen, hat wer ne Idee?
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Mo 01.09.03 22:20 
hallo UGrohne!
ich hab diesen beitrag mal gefunden:

Zitat:

...eine Autovervollständigung in einer Combobox realisieren?
Autor: Simon Grossenbacher
Homepage: www.swissdelphicenter.ch
{
Ever wondered how to make a combobox
with autocomplete like the one in the explorer?
The trick is in the CB_FINDSTRING API call.
}


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
var 
  LastKey: Word; 

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; 
  Shift: TShiftState); 
begin 
  LastKey := Key; 
end

procedure TForm1.ComboBox1Change(Sender: TObject); 
var 
  Srch: string
  ix: Integer; 
begin 
  Srch := combobox1.Text; 
  if LastKey = $08 then 
  begin 
    LastKey := 0
    Exit; 
  end
  LastKey := 0
  ix := combobox1.Perform(CB_FINDSTRING, - 1, Longint(PChar(Srch))); 
  if ix > CB_ERR then 
  begin 
    combobox1.ItemIndex := ix; 
    combobox1.SelStart  := Length(Srch); 
    combobox1.SelLength := (Length(combobox1.Text) - Length(Srch)); 
  end
end;


hab ihn aber noch nicht getestet. vielleicht hilfts dir weiter

mfg, stefan
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 02.09.03 09:00 
grayfox hat folgendes geschrieben:
hallo UGrohne!
ich hab diesen beitrag mal gefunden:

Danke, werd ich bei Gelegenheit demnächst mal ausprobiern.
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Di 02.09.03 10:46 
So würde das gehen:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
DataSet.close;
DataSet.SelectSQL.text := 'SELECT * FROM TELNRTABELLE WHERE NR LIKE (Edit1.Text + '%'') ORDER BY NR';
Dataset.open.
Dateset.First;
while not dataset.EOF do begin
   ListBox.Lines.add (....);
   Dataset.next;
end;


Und dann wie bereits gesagt in das OnChange-Event des Edits.

_________________
Gruß
Hansa