Witam, jak w temacie. Dotychczas ukrywałem jedynie formatkę za pomocą Form2.Hide, lecz chcę teraz wyłączyć, aby zmienne na formatce się wykasowały.
Jak wyłączyć formatkę.
- Rejestracja: dni
- Ostatnio: dni
Chodzi mi też o to, aby po wyłączeniu formatki, móc ją włączyć wprowadziwszy wcześniej nowe zmienne. Na przykład.
Form1:
c:string;
c:=edit1.text;
Form2:
edit2.text:=c;
Program czyta mi pierwszej formatce stringa i wyświetla w drugiej. Mi chodzi o to, żeby po naciśnięciu "Zamknij" w drugiej formatce, wprowadzeniu innego ciągu znaków w edit1 na pierwszej formatce i odpaleniu jeszcze raz drugiej wyświetlił ten nowy string. Teraz cały czas wyświetla pierwszy wczytany string.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 7923
przyswój sobie może jakieś podstawy na temat klas i obiektów bo pojęcie masz znikome. Poza tym twoje opisy tego co chcesz zrobić są tak zakręcone, że wątpię aby ktokolwiek połapał się o co ci chodzi
- Rejestracja: dni
- Ostatnio: dni
- Postów: 819
Pokaż fragment kodu jak odpalasz drugą formatkę.
- Rejestracja: dni
- Ostatnio: dni
Na 1 formatce
procedure TForm1.Button5Click(Sender: TObject);
begin
porz:=strtoint(edit2.Text);
count:=root;
Memo2.Visible:=True;
Memo2.Clear;
while count<>nil do
begin
if count^.lp=porz then edit:=count;
count:=count^.Next;
end;
if edit=nil then ShowMessage('Nie ma takiego elementu');
if edit<>nil then
begin
if edit^.wykszt='podsta' then szkola:='podstawowe';
if edit^.wykszt='wyzsze' then szkola:='wysze';
if edit^.wykszt='sredni' then szkola:='srednie';
if edit^.plec='M' then pl:='Mezczyzna';
if edit^.plec='K' then pl:='Kobieta';
memo2.lines.Add('Lp: '+inttostr(edit^.lp));
memo2.lines.Add('Wiek: '+inttostr(edit^.wiek));
memo2.lines.Add('Poparcie: '+edit^.popiera);
memo2.lines.Add('Plec: '+pl);
memo2.lines.Add('Wyksztalcenie: '+szkola);
memo2.lines.Add('Miasto: '+inttostr(edit^.miasto));
memo2.lines.Add('Zmiana zdania: '+edit^.czy);
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
porz:=strtoint(edit2.Text);
count:=root;
while count<>nil do
begin
if count^.lp=porz then edit:=count;
count:=count^.Next;
end;
if edit=nil then ShowMessage('Nie ma takiego elementu');
if edit<>nil then
begin
if edit^.wykszt='podsta' then szkola:='podstawowe';
if edit^.wykszt='wyzsze' then szkola:='wysze';
if edit^.wykszt='sredni' then szkola:='srednie';
if edit^.plec='M' then pl:='Mezczyzna';
if edit^.plec='K' then pl:='Kobieta';
Form2.Show;
end;
Druga formatka
procedure TForm2.Button3Click(Sender: TObject);
var
lat, m:integer;
pop,cz,ple,szkol:string;
begin
if combobox1.itemindex=0 then pop:='Tak';
if combobox1.itemindex=1 then pop:='Nie';
lat:=strtoint(edit1.text);
m:=strtoint(edit2.text);
if combobox2.itemindex=0 then ple:='K';
if combobox2.itemindex=1 then ple:='M';
if combobox3.itemindex=0 then szkol:='podsta';
if combobox3.itemindex=1 then szkol:='sredni';
if combobox3.itemindex=2 then szkol:='wyzsze';
if combobox4.itemindex=0 then cz:='Tak';
if combobox4.itemindex=1 then cz:='Nie';
count:=root;
while count^.lp<porz do
count:=count^.Next;
count^.popiera:=pop;
count^.wiek:=lat;
count^.miasto:=m;
count^.plec:=ple;
count^.wykszt:=szkol;
count^.czy:=cz;
new(NewOne);
NewOne:=root;
while not NewOne^.next^.lp=count^.lp do
begin
NewOne:=NewOne^.next;
end;
NewOne^.Next:=count;
form1.Memo1.Clear;
new(NewOne);
NewOne:=root;
while NewOne<>nil do
begin
if NewOne^.lp<10 then
form1.memo1.lines.Add(inttostr(NewOne^.lp)+' '+inttostr(NewOne^.wiek)+' '+NewOne^.popiera);
if NewOne^.lp>9 then form1.memo1.lines.Add(inttostr(NewOne^.lp)+' '+inttostr(NewOne^.wiek)+' '+NewOne^.popiera);
NewOne:=NewOne^.Next;
end;
Form2.Hide;
end;
- Rejestracja: dni
- Ostatnio: dni
Procedurę Button5Click dałem niepotrzebnie, nie ma ona tutaj żadnego znaczenia...
- Rejestracja: dni
- Ostatnio: dni
Dodam jeszcze że program ma edytować elementy listy jednokierunkowej. Wszzystko śmiga, jdeyną wadą jest brak możliwości zmiany elementu edytowanego..
- Rejestracja: dni
- Ostatnio: dni
- Postów: 819
Przed pokazaniem formatki drugiej trzeba uaktualnić jej komponenty np
//w procedurze TForm1.Button6Click
Form2.Edit1.Text:=Edit2.Text;
Form2.Edit2.Text:='coś tam';
//i dopiero
Form2.Show;