здраствуйте помогите решить проблему идиоту

Samagon4ik

Привіт!
Статус: Offline
Реєстрація: 26.03.2009
Повідом.: 9
здраствуйте помогите решить проблему идиоту

как в делфи задать функцию кнопки
при первом нажатии смена текста
при втором нажатии смена цвета
зарание спасибо!
 
У меня есть алгоритм, но на третьем нажатии он взрывает монитор. Не могу так рисковать.
 
гугл и статические переменные (как вариант) тебе помогут
 
ТС, поищи компоненту! ;)
когда-то встречал уже готовую, как раз решающую подобную задачу :D
 
делаешь обработчик клика на кнопке

var
boolean action = false;

function Button1Click() {
action != action;
if (action) then Text1.text("text");
else Text1.сolor("color");
}

вот тебе алгоритм без взрывания монитора :D
 
делаешь обработчик клика на кнопке

var
boolean action = false;

function Button1Click() {
action != action;
if (action) then Text1.text("text");
else Text1.сolor("color");
}

вот тебе алгоритм без взрывания монитора :D

можно ещо проще для полных дыбилов в етой отрасли
 
что может быть проще уже сделаной работы?
 
как в делфи задать функцию кнопки
при первом нажатии смена текста
при втором нажатии смена цвета
зарание спасибо!

С флагами попробуйте. При первом нажатии устанавливайте в true и проверяйте состояние перед нажатием...
 
видеопособие как это сделать :D

вряд ли это будет проще =)



можно ещо проще для полных дыбилов в етой отрасли

на делфи программировал лет пять назад последний раз. там будет что-то типа того:

var boolean: flag:=false;//в глобальных переменных

procedure TForm1.Button1Click(Sender: TObject);
begin
if flag then
Button1.Font.Color := clRed
else
Button1.Caption:='text';
flag:= not flag;
end;
 
Останнє редагування:
var flag: boolean = false;//в глобальных переменных

а если нужно по третьему нажатию менять шрифт? :-)
как вариант ввести статическое поле (если делфи, то глобальную переменную в разделе реализации модуля) "количество нажатий"
 
можно создать ДВЕ кнопки с одинаковыми координатами и размерами, для второй в design-time поставить Visible:=False;
По нажатию первой делать что-то-там-с-текстом, прятать первую кнопку и показать вторую :)
Чем не решение? Наподобие web'овского javascript: document.GetElementById('button1').style.display='none';
Можно еще круче, если надо больше двух действий: на FormCreate создать массив кнопок (array of TButton) и так далее... типа все возможные действия сериализовать из БД или генерить програмный код вставками asm (да-да, и таким занимаются иногда) Короче было б желание поизвращаться :D
 
попробуй WPF на Expression Blend'е - для идиотов самое оно ;)
 
Текущий цвет нужно неким хитрым способом ксорить.
Иного выхода нет.
 
есть поле Tag в каждом контроле как раз для таких задач.
оно целочисленное и нигде не используется, сделано для юзера.

код (поле при создании контрола инициализируется в нуль)

onClick(Sender)
{
case(Sender.Tag)
0: (Sender as TButton).Caption:="Бугага";
1: (Sender as TButton).Color := clBlack;//хотя это нужен специальный контрол который поддерживает смену цвета
2: ...
end;
inc(Sender.Tag);
}

что то типа того, на делфи давно не писал.
 
ну уже проще некуда я привел пример ..
 
можно создать ДВЕ кнопки с одинаковыми координатами и размерами, для второй в design-time поставить Visible:=False;
По нажатию первой делать что-то-там-с-текстом, прятать первую кнопку и показать вторую :)
Чем не решение? Наподобие web'овского javascript: document.GetElementById('button1').style.display='none';
Можно еще круче, если надо больше двух действий: на FormCreate создать массив кнопок (array of TButton) и так далее... типа все возможные действия сериализовать из БД или генерить програмный код вставками asm (да-да, и таким занимаются иногда) Короче было б желание поизвращаться :D
За такие советы нужно гвоздь в голову вбивать, вы ржете а у мя "девелоперы" потом так и делают)))
 
Назад
Зверху Знизу