Odwołanie do konkretnego edita...

0

Witam. Mam taki problem. Mam na formantce tak rozłożone objekty:

edit1 button1
edit2 button2
itd...

Pytanie: Jak napisac uniwersalny kod, aby po naciśnięciu na button1 odwołać się do edit1 (np. wpisać tekst), a po nacisnięciu na button2 odwołać się do edit2?? Nie chcę pisać do kazdego buttona osobnej procedury, tylko jedną uniwersalną(jak się da :D ). dzięki z góry za pomoc... [browar]

0

Napisz jedną procedurę obsługi zdarzenia i wykorzystaj parametr Sender.

//DOPISANE
No może za bardzo lakonicznie powiedziałem. Napisz taką procedurę :

procedure TForm1.Button1Click(Sender: TObject);
var
   Edit : TEdit;
begin
   //szukamy odpowiedniego edita
   Edit:= TEdit(FindComponent('Edit'+Copy((Sender as TButton).Name, 7, 100)));
    //przykład użycia
   Edit.Text := (Sender as TButton).Name;
end;

i przypisujesz ją dla zdarzenia OnClick każdego Buttona.

0

Sorki, ale albo ja Cię nie zrozumiałem (bardzo możliwe ;P ) albo Ty mnie. Bo z tego co widzę, to Twoja procedura wstawia do edita nazwę buttona. A mi chodzi o to, zebym mógł wykonywać dowolne operacje na tym edicie. Aha. i jeszcze jedno. Buttony i edity nie nazywają się tak samo. Poza tym chciałem żeby to wyglądało tak:

procedura (lub funkcja) wykonująca instrukcje do edita
begin
...
end;

procedura button1click()
begin
//wywołująca procedurę wykonywania dla edit1
end;

procedura button2click()
begin
//wywołująca procedurę wykonywania dla edit2
end;

0

Może coś takiego...

Procedure NaEdit(nazwa:string;teskt:string);
begin
TEdit(FindComponent(nazwa)).text:=teskt;
end; 

Procedure durga;
begin
//Zmiana tekstu w edicie na podstawie jego nazwy
NaEdit('Edit2','tekst2');
NaEdit('Edit1','tekst1');

//lub poprostu
Edit1.text:='tekst1';
Edit2.text:='tekst2';
end;
0

a moze for i:=0 to form1.componentcount - 1 do
if form1.components[i].class = 'teidt' then ? nie pamietam czy to tak bylo :0

0
fuzzy86 napisał(a)

Sorki, ale albo ja Cię nie zrozumiałem (bardzo możliwe ;P ) albo Ty mnie. Bo z tego co widzę, to Twoja procedura wstawia do edita nazwę buttona. A mi chodzi o to, zebym mógł wykonywać dowolne operacje na tym edicie. Aha. i jeszcze jedno. Buttony i edity nie nazywają się tak samo. Poza tym chciałem żeby to wyglądało tak:

procedura (lub funkcja) wykonująca instrukcje do edita
begin
...
end;

procedura button1click()
begin
//wywołująca procedurę wykonywania dla edit1
end;

procedura button2click()
begin
//wywołująca procedurę wykonywania dla edit2
end;

To, co napisałem, to był tylko przykład. W miejsce wstawiania w Edit nazwy Buttona można wstawić cokolwiek, gdyż masz już wyszukany konkretny edit w zmiennej Edit :). A co to tego, że buttony i edity nie nazywają się tak samo to chyba zrozumiałe :) - podany przykład dotyczył tego co napisałeś w pierwszym poście butony nazywają się button1, button2...buttonn, natomiast edity edit1..editn.

0

Dzięki wszystkim, już znalazłem to co chciałem :D (oczywiście dzięki Waszej pomocy!!!) [browar]

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