BUTTON-и ;)
30 отговора
0 прегледа
BUTTON-и ;)
VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT
С клавишите на горе на долу и на ляво и дясно искам като ги натискам да се натиска и бутона button.click Пробвах няколко начина и нищо не стана.
procedure TForm1.Form4KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_LEFT then
begin
end;
end;
procedure TForm1.KeyPress(Sender: TObject; var Key: Char);
begin
if key = #26 then
begin
// key := #0;
BEEP;
end;
end;
Как да го направя и къде ми е грешката?
М дааа...
С клавишите на горе на долу и на ляво и дясно искам като ги натискам да се натиска и бутона button.click Пробвах няколко начина и нищо не стана.
procedure TForm1.Form4KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_LEFT then
begin
end;
end;
procedure TForm1.KeyPress(Sender: TObject; var Key: Char);
begin
if key = #26 then
begin
// key := #0;
BEEP;
end;
end;
Как да го направя и къде ми е грешката?
М дааа...
Ако опишеш по-членоразделно проблема,ще ти помогна
Ако опишеш по-членоразделно проблема, ще ти помогна.
Просто не разбирам какво искаш и трябва да гадая:
Дали искаш като натиснеш стрелка да излиза буквичка ли?
Или да се изпълнява KeyPress?
button.click не е бутон, а е обработчик на събитие.
Вероятно ако си формулираш вярно въпроса - сам ще си отговориш.


