Button push

15 отговора 0 прегледа
#1

Button push

Бих искал при натискане на бутон да се появява лабел а при пускането на бутона за изчезва. Как да стане това? Не ми трябва да натисна да го включа и пак да натисна за да го изключа.

Отговор
в отговор на Button #2

Re: Button push

Версия на Delphi? Това за натискането за мишката ли говориш - ако да, има си събития OnMouseDown и OnMouseUp.
Ето тука има инфо:
[линк]


Отговор
в отговор на Naki #3

Re: Button push

Не за мишката а за обикновен бутон.Когато се натисне да се появи текст а като се пусне да изчезне текста.

Отговор
в отговор на Button #4

Re: Button push

Аха.
Еми тогава виж OnKeyDown и OnKeyUp събитията.
Също така, за да става независимо в коя част/контрол на формата е фокуса, виж и свойството на формата KeyPreview - може би ще трябва да го сложиш на 'true'.
За кой бутон става дума? Не знам дали баш ще стане, ако искаш да е Alt, Shift или Ctrl, но с другите бутони, примерно букви или цифри, би трябвало да стане.

Инфо тука:
[линк]

Иначе самия Label можеш да го показваш и скриваш като му сменяш свойството Visible (true/false).


Редактирано от Naki на

Отговор
в отговор на Naki #5

Re: Button push

Искам нещо простичко но незнам как става.

procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Visible:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Visible:=true;
end;

При натискане на бутона да се вижда текста а при пускане да се скрива.

Да не се налага повторно натискане че да се скрие!

Отговор
в отговор на Button #6

Re: Button push

Аха, значи контрол бутон, а не бутон на клавиатурата.
Добре, с какво го натискаш бутона? С мишката, или как...?
Със Click събитие няма да стане.

Пробвай така:
Добави MouseUp и MouseDown събития за този button.
И във двете напиши това:
label1.Visible := not label1.Visible;
Така ще бачка както искаш, но само с мишката. Кажи ако ти трябва с клавиатурата също да бачка.
Между другото, това със скриването на лейбъла в FormCreate, можеш да го махнеш и самия Label да го направиш Visible=false още в самото IDE на Delphi.


Редактирано от Naki на

Отговор
в отговор на Naki #7

Re: Button push

Именно
с мишката и клик
дай идея

Отговор
в отговор на Button #8

Re: Button push

Готово, едитнах си поста! Пробвай...


Отговор
в отговор на Naki #9

Re: Button push

Този го знам ти ми го предложи по нагоре интересуваме дали има друг вариант. Не че ми трябва но просто се натъкнах на това и ми стана интересно.

Отговор
в отговор на Button #10

Re: Button push

Има, става и така:
Във MouseDown пишеш label1.visible:=true;
Във MouseUp пишеш label1.visible:=false;

Ще прави същото като горното - предното просто сменя състоянието (с оператора Not), а това дето давам тука директно променя към желаното състояние.


Отговор
в отговор на Naki #11

Re: Button push

Дай да развием моят вариант и да помислим.
Някъде в нета бях попаднал на подобен вариант преди време но незнам как да го потърся.

Отговор
в отговор на Button #12

Re: Button push

Вариант за кое? Няма как да стане с OnClick събитие просто.
Какво точно се опитваш да направиш? Какво не ти харесва на 2та варианта, които дадох?

Не каза точно коя ти е версията на Делфи, май е стара - аз имам RAD Studio 2010, което има и Делфи и C++ Builder, и е супер! Има и по-нови де, XE и XE2.


Редактирано от Naki на

Отговор
в отговор на Button #13

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;

Отговор
в отговор на Vapi #14

Re: Button push

Е аз вече го дадох това.

(А май и твоя код е за по-ново Делфи - не знам дали човека има такова, май е с по-старо. Може и да греша за версията де - не знам нито ти, нито той каква версия на Делфи има...)


Редактирано от Naki на

Отговор
в отговор на Button #15

Re: Button push

К'о стана, къде се покри...?


Отговор
в отговор на Naki #16

Re: Button push

Да така е. Страницата ми излезе някак странно и видях постовете след като пуснах моя. Извинявам се за което.
На всичкото отгоре съм си забравил мейла с който се гегистрирах на времето, и като нерегистриран такъв не успях да го редактирам.
Моята версия на Делфи е 2010.

Отговор