Zmienna i Kontrolki

Odpowiedz Nowy wątek
Belnoth
2012-06-05 12:24
Belnoth
0

Witam wszystkich,
Czy jest możliwość połączenia zmiennej z property kontrolki na przykład z text editbox'a. W ten sposób, że każda zmiana zmiennej
prowadzi automatycznie do zmiany property editboxa.

Bardziej obrazowo.
Mam klasę która, pobiera i edytuje swoje zmienne. Te zmienne chce wyświetlić w gui. Ale nie chciałbym robić tego na zasadzie timera i sprawdzeniu czy dana zmienna się zmieniła. Jeżeli tak to Edit.Text = Obiekt.GetVariable;. Wolałbym to zrobić na zasadzie jakiegoś stałego linku, jeżeli jest to w ogóle możliwe.

Pozostało 580 znaków

mikas
2012-06-05 12:31
mikas
0

a jeśli klasa będzie miała procedurę, która będzie ustawiała jej wartości jako podstawione do niej parametry? można wtedy od razu ustawić w kontrolce to co chcesz

Pozostało 580 znaków

2012-06-05 13:16

Rejestracja: 10 lat temu

Ostatnio: 2 minuty temu

0

No to ja mam dwa sposoby. Możesz zrobić tak

procedure ZmienProperty(Value: Integer);
begin
  Edit1.Property := Value;
  Edit1.InnaProperty := {cos innego};
end;

i teraz pierwszy sposób to pozamieniać wszystkie

Edit1.Propert := {coś tam};

na ZmienPropert({coś tam});

albo możesz napisać swój komponent dziedziczący po **TEdit** i zrobić 
```delphi
 property JakasTamProperty : Integer read FjakasTam write ZmienProperty;

edytowany 2x, ostatnio: TomRiddle, 2012-06-05 14:47
Można by podpiąć się pod zdarzenie "OnChange", wywołać go za pomocą "inherited" i dodać kopiowanie tekstu z kontrolki do zmiennej; - furious programming 2012-06-05 19:08

Pozostało 580 znaków

2012-06-05 14:08
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 3 minuty temu

Lokalizacja: Tuchów

0

Nie bardzo rozumiem co chcesz osiągnąć, ale najlepszym sposobem na to jest napisanie własnego komponentu i dodanie obsługi takiej zmiennej tak, jak napisał wyżej @TomRiddle;

Jeśli jednak korzystasz z zewnętrznej zmiennej, możesz w zdarzeniu OnChange kontrolki z klasy TEdit skopiować tekst kontrolki do zmiennej; Jednak będziesz musiał napisać zewnętrzną procedurę do każdej kontrolki, z której potrzebujesz pobierać wartość do zmiennej; Korzystając z przerobionego TEdit będziesz miał wszystko w środku kontrolki i nie będziesz musiał pisać tego dla każdej kontrolki z osobna;


Pozostało 580 znaków

Belnoth
2012-06-05 14:30
Belnoth
0

Chcę osiągnąć coś na zasadzie LiveBinding. Gdzie zmiana jednego elementu komponentu ma wpływ bezpoś na drugi komponent. Tylko nie chce tego robić pomiędzy komponentami a pomiędzy komponentem a zmienną, która siedzi sobie gdzieś. Nie chce umieszczać procedur ustawiających text editboxa ( czy inny komponent ) ze względu na to, że chcę uniezależnić gui od zastosowanych klas.

Pozostało 580 znaków

2012-06-05 14:57
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 3 minuty temu

Lokalizacja: Tuchów

0

No to wykorzystaj zdarzenie OnChange komponentu, skoro nie chcesz przerabiać samych kontrolek;


Pozostało 580 znaków

Odpowiedz

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