Dynamiczny edit działa jest OK, pojawia się i znika, ale jak chcę sprawdźć, zdarzeniem w Buttonie czy nie jest pusty to wyskakuje błąd nie wiem czemu
wygląda to tak:
<font color="red"><font color="darkblue">procedure TFrm_1.ButtonClick(Sender: TObject);
begin
for i:=0 to ile_kontrolek-1 do
begin
if trim(dyn_edit[i].Text)='' then -> <font color="darkblue">tu jest błąd i nie wiem czemu</span>
begin
MessageBox('');
exit;
end;
end;
end;</span></span>
A tak nie działa?
if dyn_edit[i].Text='' then
//DOPISANE
w ogóle co to jest za zmienna : ile_kontrolek? Te dynamiczne edity sa trzymane w jakiejś tablicy czy co?
<quote>A tak nie działa?
if dyn_edit[i].Text='' then
Nie działa - próbowałem róznych rzeczy i jak na razie jest to dynamiczna tablica
dyn edit: array of TEdit;
- jaki błąd wyskakuje
- jak tworzysz Edity?
Po co masz robic tablice, integery i nie wiem co jeszce?
Umiesc te Edity w TStringList...
Czy ten błąd to nie aby access violation? Może nie tworzysz editów? Poza tym, nie jest ci potrzebna żadna zmienna do przechowywania ilości editów. Poczytaj o funkcjach Length(), Low() i High().
Umiesc te Edity w TStringList...
Chyba w TList? Poza tym, jeśli te edity nie będą usuwane, to raczej nie ma sensu stosować TList.
Dynamiczny edit działa jest OK, pojawia się i znika
Raczej beda usuwane. TStringList bylo odruchowo, ja zawsze tak robie, bo moge do nich dodawac jakis string np z pelniona funkcja, ale jak najbardziej TList jest rownie dobrym a nawet lepszym rozwiazaniem.
A wlasnie skoro sa usuwane to zamiast
0 to count -1
zrob count -1 downto 0
- jaki błąd wyskakuje
Acces violation
- jak tworzysz Edity?
1).
dyn_Edit: array of TEdit;
2).
for i:=0 to ilosc_kontrolek_do_wyswietlenia-1 do
begin
SetLength(dyn_edit,Length(dyn_edit)+1);
dyn_edit[i]:=TEdit.Create(self);
dyn_edit[i].Parent:=TabSheet1;
//itd przypisanie właściwosci editowi,
end;
for i:=0 to Form1.ControlCount-1 do
if (Form1.Controls[i] as tEdit).Text = '' Then
// pamietajac ze na formie sa same edity
for i:=0 to Form1.ControlCount-1 do
if (Form1.Controls[i] as tEdit).Text = '' Then
// pamietajac ze na formie sa same edity
Cześć! Bardziej poprawne byłoby:
for i:=0 to Form1.ControlCount-1 do
if (Controls[i] if TEdit) then
if (Form1.Controls[i] as tEdit).Text = '' Then
// teraz nie trzeba pamiętać, że na fomie są same Edit'y :)
for i:=0 to Form1.ControlCount-1 do
if (Controls[i] is TEdit) then
if (Form1.Controls[i] as tEdit).Text = '' Then
// teraz nie trzeba pamiętać, że na fomie są same Edit'y