Listviewden herhangi bir satır checked yapılarak o kayıtı düzenleme gibi işlemler yaptırıyorum;
Birden fazla kayıt seçildiğinde veya hiç kayıt seçilmemesi durumunda kullanıcı uyarılıyor, buraya kadar sorun yok fakat test için birden fazla checked yaparak veya tek tayıt seçerek kontrol yapıyorum bir süre sonra bir kayıt seçli olmasına rağman (if Items.CheckedCount > 1 then) devreye girerek uyarı mesajı geliyor bu sorun neden kaynaklı olabilir...
try
with TaslakListView do
begin
for I := Items.Count - 1 downto 0 do
begin
if Items.CheckedCount < 1 then
begin
MesajLabel.Text := 'Güncelleme işlemi için kayıt seçiniz.';
Exit;
end
else
begin
if Items.CheckedCount > 1 then
begin
MesajLabel.Text := 'Sadece bir kayıt seçiniz.';
Exit;
end
else
begin
if Items[I].Checked then
begin
with TaslakListView do
begin
for I := Items.Count - 1 downto 0 do
begin
Case Items.CheckedCount of
0: begin
MesajLabel.Text := 'Güncelleme işlemi için kayıt seçiniz.';
end;
1: begin
MesajLabel.Text := 'Sadece bir kayıt seçtiniz.';
end;
else
MesajLabel.Text := 'Birden fazka kayıt seçtiniz.';
end;
end;
end;
fesiharslan hocam sizin önerileriniz dahil bir kaç yöntem daha denedim, delphi android mi sıkıntı var anlayamadım! Checkedleri saydırma gibi bir çok yöntem denedim fakat if else then doğru çalışmıyor....
var
Say: Integer;
begin
try
Say := 0;
with TaslakListView do
begin
for I := Items.Count - 1 downto 0 do
begin
if Items[I].Checked then
begin
Say := Say + 1;
end;
if Say = 0 then
begin
RectangleMain.Visible := True;
RectangleMesaj.Visible := True;
MesajText.Text := 'Güncelleme işlemi için kayıt seçiniz.';
Exit;
end
else
begin
if Say > 1 then
begin
RectangleMain.Visible := True;
RectangleMesaj.Visible := True;
MesajText.Text := 'Birden fazla kayıt seçtiniz.';
Exit;
end
else
begin
if Items[I].Checked then
begin
Mantık hatasımı yapıyorum anlamadım! formu ilk açtığımda kodlar güzelce çalışıyor, sonra telefondan geri tuşu ile ana formma geri gelip tekrar taslak formu açtığımda kod tam olarak işlemi yapmıyor: hiç bir satır seçili değilken (Güncelleme işlemi için kayıt seçiniz) uyarısı devreye girmiyor, bir satır seçiliyken (Birden fazla kayıt seçiniz.) uyarısı devreye giriyor anlamadım gitti...
Telefondan geri tuşuna basıldığında açık olan formu kapatıyorum:
procedure TForm5.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
begin
if Key = vkHardwareBack then
Form5.Close;
end;
procedure TForm5.BtnGuncelClick(Sender: TObject); // Güncelleme
var
I: Integer;
begin
with TaslakListView do
begin
case Items.CheckedCount of
0:
begin
RectangleMain.Visible := True;
RectangleMesaj.Visible := True;
MesajText.Text := 'Güncelleme işlemi için kayıt seçiniz.';
end;
1:
begin
for I in Items.CheckedIndexes(True) do
begin
Form8.MesajEdit.Lines.Clear;
Form8.MesajEdit.Lines.add(Items[I].Text);
MesajUpdateId := StrToInt(Items[I].Tag.ToString);
Form8.Insert.Visible := False;
Form8.Update.Visible := True;
Form8.MesajEdit.SetFocus;
Form8.Show;
end;
end
else
begin
RectangleMain.Visible := True;
RectangleMesaj.Visible := True;
MesajText.Text := 'Birden fazla kayıt seçiniz.';
end;
end;
end;
Free;
end;