Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 28.02.2010 3:10

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)


Offline

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

Registrovaný: 11.01.09
Prihlásený: 22.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 28.02.2010 11:56

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
Príspevok Napísal autor témyOffline : 28.02.2010 16:39

Ď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.


Offline

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

Registrovaný: 11.01.09
Prihlásený: 22.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 28.02.2010 18:36

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
Príspevok Napísal autor témyOffline : 28.02.2010 19:42

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. :)


Odpovedať na tému [ Príspevkov: 5 ] 


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

1413

20.06.2009 20:22

SVD Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Delphi - prázdny edit

v Delphi, Visual Basic

2

524

08.09.2013 1:29

nBXXL Zobrazenie posledných príspevkov

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

v Delphi, Visual Basic

5

756

05.10.2011 12:40

Memorex88 Zobrazenie posledných príspevkov

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

v Delphi, Visual Basic

4

623

12.01.2017 15:55

void Zobrazenie posledných príspevkov

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

v Delphi, Visual Basic

4

1510

18.11.2006 13:30

p55p Zobrazenie posledných príspevkov

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

591

07.10.2018 19:08

peto145 Zobrazenie posledných príspevkov

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

1177

02.12.2007 12:11

MANIAC Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1107

11.05.2008 12:02

p360t Zobrazenie posledných príspevkov

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

v Monitory, televízory a projektory

4

250

06.07.2014 14:51

tarezni Zobrazenie posledných príspevkov

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

v Ostatné

5

834

16.04.2012 11:46

MakeLove Zobrazenie posledných príspevkov

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

v Ostatné

3

528

02.01.2017 19:50

michalesku Zobrazenie posledných príspevkov

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

v Monitory, televízory a projektory

3

2099

26.05.2008 23:18

a4000 Zobrazenie posledných príspevkov

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

v Intel čipové sady

2

782

18.06.2008 11:56

Jaro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Tablet, alebo smartfón s audio vstupom.

v Mobilné zariadenia

0

228

13.01.2014 2:19

Pavol.F Zobrazenie posledných príspevkov

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

489

17.08.2008 21:12

Spirit Zobrazenie posledných príspevkov

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

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Správy pre vedenie fóra

38

4773

19.05.2007 0:12

JanoF Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra