[delphi] porównanie danych

0

Witam

Mam problem jakoś nie potrafię znaleźć rozwiązania do mojego programu ale do rzeczy...

W programie mam 10 editów do których wpisuje różne dane na starcie programu i teraz chciałbym aby w memo pokazać tylko te dane z editów, które uległy zmianie tylko nie wiem jak to porównanać i sprawdzić czy edit został zmieniony...

chciałem zrobić tak,.... po wpisaniu danych do editów przenieść je do memo1 w linijkach

memo1.lines[0]:=edit1.text;

i tak dalej.. a następnie porównywać tzn

if edit1.text <> memo1.lines[0] then memo2.lines[0] :=edit1.text;
if edit4.text <> memo1.lines[3] then memo2.lines[3] :=edit4.text;

bo chciałbym aby te dane które nie zostały zmienione nie pojawiły się w memo2.. ale podejrzewam, że ten sposób jest beznadziejny no i przy większej ilości editów bedzie bez sensu wykonanie tego oraz niepotrzebnie wykorzystuje memo2.

Jednak jak już pisałem w tej chwili nie potrafie wpaść na jakieś proste i sensowne rozwiązanie dlatego proszę o pomoc jak sprawdzać czy edity się zmienily i jeśli zmieniły to je przekazywać do memo1 w celu wyświetlenia

0

Siema.
Czy przy uruchomieniu programu wyświetlają się dane w Editach które wpisywałeś poprzednio? Mianowicie czy są zapisywane gdzies do pliku i odczytywane przy starcie?

Jeśli tak to dane z Editów przy starcie niech wpisują się linijka pod linijką do Memo, tak jak to robisz teraz.
Potem przy zmianie jakiejś danej w Ediicie/editach, oprogramuj Buttona aby wpisywał dane z editów, uprzednio czyszcząc memo (Memo1.Clear;).

:)

0

Edity tak jak Memo posiadają własnośći Modified i ją należy sprawdzić. Jeśli zwraca True to znaczy, że się
zawartość Edita zmieniła. Można też stworzyć dynamicznie StringList i dodać w pętli do niego zawartość 10
editów poprzez FindComponent: TEdit(FindComponent('Edit' + IntToStr(I))).Text; Tylko oczywiście musisz
te edity sensowanie ponazywać z cyframi na koncu. I wtedy w pętli sprawdzasz czy na przykłąd tekst z ów
Edita numer 3 równa się tekstowi w linijce StringListy o indeksie 2 (bo wiadomo linijki w TStringList od zera
są indeksowane). Można też nadać Editom unkalne własności Tsg (od 1 do 10) i w OnChange sprawdzać
jaki tag ma (Sender as TEdit) i w zależności od tego sprawdzić linijkę ze StringList, ale wydaje mi śię, ze w
sumie najprościej będzie skorzystać z własności Modifited o której napisałem w tej odpowiedzi, na początku.

0

Olesio dzięki skorzystałem z Modified :)

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