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

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

Гасан Магомедов Знаток (336), закрыт 10 лет назад
Необходимо создать функцию или процедуру работающую по принципу InputBox, но считывающую только цифры. Помогите пожалуйста.
Дополнен 10 лет назад
Объясните как сделать
Лучший ответ
. Ученик (0) 10 лет назад
Можно использовать диалоговое окно с MaskEdit
Остальные ответы
Президент интернета Оракул (55029) 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;
Профессор Оракул (81724) 10 лет назад
Создаешь новую форму с MaskEdit и нужными кнопками. Прописываешь в uses. Показываешь ее при помощи ShowModal. Узнаешь, какая кнопка княпнута, при помощи ModalResult.
Похожие вопросы