Просто не разбирам какво искаш и трябва да гадая:
Дали искаш като натиснеш стрелка да излиза буквичка ли?
Или да се изпълнява KeyPress?
button.click не е бутон, а е обработчик на събитие.
Вероятно ако си формулираш вярно въпроса - сам ще си отговориш.
Form.KeyPreview
Я сетни KeyPreview пропъртито на формата на True и опитай пак.
Linux isn't free, it's worthless.
Linux isn't free, it's worthless.
Re: Form.KeyPreview
Направих го KeyPreview на True но не се получи.
Имам 4 бр. BitBtn и искам като натисна стрелките на клавиатурата да се натискат съответно бутоните.
М дааа...
Имам 4 бр. BitBtn и искам като натисна стрелките на клавиатурата да се натискат съответно бутоните.
М дааа...
Re: Form.KeyPreview
чакай, чакай. Лошо съм обяснил! Искам параметъра който да показва натискането на бутона (да хлътва бутона) при натискане на стрелката! Другото съм го направил!
М дааа...
М дааа...
Re: Form.KeyPreview
И за колко време да хлътва? :)
Бутоните tButton нямат такава екстра, вероятно може да се докара с прерисуване, но ми се струва, че другите алтернативи са по-четливи:
- Tool лента (Toolbar май се казваше) - има тулбутон, който е доста кадърен
- bitmap бутон и да му сменяш битмапа
- panel и да му сменяш борда от изпъкнал на вдлъбнат
Всеки от вариантите има предимства и недостатъци.
Бутоните tButton нямат такава екстра, вероятно може да се докара с прерисуване, но ми се струва, че другите алтернативи са по-четливи:
- Tool лента (Toolbar май се казваше) - има тулбутон, който е доста кадърен
- bitmap бутон и да му сменяш битмапа
- panel и да му сменяш борда от изпъкнал на вдлъбнат
Всеки от вариантите има предимства и недостатъци.
Re: Form.KeyPreview
Да, най-лесно ще е някъде ОКОЛО или ВЪРХУ бутона да извеждаш една (зелена) точка, примерно. TImage, да речем.
Re: Form.KeyPreview
Да, то това си е глезотийка де.
Имам една ИП камера и се ебавам с нея от няма на къде. Оригиналният и софт ме дразни.
М дааа...
Имам една ИП камера и се ебавам с нея от няма на къде. Оригиналният и софт ме дразни.
М дааа...
Re: Form.KeyPreview
Пробва ли със събитията: OnKeyPress, OnKeyUp, OnKeyDown. Мисля, че това е, което търсиш.
Re: Form.KeyPreview
Те си работят.
Проблема не ми е толкова че копчето не хлътва в момента, а протокола. Имам протокола(намерих го за html) но искам да намеря SMNP протокол за камерата.
Снифера ми не бачка на Win7 и не мога да си намеря друг работещ.
М дааа...
Проблема не ми е толкова че копчето не хлътва в момента, а протокола. Имам протокола(намерих го за html) но искам да намеря SMNP протокол за камерата.
Снифера ми не бачка на Win7 и не мога да си намеря друг работещ.
М дааа...
Re: Form.KeyPreview
WireShark работи и на 7-ца.
Който не знае закона на Ома да си ходи у дома!
Който не знае закона на Ома да си ходи у дома!
Re: Form.KeyPreview
WireShark, това за какво е?
Искам без компонент примерно 2 буитона като натисна единият да се вижда натискането на другият! Проблема не е решен но си спомням че веднъж пак ми трябваше.
М дааа...
Искам без компонент примерно 2 буитона като натисна единият да се вижда натискането на другият! Проблема не е решен но си спомням че веднъж пак ми трябваше.
М дааа...
Re: Form.KeyPreview
Снифера ми не бачка на Win7 и не мога да си намеря друг работещ.
WireShark е снифер за мрежа - ако ще подслушваш SNMP на камерата....
Който не знае закона на Ома да си ходи у дома!
WireShark е снифер за мрежа - ако ще подслушваш SNMP на камерата....
Който не знае закона на Ома да си ходи у дома!
Re: BUTTON-и ;)
Дали правилно съм разбрал? Бутони които да реагират на натискане на клавиатурата( например на стрелките). Ако е така :
1. Слагаш във формата 4 бр. TSpeedButton. Защо такива? Защото си имат свойство "Down" т.е можеш да гу задържиш "натиснати".
2. Настройваш свойството "GroupIndex" = 1 на всичките. Така ги вкарваш в една група от която само един може да бъде "натиснат" в един момент.
3. Настройваш свойството "AllowAllUp=true" - т.е разрешаваш да няма нито един натиснат бутон в групата.
Толкоз за бутоните. Ето и кода на формата :
{*---------------------------------------------------------------------*}
object MainForm: TMainForm
Left = 0
Top = 0
Caption = 'Buttons'
ClientHeight = 267
ClientWidth = 367
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
PixelsPerInch = 96
TextHeight = 13
object sbUp: TSpeedButton
Left = 144
Top = 52
Width = 65
Height = 22
AllowAllUp = True
GroupIndex = 1
Caption = 'Up'
end
object sbRigth: TSpeedButton
Left = 197
Top = 80
Width = 52
Height = 22
AllowAllUp = True
GroupIndex = 1
Caption = 'Right'
end
object sbLeft: TSpeedButton
Left = 104
Top = 80
Width = 58
Height = 22
AllowAllUp = True
GroupIndex = 1
Caption = 'Left'
end
object sbDown: TSpeedButton
Left = 144
Top = 108
Width = 73
Height = 22
AllowAllUp = True
GroupIndex = 1
Caption = 'Down'
end
end
{*--------------------------------------------------------*}
После в събитията "FormKeyDown", "FormKeyUp" пишеш :
{*--------------------------------------------------------*}
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_DOWN : sbDown.Down := true;
VK_LEFT : sbLeft.Down := true;
VK_RIGHT : sbRigth.Down := true;
VK_UP : sbUp.Down := true;
end;
end;
procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
VK_DOWN : sbDown.Down := false;
VK_LEFT : sbleft.Down := false;
VK_RIGHT : sbRigth.Down := false;
VK_UP : sbUp.Down := false;
end;
{*--------------------------------------------------------*}
и това е. Можеш да си правиш вариации на темата.
Дано да е това което ти трябва.
По склона на връх Фудзи бавно пълзи охлюв.
1. Слагаш във формата 4 бр. TSpeedButton. Защо такива? Защото си имат свойство "Down" т.е можеш да гу задържиш "натиснати".
2. Настройваш свойството "GroupIndex" = 1 на всичките. Така ги вкарваш в една група от която само един може да бъде "натиснат" в един момент.
3. Настройваш свойството "AllowAllUp=true" - т.е разрешаваш да няма нито един натиснат бутон в групата.
Толкоз за бутоните. Ето и кода на формата :
{*---------------------------------------------------------------------*}
object MainForm: TMainForm
Left = 0
Top = 0
Caption = 'Buttons'
ClientHeight = 267
ClientWidth = 367
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
PixelsPerInch = 96
TextHeight = 13
object sbUp: TSpeedButton
Left = 144
Top = 52
Width = 65
Height = 22
AllowAllUp = True
GroupIndex = 1
Caption = 'Up'
end
object sbRigth: TSpeedButton
Left = 197
Top = 80
Width = 52
Height = 22
AllowAllUp = True
GroupIndex = 1
Caption = 'Right'
end
object sbLeft: TSpeedButton
Left = 104
Top = 80
Width = 58
Height = 22
AllowAllUp = True
GroupIndex = 1
Caption = 'Left'
end
object sbDown: TSpeedButton
Left = 144
Top = 108
Width = 73
Height = 22
AllowAllUp = True
GroupIndex = 1
Caption = 'Down'
end
end
{*--------------------------------------------------------*}
После в събитията "FormKeyDown", "FormKeyUp" пишеш :
{*--------------------------------------------------------*}
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_DOWN : sbDown.Down := true;
VK_LEFT : sbLeft.Down := true;
VK_RIGHT : sbRigth.Down := true;
VK_UP : sbUp.Down := true;
end;
end;
procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
VK_DOWN : sbDown.Down := false;
VK_LEFT : sbleft.Down := false;
VK_RIGHT : sbRigth.Down := false;
VK_UP : sbUp.Down := false;
end;
{*--------------------------------------------------------*}
и това е. Можеш да си правиш вариации на темата.
Дано да е това което ти трябва.
По склона на връх Фудзи бавно пълзи охлюв.
Редактирано от ValM на
Re: BUTTON-и ;)
Защо не ми се получава?
procedure TForm1.sbUpClick(Sender: TObject);
begin
sbDown.Down := False;
sbUp.Down := True;
beep;
end;
procedure TForm1.sbDownClick(Sender: TObject);
begin
sbDown.Down := True;
sbUp.Down := False;
beep;
end;
М дааа...
procedure TForm1.sbUpClick(Sender: TObject);
begin
sbDown.Down := False;
sbUp.Down := True;
beep;
end;
procedure TForm1.sbDownClick(Sender: TObject);
begin
sbDown.Down := True;
sbUp.Down := False;
beep;
end;
М дааа...