Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Delphi. Процедуры \ функции

Гасан Магомедов Знаток (336), закрыт 9 лет назад
Необходимо создать функцию или процедуру работающую по принципу InputBox, но считывающую только цифры. Помогите пожалуйста.
Дополнен 10 лет назад
Объясните как сделать
Лучший ответ
. Ученик (0) 10 лет назад
Можно использовать диалоговое окно с MaskEdit
Остальные ответы
Президент интернета Оракул (54634) 10 лет назад
на delphi это делается очень легко
sosnitskaya Профи (643) 10 лет назад
Вот, держи.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Br.CSharpBrasil.Web
{
[assembly: System.Web.UI.TagPrefix("Br.CSharpBrasil.Web", "CSharpBrasil")]
[ToolboxData("<{0}:UnorderedListDataPager runat=\"server\"></{0}:UnorderedListDataPager>")]
public class UnorderedListDataPager : DataPager
{
[Bindable(false)]
[Category("Appearance")]
[DefaultValue("pagination")]
[Description("Define o CSS Class para o componente")]
public virtual string CssClass
{
get
{
if (ViewState["CssClass"] == null)
{
ViewState["CssClass"] = "pagination";
}
return (string)ViewState["CssClass"];
}
set
{
ViewState["CssClass"] = value;
}
}

protected override HtmlTextWriterTag TagKey
{
get
{
return HtmlTextWriterTag.Div;
}
}

protected override void RenderContents(HtmlTextWriter writer)
{
if (HasControls())
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClass);
writer.RenderBeginTag(HtmlTextWriterTag.Ul);

foreach (Control child in Controls)
{
var item = child as DataPagerFieldItem;
if (item == null || !item.HasControls())
{
child.RenderControl(writer);
continue;
}

foreach (Control ctrl in item.Controls)
{
var space = ctrl as LiteralControl;
if (space != null && space.Text == "&nbsp;")
continue;

// Set specific classes for li-Tag
if (ctrl is System.Web.UI.WebControls.WebControl)
{
// Enabled = false -> "disabled"
if (!((System.Web.UI.WebControls.WebControl)ctrl).Enabled)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "disabled");
}

// there can only be one Label in the datapager -> "active"
if (ctrl is System.Web.UI.WebControls.Label)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "active");
}
}
writer.RenderBeginTag(HtmlTextWriterTag.Li);
ctrl.RenderControl(writer);
writer.RenderEndTag();
}
}

writer.RenderEndTag();
}
}
}
}
Алексей Кузьминов Мудрец (11132) 10 лет назад
Аналогом InputBox для Delphi является InputQuery.

Смотрите её исходники, скопируйте себе. И замените TEdit на TMaskEdit с соответствующей маской.
Linnet Bergmann Мыслитель (5497) 10 лет назад
без TMaskEdit :



procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if (Key < '0') or (Key > '9') then begin

Key := #0;

Beep;

end;

end;
Профессор Оракул (81545) 10 лет назад
Создаешь новую форму с MaskEdit и нужными кнопками. Прописываешь в uses. Показываешь ее при помощи ShowModal. Узнаешь, какая кнопка княпнута, при помощи ModalResult.
Похожие вопросы