Entwickler-Ecke

Datenbanken - programmgesteuert


löschi - Mi 15.01.03 21:42
Titel: programmgesteuert
Hallo,erst ma!

möchte über ein edit (Ereignis OnChange) eine Zahl auslesen. Beispiel:

Quelltext
1:
Edit1.Text := 10.3                    

möchte jetzt mit der Zahl vor dem Punkt mit Locate nach dem 10ten Datensatz suchen, oder dem 1ten je nachdem was für eine Zahl vor dem Punkt steht.

Quelltext
1:
adoquery4.Locate('id',edit1.text,[]);???????????                    

mit der Zahl hinter dem Punkt soll was ausgeführt werden. Beispiel:
ist die Zahl 4 dann mache was,
ist die Zahl 5 dann mache was anderes

kann mir jemand dabei helfen???
löschi

Moderiert von user profile iconTino: Code-Tags hinzugefügt.


CenBells - Do 16.01.03 01:08

hallo,
also erstmal würde ich nicht onchange verwenden, da du dann nicht weißt, ob noch eingaben kommen, oder ob die zahl wirklich zuende ist.

Beispiel:
Eingabe soll 10.3 sein, dann wird das onchange aber schon bei 1 ausgelöst....
Also bei onkeydown auf Enter (Key = #13) warten und dann die entsprechende funktion aufrufen.

Quelltext
1:
2:
if (key = #13) then
  MAchwas;


Des weiteren musst du die zahl vor dem punkt mit copy auslesen

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
  LLocateNr, LBefehlIdx: Integer;
...
begin
...
  LLocateNr := StrToInt(copy(Edit1.text, 1, pos('.',Edit1.Text)-1));
  LBefehlIdx := StrToInt(copy(Edit1.text, pos('.', Edit1.Text), length(Edit1.text)));
  case LBefehlIdx Of
  1: MachA;
  2: MachB;
  .
  .
  .
  end;  {case}
...


Gruß
KEn


löschi - Do 16.01.03 09:30

hi KEn!
hab das ma ausprobiert. funzt aber nich. kommt fehlermeldung: '.3' ist kein integerwert
gruß löschi


Mash - Do 16.01.03 09:43

Moin,

ich denke, Du bist schon selbst darauf gekommen, aber trotzdem:


Quelltext
1:
2:
3:
...
LBefehlIdx := StrToInt(copy(Edit1.text, pos('.', Edit1.Text) + 1, length(Edit1.text))); 
...


Gruß
mash


löschi - Do 16.01.03 09:47

danke !!!!!!!!!!!
funzt, bin halt nich der superprogger
löschi