[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Pomoc zo vstupom Edit Delphi

Registrovaný: 20.06.09
Prihlásený: 20.01.13
Príspevky: 24
Témy: 8 | 8
NapísalOffline : 28.02.2010 3:10 | Pomoc zo vstupom Edit Delphi

Pekný deň.

Mohol by mi niekto prosím napísať alebo poradiť ako by som ošetril vstup nejakej premennej z políčka Edit tak aby sa do neho nedal napísať iný znak ako len definovaný?
Potrebujem aby sa v políčku Edit zobrazovali len reálne čísla (0-9) a desatinná čiarka ",".
Videl som to v nejakých programoch (aj v programoch tvorených delphi) že vstupy boli krásne ošetrtené tak že sa do nich v podstate ani nedal zapísať znak ktorý tam nemal čo robiť. Určite viete čo myslím.

Ja načítavam vstup takto:

Kód:
y_min:=(StrToFloat(form1.Edit1.Text));

Nedalo by sa to spraviť nejako cez if (tu je príklad čo myslím)
if StrToFloat(form1.Edit1.Text) = "0" or "1"   .... or "9"
then
else form1.Edit1.clear;


Alebo nebolo by to nejak vhodné cez vlastnosti editu: onChange a pod?

Ja vstupy ošetrujem cez funkciu try (pretože som to inak nevedel :( )

Kód:
try
.
.
**vznik chyby pri čítaní string a zaposovaní float**
**klasická chyba ak vo vzorci bude do premennej načítaný znak***
.
except
    on EConvertError do ShowMessage('Do políčka: "Zmena o x násobok" musíte zadať kladné reálne číslo od 0 do 99.');
  end;




(A mohli by ste mi ešte pomôcť z odkazom na internetovú stránku (vietew čo myslím, ak kliknem na nejaký lebel1.caption; z nápisom napr.: "www.adresa.sk" že mi otvorí prehliadač z tou stránkou. A niečo podobné len z odkazom na napísanie e-mailu. )
Vopred ďakujem veľmi by mi to pomohlo.
(Som len začiatočník v Delphi)


Online

Skúsený užívateľ
Skúsený užívateľ
Pomoc zo vstupom Edit Delphi

Registrovaný: 11.01.09
Prihlásený: 28.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOnline : 28.02.2010 11:56 | Pomoc zo vstupom Edit Delphi

Ošetrenie TEditu:
Kód:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin

  if not (Key in ['0'..'9', ',',#8]) then key := #0;

end;


Odoslanie e-mailu (tento postup ho odošle cez prednastavený program - v mojom prípade Outlook - teda nie priamo cez protokol SMTP):
Kód:
procedure TForm1.Label1Click(Sender: TObject);
begin

ShellExecute(0, 'open', 'mailto: uzivatel@gmail.com?subject=Tuto pride subjekt spravy&body=a tu text nachadzajuci sa v tele emailu', NIL, NIL, SW_SHOWNORMAL);

end;


Offline

Užívateľ
Užívateľ
Pomoc zo vstupom Edit Delphi

Registrovaný: 20.06.09
Prihlásený: 20.01.13
Príspevky: 24
Témy: 8 | 8
Napísal autor témyOffline : 28.02.2010 16:39 | Pomoc zo vstupom Edit Delphi

Ďakujem Fico krásne funguje to ošetrenie editu. A nedalo by sa to ešte ošetriť tak aby som do Edit mohol zapísať iba jednu čiarku? Pretože teraz sa tem dá napísať mnoho. Ak nie tak aj tak ďakujem funguje to ako som chcel.

Čo sa týka toho e-mailu tú funkciu: ShellExecute mi píše, že nemám, deklarovanú a neviem ako by som ju mal deklarovať pretože ani jej typ nepoznám.


Online

Skúsený užívateľ
Skúsený užívateľ
Pomoc zo vstupom Edit Delphi

Registrovaný: 11.01.09
Prihlásený: 28.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOnline : 28.02.2010 18:36 | Pomoc zo vstupom Edit Delphi

Tak tie dve čiarky by sa dalo pomocou premennej, ktorá by počítala ich výskyt, napríklad takto:
Kód:
var
  commaCount: integer = 0;

...

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin

  if (Key = ',') then begin 
    if (commaCount >= 1) then key:= #0;
    inc(commaCount);
  end;
  if not (Key in ['0'..'9', ',',#8]) then key := #0;

end;


// potom ale netreba zabudnúť vynulovať obsah premennej commaCount - napr pri vymazaní editu; prípadne sa može použiť algoritmus, ktorý pri každom zadaní znaku bude počítať počet čiarok. To je asi aj lepší spôsob

A k tomu e-mailu: zabudol som napísať, že do uses treba pripojiť knižnicu ShellAPI, tak sa ospravedlňujem :)


Offline

Užívateľ
Užívateľ
Pomoc zo vstupom Edit Delphi

Registrovaný: 20.06.09
Prihlásený: 20.01.13
Príspevky: 24
Témy: 8 | 8
Napísal autor témyOffline : 28.02.2010 19:42 | Pomoc zo vstupom Edit Delphi

Vďaka Fico, krásne to ide. Tú premennú načítavania som deklaroval ako celkovú v programe a každé načítanie nového znaku ukladám do tej premennej i:

Kód:
if (length(edit1.Text) = 0) then i:=0;

if (Key = ',') then begin
                        i:=(i+1);
                        if (i > 1 ) then begin
                                           key:=#0;
                                          end;
                       end;

if not (Key in ['0'..'9', ',',#8]) then key := #0;

*********************
i:=0; sa nachádza v onActivate form1.


A ten email ide krásne. Ešte raz dik. :)


 [ Príspevkov: 5 ] 


Pomoc zo vstupom Edit Delphi



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Delphi: Pomoc s Edit

v Delphi, Visual Basic

8

1457

20.06.2009 20:22

SVD

V tomto fóre nie sú ďalšie neprečítané témy.

Delphi - prázdny edit

v Delphi, Visual Basic

2

566

08.09.2013 1:29

nBXXL

V tomto fóre nie sú ďalšie neprečítané témy.

Delphi : Edit nacitanie cisel

v Delphi, Visual Basic

5

798

05.10.2011 12:40

Memorex88

V tomto fóre nie sú ďalšie neprečítané témy.

Delphi pomoc

v Delphi, Visual Basic

4

689

12.01.2017 15:55

void

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc v delphi

v Delphi, Visual Basic

4

1539

18.11.2006 13:30

p55p

V tomto fóre nie sú ďalšie neprečítané témy.

Prosím o menšiu pomoc s Delphi

v Delphi, Visual Basic

4

643

07.10.2018 19:08

peto145

V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc s programovaním programu v Delphi 7

v Delphi, Visual Basic

6

1205

02.12.2007 12:11

MANIAC

V tomto fóre nie sú ďalšie neprečítané témy.

delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1151

11.05.2008 12:02

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

Rekordér s HDMI vstupom

v Ostatné

3

558

02.01.2017 19:50

michalesku

V tomto fóre nie sú ďalšie neprečítané témy.

TV s pc vstupom

v Monitory, televízory a projektory

4

274

06.07.2014 14:51

tarezni

V tomto fóre nie sú ďalšie neprečítané témy.

Repro s optickym vstupom

v Ostatné

5

868

16.04.2012 11:46

MakeLove

V tomto fóre nie sú ďalšie neprečítané témy.

LCD monitor so SCART vstupom

v Monitory, televízory a projektory

3

2135

26.05.2008 23:18

a4000

V tomto fóre nie sú ďalšie neprečítané témy.

Zakladna doska s HDMI vstupom?

v Intel čipové sady

2

806

18.06.2008 11:56

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

Tablet, alebo smartfón s audio vstupom.

v Mobilné zariadenia

0

258

13.01.2014 2:19

Pavol.F

V tomto fóre nie sú ďalšie neprečítané témy.

Externý TV tuner pre NTB s CINCH vstupom

v Notebooky a netbooky

2

526

17.08.2008 21:12

Spirit

V tomto fóre nie sú ďalšie neprečítané témy.

edit

v Kôš

3

9

09.02.2018 11:48

valneti



© 2005 - 2024 PCforum, edited by JanoF