Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Sayıyı değiştirme
#1
Selam Listview de adet alanın var, adet alanını klavyeden sayı girerek artırma veya azaltmak istiyorum; seçili olan satırın sayılara basıldığında değerinin değişmesini nasıl sağlarım;

Örnek:
2
45
63 gibi sayılar girdiğimde önceki sayı silinip yerine yeni sayı yazılacak.


procedure TForm2.LVSatisSelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  with LVSatis do
  begin
    if Selected <> Nil then
    begin
     Selected.SubItems[1] := '2';
    end;
  end;
end;
Cevapla
#2
(08-06-2017, Saat: 19:26)serhat Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelam Listview de adet alanın var, adet alanını klavyeden sayı girerek artırma veya azaltmak istiyorum; seçili olan satırın sayılara basıldığında değerinin değişmesini nasıl sağlarım;

Örnek:
2
45
63 gibi sayılar girdiğimde önceki sayı silinip yerine yeni sayı yazılacak.


procedure TForm2.LVSatisSelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  with LVSatis do
  begin
    if Selected <> Nil then
    begin
     Selected.SubItems[1] := '2';
    end;
  end;
end;

Merhaba, ilgili kodu OnKeyDown/OnKeyPress gibi olay yöneticilerinin altına yazmalısınız. Tabi basılan tuşun numeric bir tuş olup olmadığını da kontrol etmeniz yararlı bir davranış olacaktır.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
Sanırım kısmen çözdüm; fakat sayıları yan, yana yazdırmadım, nerede hata yapıyorum acaba?

procedure TForm2.LVSatisKeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
var
 SL0, SL1, SL2, SL3, SL4, SL5, SL6, SL7, SL8, SL9: String;
 SL: TStringList;
begin
 Showmessage(Format('KeyValue = %d', [Key]));
 SL := TStringList.Create;
 try
   if (Format('%d', [Key]) = '96') then
   begin
     SL0 := '0';
   end;
   if (Format('%d', [Key]) = '97') then
   begin
     SL1 := '1';
   end;
   if (Format('%d', [Key]) = '98') then
   begin
     SL2 := '2';
   end;
   if (Format('%d', [Key]) = '99') then
   begin
     SL3 := '3';
   end;
   if (Format('%d', [Key]) = '100') then
   begin
     SL4 := '4';
   end;
   if (Format('%d', [Key]) = '101') then
   begin
     SL5 := '5';
   end;
   if (Format('%d', [Key]) = '102') then
   begin
     SL6 := '6';
   end;
   if (Format('%d', [Key]) = '103') then
   begin
     SL7 := '7';
   end;
   if (Format('%d', [Key]) = '104') then
   begin
     SL8 := '8';
   end;
   if (Format('%d', [Key]) = '105') then
   begin
     SL9 := '9';
   end;
   SL.Add(SL0 + SL1 + SL2 + SL3 + SL4 + SL5 + SL6 + SL7 + SL8 + SL9);
   Caption := SL.Text;
 finally
   SL.Free;
 end;
end;
Cevapla
#4
procedure TForm4.ListviewKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if (Ord(Key) >= 96) and (Ord(Key) <= 105) then
 begin
   Caption := GetCharFromVKey(Key);
 end;
end;



function TForm4.GetCharFromVKey(vkey: Word): string;
var
 keystate: TKeyboardState;
 retcode: Integer;
begin
 Win32Check(GetKeyboardState(keystate));
 SetLength(Result, 2);
 retcode := ToAscii(vkey, MapVirtualKey(vkey, 0), keystate, @Result[1], 0);
 case retcode of
   0:
     Result := ''; // no character
   1:
     SetLength(Result, 1);
   2:
     ;
 else
   Result := ''; // retcode < 0 indicates a dead key
 end;
end;


Kolay gelsin
Cevapla
#5
Hocam güzelde tek, tek sayılara basıldığında bu sayıları yan, yana nasıl alabilirim ki?
Cevapla
#6
Konu güncel, arka, arkaya sayılara basıldığında yan yana bu sayıları nasıl alabilirim.
Cevapla
#7
(11-06-2017, Saat: 13:18)serhat Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlKonu güncel, arka, arkaya sayılara basıldığında yan yana bu sayıları nasıl alabilirim.

Caption := SL.Text;
yazan yeri
Caption := Caption + SL.Text;
şeklinde değiştirerek   Huh
There's no place like 127.0.0.1
WWW
Cevapla
#8
Çok teşekkürler, İnsan bazen burnunu ucunu göremez dedikleri bu olsa gerek...
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Kelime Değiştirme Paranoyaq 12 255 10-02-2018, Saat: 17:45
Son Yorum: SimaWB
  [Çözüldü] Timer ile resim değiştirme Lord_Ares 4 437 16-04-2017, Saat: 04:09
Son Yorum: Lord_Ares
  Sayıyı Yazıya Çevirme delphi-x 0 453 31-01-2017, Saat: 21:22
Son Yorum: delphi-x
  Karakter rengini değiştirme izmirlikemal 2 982 23-11-2016, Saat: 23:45
Son Yorum: izmirlikemal
  WM_NCPAINT - delphi ile caption değiştirme. Shou 2 1.823 26-08-2016, Saat: 12:36
Son Yorum: Shou



Konuyu Okuyanlar: 1 Ziyaretçi