vb yapışkan tuş

Başlatan zenze, 22 Eylül 2008, 10:15:42

zenze

Vb ye yeni bakmaya başladım. Takıldığım bir konu var; oluşturduğum butona basılı tuttuğum sürece aynı bilgiyi porta göndermek istiyorum. Butonu bıraktığımda bilgi gönderme dursun. Buton yordamının böyle bir özelliği yok sanırım. (her click de bilgi gidiyor yada bir defa bastığımda devamlı bilgi gidiyor gerçi sonra durduramıyorum ama)nasıl yapılabilir.teşekkür ederim.

Klein

Delphi ile nasıl yapabileceğinizi söyleyeyim. VB de de aynı buton olayları varsa oraya uyarlayabilirsiniz.
Kod gönderme işini, bir timer nesnesinin onTimer olayına yazarsın. MouseDown rutinine  Timer'i başlatacak , MouseUp rutinine'de timer'i durduracak kodu yazarsınız.
var
  Form1: TForm1;
  i:integer;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
      inc(i);
      label1.Caption:=inttostr(i);
end;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Timer1.Enabled:=true;

end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled:=false;

end;

end.

semitesla

soruna cevap olmayacak ama mouse butonun ustunden ayrıldıgı zaman çalış veya uzerine geldiği zaman çalış diye eventler var.belki onlardan yararlanılabilir eğer çözüm bulursan lütfen burada paylaş.bende merak ettim nasıl yapılacağını.

zenze

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Command1.Caption = "Başla" Then
Command1.Caption = "Dur"
Timer1.Enabled = True
Else: Command1.Caption = "Başla"
Timer1.Enabled = False
End If

End Sub

Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Command1.Caption = "Dur" Then
Command1.Caption = "Başla"
Timer1.Enabled = False
Else: Command1.Caption = "Dur"
Timer1.Enabled = True
End If
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
Text1.Text = " "
End Sub

Private Sub Timer1_Timer()

Text1.Text = Text1.Text + "a"
End Sub

timer kullanarak böyle birşey yaptım butona basılı  olduğu sürece text kutusuna a karakterini yazıyor