Button push
15 отговора
0 прегледа
Button push
Бих искал при натискане на бутон да се появява лабел а при пускането на бутона за изчезва. Как да стане това? Не ми трябва да натисна да го включа и пак да натисна за да го изключа.
Re: Button push
Версия на Delphi? Това за натискането за мишката ли говориш - ако да, има си събития OnMouseDown и OnMouseUp.
Ето тука има инфо:
[линк]
Ето тука има инфо:
[линк]
Re: Button push
Не за мишката а за обикновен бутон.Когато се натисне да се появи текст а като се пусне да изчезне текста.
Re: Button push
Аха.
Еми тогава виж OnKeyDown и OnKeyUp събитията.
Също така, за да става независимо в коя част/контрол на формата е фокуса, виж и свойството на формата KeyPreview - може би ще трябва да го сложиш на 'true'.
За кой бутон става дума? Не знам дали баш ще стане, ако искаш да е Alt, Shift или Ctrl, но с другите бутони, примерно букви или цифри, би трябвало да стане.
Инфо тука:
[линк]
Иначе самия Label можеш да го показваш и скриваш като му сменяш свойството Visible (true/false).
Еми тогава виж OnKeyDown и OnKeyUp събитията.
Също така, за да става независимо в коя част/контрол на формата е фокуса, виж и свойството на формата KeyPreview - може би ще трябва да го сложиш на 'true'.
За кой бутон става дума? Не знам дали баш ще стане, ако искаш да е Alt, Shift или Ctrl, но с другите бутони, примерно букви или цифри, би трябвало да стане.
Инфо тука:
[линк]
Иначе самия Label можеш да го показваш и скриваш като му сменяш свойството Visible (true/false).
Редактирано от Naki на
Re: Button push
Искам нещо простичко но незнам как става.
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Visible:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Visible:=true;
end;
При натискане на бутона да се вижда текста а при пускане да се скрива.
Да не се налага повторно натискане че да се скрие!
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Visible:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Visible:=true;
end;
При натискане на бутона да се вижда текста а при пускане да се скрива.
Да не се налага повторно натискане че да се скрие!
Re: Button push
Аха, значи контрол бутон, а не бутон на клавиатурата.
Добре, с какво го натискаш бутона? С мишката, или как...?
Със Click събитие няма да стане.
Пробвай така:
Добави MouseUp и MouseDown събития за този button.
И във двете напиши това:
label1.Visible := not label1.Visible;
Така ще бачка както искаш, но само с мишката. Кажи ако ти трябва с клавиатурата също да бачка.
Между другото, това със скриването на лейбъла в FormCreate, можеш да го махнеш и самия Label да го направиш Visible=false още в самото IDE на Delphi.
Добре, с какво го натискаш бутона? С мишката, или как...?
Със Click събитие няма да стане.
Пробвай така:
Добави MouseUp и MouseDown събития за този button.
И във двете напиши това:
label1.Visible := not label1.Visible;
Така ще бачка както искаш, но само с мишката. Кажи ако ти трябва с клавиатурата също да бачка.
Между другото, това със скриването на лейбъла в FormCreate, можеш да го махнеш и самия Label да го направиш Visible=false още в самото IDE на Delphi.
Редактирано от Naki на
Re: Button push
Този го знам ти ми го предложи по нагоре интересуваме дали има друг вариант. Не че ми трябва но просто се натъкнах на това и ми стана интересно.
Re: Button push
Има, става и така:
Във MouseDown пишеш label1.visible:=true;
Във MouseUp пишеш label1.visible:=false;
Ще прави същото като горното - предното просто сменя състоянието (с оператора Not), а това дето давам тука директно променя към желаното състояние.
Във MouseDown пишеш label1.visible:=true;
Във MouseUp пишеш label1.visible:=false;
Ще прави същото като горното - предното просто сменя състоянието (с оператора Not), а това дето давам тука директно променя към желаното състояние.
Re: Button push
Дай да развием моят вариант и да помислим.
Някъде в нета бях попаднал на подобен вариант преди време но незнам как да го потърся.
Някъде в нета бях попаднал на подобен вариант преди време но незнам как да го потърся.
Re: Button push
Вариант за кое? Няма как да стане с OnClick събитие просто.
Какво точно се опитваш да направиш? Какво не ти харесва на 2та варианта, които дадох?
Не каза точно коя ти е версията на Делфи, май е стара - аз имам RAD Studio 2010, което има и Делфи и C++ Builder, и е супер! Има и по-нови де, XE и XE2.
Какво точно се опитваш да направиш? Какво не ти харесва на 2та варианта, които дадох?
Не каза точно коя ти е версията на Делфи, май е стара - аз имам RAD Studio 2010, което има и Делфи и C++ Builder, и е супер! Има и по-нови де, XE и XE2.
Редактирано от Naki на
Re: Button push
procedure TMainForm.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Visible := true;
end;
procedure TMainForm.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Visible := false;
end;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Visible := true;
end;
procedure TMainForm.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Visible := false;
end;
Re: Button push
Е аз вече го дадох това.
(А май и твоя код е за по-ново Делфи - не знам дали човека има такова, май е с по-старо. Може и да греша за версията де - не знам нито ти, нито той каква версия на Делфи има...)
(А май и твоя код е за по-ново Делфи - не знам дали човека има такова, май е с по-старо. Може и да греша за версията де - не знам нито ти, нито той каква версия на Делфи има...)
Редактирано от Naki на
Re: Button push
Да така е. Страницата ми излезе някак странно и видях постовете след като пуснах моя. Извинявам се за което.
На всичкото отгоре съм си забравил мейла с който се гегистрирах на времето, и като нерегистриран такъв не успях да го редактирам.
Моята версия на Делфи е 2010.
На всичкото отгоре съм си забравил мейла с който се гегистрирах на времето, и като нерегистриран такъв не успях да го редактирам.
Моята версия на Делфи е 2010.