Problem z procedura

0

Witam

Od razu napisze ze nie szukalem zbyt dokladnie na forum bo prawde mowiac nie wiem pod jakim haslem poszukac - jesli juz bylo takie pytanie to z gory przepraszam i prosze jednoczesnie o podanie linku do tematu

A problem mam nastepujacy:

Pisze sobie procedurke ktora sprawdzala by mi wartosc z podanego w parametrze pola i jesli bylby to float to OK a jesli nie to zwracala by komunikat. Procedura wyglada tak:

[code]procedure SprawdzenieCzyFloat(Pole: TObject)
begin
if (Pole.Text '') then
begin
try
StrToFloat(Pole.Text);
except
Pole.Text := '';
Application.MessageBox('Niepoprawna wartość !','',MB_OK);
Pole.SetFocus
end;
end;
end;[/code]

Tylko mam problem - jaka powinienem ustalic klase dla zmiennej Pole tak zebym mogl przekazywac tam maksymalnie jak najwiecej, roznego rodzaju komponentow?

Z gory dzieki za pomoc

0

Tylko mam problem - jaka powinienem ustalic klase dla zmiennej Pole tak zebym mogl przekazywac tam maksymalnie jak najwiecej, roznego rodzaju komponentow?

Z gory dzieki za pomoc

Ja ciebie nie zrozumialem..
Pole to u ciebie nie zmienna, a komponent TEdit.
Poza tym jakie ty chcesz komponenty przekazywac komponentowi?

Sprecyzuj swoj problem :-)

0

Kod byl tylko przykladem co chce zrobic.

Chodzi mi o to zeby zrobic taka procedure ktora by sprawdzala text zawarty w jakims komponencie - moze to byc TEdit, TMaskEdit, TComboBox, itd

Tylko ze nie chce pisac do kazdgo rodzaju komponentu osobnej procedury. Chcialbym zeby to byla jedna procedura, ktorej w parametrze przekazywalbym nazwe tego pola (pola ktorego wartosc ma zmienic) i najlepiej zebym nie musial sie martwic o jego klase.

Tzn zeby obojetnie czy podam w parametrze pole TEdit czy podam TComboBox - to zeby mi ta procedura sprawdzila zawarty w tym polu tekst a pozniej w zaleznosci od wyniku ustawila na nim focus

Mam nadzieje ze teraz troche wyjasnilem

pozdrawiam
Mateusz 'PEYN' Adamus

0

Po pierwsze w 100% uniwerslanej procedury nie stworzysz.
A co do samej procedury sprawdzaj jaki to typ klasy np

procedure testuj (Pole: TObject);
var
CzyPrawidlowyObiekt : boolean;
begin
CzyPrawidlowyObiekt := False;
if pole is tedit then
begin
//tutaj obsluga tego typu klasy
CzyPrawidlowyObiekt := True;
end;
if pole is tcombobox then
begin
//tutaj obsluga tego typu klasy
CzyPrawidlowyObiekt := True;
end;
if not CzyPrawidlowyObiekt then
begin
//jezeli nie znalazl obiektu np wywal blad
end;
end;

W ten sposób mozna obsluzyc pewne obiekty. Mozna rownierz patrzec ktore obiekty wywodza sie z jakiejs klasy i np te podstawowe obsluzyc

Co do ustawienia focusa na obiekcie nigdy tego nie robilem wiec ci nie moge pomoc.

0

Po pierwsze w 100% uniwerslanej procedury nie stworzysz.
A co do samej procedury sprawdzaj jaki to typ klasy np

procedure testuj (Pole: TObject);
var
CzyPrawidlowyObiekt : boolean;
begin
CzyPrawidlowyObiekt := False;
if pole is tedit then
begin
//tutaj obsluga tego typu klasy
CzyPrawidlowyObiekt := True;
end;
if pole is tcombobox then
begin
//tutaj obsluga tego typu klasy
CzyPrawidlowyObiekt := True;
end;
if not CzyPrawidlowyObiekt then
begin
//jezeli nie znalazl obiektu np wywal blad
end;
end;

Tak tez zrobilem. Tzn nie identycznie ale zasadniczo tak samo. Dzieki za pomoc

0 użytkowników online, w tym zalogowanych: 0, gości: 0