Как очистить едет в делфи
У меня много TEdit. Есть ли команда, чтобы очистить все TEdit без очистки вручную, как это сделать
3 ответа
Вы должны пройтись по элементам управления вашей формы или контейнера, чтобы очистить их все.
Есть несколько способов достичь этого.
Форма является владельцем всех компонентов, размещенных на ней во время разработки. Вы можете просмотреть все компоненты формы, чтобы очистить их:
Другой подход заключается в циклическом обходе родительского контейнера (также может быть формой), но в этом случае необходимо рекурсивно очищать правки, поскольку родительский элемент содержит только своих непосредственных дочерних элементов в списке элементов управления.
Вы можете сделать что-то вроде этого
В других ответах вы циклически просматриваете контейнеры Parent / Owner и динамически ищете TEdit элементы управления. Несмотря на то, что это работает, каждый раз, когда вы хотите очистить TEdit элементы управления, у вас есть некоторые накладные расходы.
Вместо этого вы должны добавить нужные TEdit элементы управления в массив или TList один раз при создании формы, а затем при необходимости вы можете перебрать этот массив / список. Это будет быстрее, с меньшими накладными расходами и более точным, чем динамический поиск элементов управления.
При заполнении массива / списка вы можете добавить элементы управления TEdit по отдельности:
Или вы можете использовать цикл, подобный тому, что показывают другие ответы, например:
Как очистить едет в делфи
Или Присвоить хинтам всех Кнопок их Кэпшены.
Спасибо.

Cr@sh ( 2003-02-16 11:56 ) [1]
если у всех эдитов имена типа edit1, edit2 и тд.
Тогда
for i:=1 to 10 do
(form1.findcomponent(«edit»+inttostr(i)) as TEdit).text:=»»;

Cr@sh ( 2003-02-16 11:58 ) [2]
for i:=1 to 10 do
(form1.findcomponent(«button»+inttostr(i)) as TButton).hint:=(form1.findcomponent(«button»+inttostr(i)) as TButton).caption;

Zhenka ( 2003-02-16 12:00 ) [3]

Anatoly Podgoretsky ( 2003-02-16 12:07 ) [4]
Оформить отдельным методом, потребуется два
ClearAllEdits
SetAllButtonsHints
var
i: integer;
begin
for i:=0 to Form1.ComponentCount-1 do
if Form1.Components[i].ClassType=TEdit then (Form1.Components[i] as TEdit).Text:=»»;

Shadow ( 2003-02-16 12:09 ) [6]
И соответственно:
var
i: integer;
begin
for i:=0 to Form1.ComponentCount-1 do
if Form1.Components[i].ClassType=TButton then (Form1.Components[i] as TButton).Hint:=(Form1.Components[i] as TButton).Caption;

Zhenka ( 2003-02-16 12:10 ) [7]
`Спасибо всем за всё. :ъ)

drpass ( 2003-02-16 12:11 ) [8]
Если у всех эдитов имена любые, то
for i:=0 to ComponentCount-1 do
if Components[i] is TEdit then TEdit(Components[i]).Text:=»»;

Юрий Зотов ( 2003-02-16 12:11 ) [9]
Это вариант намного быстрее и не зависит от имен компонентов и их количества.

drpass ( 2003-02-16 12:12 ) [11]
Ну, кто еще чего посоветует 🙂

Zhenka ( 2003-02-16 12:18 ) [12]
2drPass
Ага не думал, что так много способов реализации

Shadow ( 2003-02-16 12:22 ) [13]
2Юрий Зотов
Почти тоже, что и я предложил

Anatoly Podgoretsky ( 2003-02-16 12:29 ) [14]
Эффективнее использовать метод Clear для TEdit и эстетичнее.
Юрий Зотов © (16.02.03 12:11)
Очистка может использоваться многократно и независимо от установки хинта, с этой точки зрения лучше разделить эти операции по отдельным методам.
Может еще потребоваться очистка и других компонент, тогда будет легко создать обобщенный метод из которого удобно вызывать специализированные.
В моей практике это часто встречается. По самому коду конечно нет возражений.
Разве что еще в некоторых случаях лучше использовать Controls

Shadow ( 2003-02-16 12:31 ) [16]

Юрий Зотов ( 2003-02-16 12:36 ) [17]
> Shadow © (16.02.03 12:22)
По Вашему варианту тоже есть 2 замечания.
1. Он сработает только для TButton и не сработает для потомков. Нужно использовать IS или InheritsFrom, а не прямое сравнение.
2. Если класс уже проверен, то зачем еще AS (к тому же, в двух местах)? Надо использовать прямое приведение типа, такой код будет быстрее и компактнее.

Zhenka ( 2003-02-16 12:38 ) [18]
дА сКОЛЬКО МНОГО НЬЮАНСОВ

Shadow ( 2003-02-16 12:42 ) [19]
2Юрий Зотов
Вы эстет. Вы правы. Ну писал на скорую руку даже без проверки. Но в вопросе четко указано: Кнопок. Мы ж не телепаты.

Anatoly Podgoretsky ( 2003-02-16 12:44 ) [20]
А насчет нюансос, вот два примера
with TButton.Create(Form1) do begin
Parent := Form1;
.
end;
with TButton.Create(Application) do begin
Parent := Form1;
.
end;
На досуге разобраться, что даст правильный результат Components или Controls

Юрий Зотов ( 2003-02-16 12:45 ) [21]
> Shadow © (16.02.03 12:42)

Shadow ( 2003-02-16 13:45 ) [22]

MsGuns ( 2003-02-16 14:35 ) [23]
ИМХО, для достаточно «нагруженной» формы или для MDI-форм метод «повальной» модификации свойств однотипных контролов неудобен. Рекомендую использовать спец.процы типа SetStatusControls(opt: boolean), в которых просто перечисляются операторы присвоения ссотв.свойств нужным контролам, например, кнопкам, экшинам, и т.д. Лучше потому что:
1. Все делается «зряче»
2. Вполне читабелен алгоритм, что позволяет без особого труда контролировать отладку и вности изменения.
3. Просто правильнее с точки зрения семантики программы.

Юрий Зотов ( 2003-02-16 14:47 ) [24]
> Shadow © (16.02.03 13:45)
Как очистить едет в делфи
procedure TForm1.FormActivate(Sender: TObject);
begin
richedit1.lines.LoadFromFile(opendi alog1.FileName);
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
richedit3.Lines.LoadFromFile(opendi alog3.filename);
end;
procedure TForm1.BitBtn8Click(Sender: TObject);
begin
richedit3.Lines.LoadFromFile(opendi alog4.FileName);
end;
procedure TForm1.BitBtn9Click(Sender: TObject);
begin
richedit3.Lines.LoadFromFile(opendi alog5.FileName);
end;
procedure TForm1.BitBtn10Click(Sender: TObject);
begin
richedit3.Lines.LoadFromFile(opendi alog6.FileName);
end;
procedure TForm1.BitBtn11Click(Sender: TObject);
begin
richedit3.Lines.LoadFromFile(opendi alog7.FileName);
end;
procedure TForm1.BitBtn13Click(Sender: TObject);
begin
richedit2.Lines.LoadFromFile(opendi alog8.FileName);
end;
procedure TForm1.BitBtn12Click(Sender: TObject);
begin
richedit2.Lines.LoadFromFile(opendi alog9.FileName);
end;
procedure TForm1.BitBtn14Click(Sender: TObject);
begin
richedit2.Lines.LoadFromFile(opendi alog2.FileName);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
pagecontrol1.Visible:=false;
panel2.Visible:=true;
panel3.Visible:=true;
panel4.Visible:=false;
procedure TForm1.BitBtn15Click(Sender: TObject);
begin
pagecontrol1.Visible:=true;
pagecontrol1.ActivePageIndex:=0;
richedit3.Clear;
panel2.Visible:=false;
panel3.Visible:=false;
panel4.Visible:=false;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
richedit5.Lines.LoadFromFile(opendi alog10.FileName);
pagecontrol1.Visible:=false;
panel2.Visible:=false;
panel3.Visible:=true;
label5.Visible:=true;
panel4.Visible:=false;
label5.Caption:=’Немного из истории’;
image10.Visible:=false;
image11.Visible:=false;
image12.Visible:=false;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
panel4.Visible:=false;
panel2.Visible:=false;
panel3.Visible:=true;
label5.Caption:=’Воспитательная работа’;
richedit5.Lines.LoadFromFile(opendi alog11.FileName);
image10.Visible:=false;
image11.Visible:=false;
image12.Visible:=false;
pagecontrol1.Visible:=false;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
panel4.Visible:=false;
panel2.Visible:=false;
panel3.Visible:=true;
label5.Caption:=’Физическое воспитание’;
image10.Visible:=true;
image11.Visible:=true;
image12.Visible:=true;
richedit5.Lines.LoadFromFile(opendi alog12.FileName);
pagecontrol1.Visible:=false;
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
panel2.Visible:=false;
panel3.Visible:=false;
panel4.Visible:=true;
panel4.Height:=497;
panel4.Width:=1105;
richedit6.Left:=232;
richedit6.Top:=64;
richedit6.Height:=425;
richedit6.Width:=769;
Label6.Caption:=’Дневное отделение’;
pagecontrol1.Visible:=false;
procedure TForm1.Timer1Timer(Sender: TObject);
var
T:TDateTime;
begin
T:=Time;
Label7.Caption:=TimeToStr(T);
end;
procedure TForm1.BitBtn17Click(Sender: TObject);
begin
richedit6.Clear;
panel2.Visible:=false;
panel3.Visible:=false;
panel4.Visible:=true;
panel4.Height:=497;
panel4.Width:=1105;
richedit6.Left:=232;
richedit6.Top:=64;
richedit6.Height:=425;
richedit6.Width:=769;
Label6.Caption:=’План работы старостата’;
richedit6.Lines.LoadFromFile(opendi alog13.FileName);
pagecontrol1.Visible:=false;
end;
end.
Эт прога-мой курсач(тема:Автоматизированный информационный стенд о колледже) и на этом richedit всё стопориться,строго за код не судите я в delphi всего пару месяцев,выслушаю любые полезные советы
Очистка dbedit
DBEdit
Вот такая проблема: есть DBEdit1 он привязан к полю, поле числовое, текст нельзя туда писать, нужно.
DBEdit
Пишу программу учета отказов. в ней есть несколько справочников и основная база данных на форме с.

Всем привет,возможно ли сделать так чтобы чтобы данные которые вводились в DBedit не сохранялись в.
DBEdit
Доброго времени суток. Подскажите как из DBEdit1 вставить последнее слово в DBEdit2. Например: В.
Не то что бы не люблю. Это такой же инструмент, как и все остальные компоненты, и иногда (очень редко, но тем не менее) их использование вполне оправданно. Каждый инструмент должен применяться там, где целесообразно его использовать.
Компонент DBEdit
Цель: сделать связь DBedit с поставщиками полем ID, чтоб при вводе в dbedit id поставщика.
DbEdit и DbGrid
Есть база данных на 1-й форме состоящий (например столбец имя ), на 2-й форме находиться DbEdit.

DBedit1 не может быть меньше DBedit2, т.е. данные введенные в них, например в 1-й ввели 4, а во.
Ошибка в DBEdit
Доброго времени суток! Не могу понять почему при входе в учетную запись, программа ругается на все.
Календарь у DBEdit
как сделать так что бы у компонента DBEdit с боку был значок выбора даты.
Как очистить едет в делфи
Компонент Delphi Edit представляет собой однострочное текстовое поле, служащее для ввода данных пользователем. Основным свойством компонента Delphi Edit, передающим введённую информацию, является свойство Edit1.Text типа String. При изучении работы с Delphi Edit советую посетить страничку работа со строками Delphi, так как там описываются функции Delphi для работы с данными, представленными в текстовой форме. Например,чаще всего, судя по поисковым запросам, посетители хотят знать, как работать с числами, введёнными в компонент Edit:
с целыми X:=StrToInt(Edit1.Text);
с дробными X:=StrToFloat(Edit1.Text);
| Можно вводить информацию с клавиатуры, присваивать в программе и считывать в переменную типа String: var S: String; Также при конструировании элементов Формы текст, вводимый в Инспектор объектов, сразу же появляется в компоненте Delphi Edit. |
В отличие от компонента Delphi Label, который автоматически подстраивает свою длину под размер текста в свойстве Caption, вводимый в компонент Delphi Edit текст никак не влияет на длину (свойство Width) этого компонента. Не помещающаяся в установленную длину часть текста сдвигается вправо или влево за границы компонента:
| begin Edit1.Text:=’Текст, не помещающийся в установленные границы’; end; И хотя весь текст остаётся доступен для просмотра и редактирования путём перемещения курсора в ту или иную сторону, программист должен предусмотреть достаточную длину компонента Delphi Edit заранее, на этапе конструирования. |
Это не касается размера компонента по вертикали. Если изменить размер шрифта (свойство Font), то высота компонента Delphi Edit подстроится под высоту выбранного размера шрифта. Впрочем, это будет так, если не менять свойство AutoSize, имеющего тип Boolean. По умолчанию оно равно True. Если же установить его в False, то придётся подстраивать и высоту компонента Edit вручную.
Теперь рассмотрим события компонента Delphi Edit. В момент изменения свойства Text происходит событие OnChange. Причём не имеет значения, каким способом было произведено это изменение, вручную с клавиатуры или присвоением в программе. Новое значение Edit1.Text можно сразу присвоить переменной и использовать. Нужно только учитывать такой нюанс. По событию OnChange нельзя менять значение самого свойства Text этого компонента. Это естественно, ведь при этом изменении опять произойдёт событие OnChange, которое вызовет следующее, и так далее. То есть, программа зациклится и зависнет. А если без этого не обойтись, в обработчике события OnChange необходимо предусмотреть условие, при выполнении которого изменения свойства Text уже не будет.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
Специально подчёркнуто отличие: в обработчике KeyDown переменная Key имеет тип Word, то есть это число, а в обработчике KeyPress эта переменная имеет тип Char, то есть это символ. Отсюда следует, что обработчик KeyPress обрабатывает нажатия только клавиш клавиатуры с символами букв и цифр, а обработчик KeyDown также и остальных клавиш.
То есть, зная коды клавиш клавиатуры, можно в обработчике KeyDown присвоить переменной Key код нужной клавиши, а в обработчике KeyPress присвоить нужный символ, и это будет имитация нажатия соответствующей клавиши клавиатуры.
Возникает вопрос, как же узнать код клавиши клавиатуры, если под рукой нет справочника. Это очень просто. Нужно в обработчике события OnKeyDown значение переменной Key вывести на Форму, например, в заголовок:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
Caption:=IntToStr(Key);
end;
Ну вот, и не нужно в справочники лезть, чтобы узнать код клавиши клавиатуры! Например, код клавиши Enter равен 13, а код клавиши Esc равен 27.
В обработчике KeyPress можно написать процедуру ввода пароля. Обычно при вводе пароля вместо нажатого символа выводится символ ‘ * ‘. Для достижения такого эффекта сначала переменную Key сохраняем в глобальной переменной Pass, а затем переопределяем её, заменяя на звёздочку. Для наглядности пароль, равный слову «пароль» :), я выведу в заголовок Формы:
А вот здесь текст модуля, который для компонента Delphi edit обеспечивает все операции по вводу и удалению только чисел, в том числе дробных. В нём используется всего две процедуры. Одна обеспечивает ввод только допустимых символов, а вторая корректирует получившееся число, приводя его к привычному нам, общеупотребительному виду.
Что касается обработчика KeyUp, то его использование аналогично использованию обработчика KeyDown, только принимая во внимание, что событие OnKeyUp происходит в момент отпускания клавиши.
begin
Edit1.SetFocus;
Edit1.SelStart:=1;
Edit1.SelLength:=1;
end;
Если пропустить первый оператор, то свойство SelText всё равно будет содержать в себе второй символ, но на экране заметно этого не будет, если, конечно, фокус ввода не был перемещён туда ранее.
Обзор компонентов Delphi В начало урока Компонент Delphi Memo
procedure TForm1.FormCreate(Sender: TObject);
var S: String;
begin
Edit1.Text:=’Присваиваем текст’;
S:=Edit1.Text;
end;
var
Form1: TForm1;
S: String;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(‘В Edit1 написан текст: ‘+Edit1.Text);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text:=’Текст изменился’;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Text:=’Присваиваем текст’;
S:=Edit1.Text;
end;
Как это можно реализовать? Автор, добавлено 25.09.10, 05:46:22
Андрей, это очень нетривиальная задача. Выделение в тексте определённых фрагментов называется парсингом. То есть вам сначала надо разделить текст в edit на фрагменты, соответствующие отдельным операциям, затем определить, что за операция или какая функция, а ведь их немало. Ну а там дело техники подсчитать результат. Сможете реализовать? Я, наверное, нет. Андрей, добавлено 25.09.10, 11:06:09
Ну чтож. как говорится,глаза боятся,а руки делают)
procedure TForm1.FormCreate(Sender: TObject);
begin
RichEdit1.Lines.LoadFromFile(‘c:\Doc1.docx’);
end;
type
TMEdit = class(TEdit)
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TMEdit.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or ES_RIGHT;
end;
stringgrid1.Visible:=false; Автор, добавлено 20.06.11, 21:24:23
Фариза, вам про begin/end кто-нибудь говорил? После then нужно писать
begin
И вот сюда те несколько операторов, которые должны работать при выполнении условия.
end;
Иначе действие оператора if распространяется только на первый оператор, а второй выполняется всегда. Фариза, добавлено 21.06.11, 16:51:55
с бегином и ендом писала но не вышло Автор, добавлено 21.06.11, 19:43:50
Имеющееся в настоящее время описание проблемы не позволяет вам помочь. Человек, добавлено 18.07.11, 06:22:09
Подскажите, пожалуйста, как очистить edit при нажатии на него? Автор, добавлено 18.07.11, 09:05:13
Честное слово, очень хочется пообщаться с Человеком, задающим подобный вопрос, чтобы выяснить, что неясного. Это надо вообще ничего не знать, чтобы спрашивать такое (вариант: издеваетесь). Встречные вопросы:
А как вообще нажать на Edit? Использовать соответствующий обработчик.
А как вообще очистить Edit? Так же как и записать текст, только текст «пустой».
Комбинируя ответы, получите решение:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var n : integer;
s : string;
begin
if Key=8 then begin
Edit1.Text:=copy(Edit1.Text,0, Length(Edit1.Text)-3);
Edit1.SelStart:=Length(Edit1.Text);
end;
end;
Текст в строках типа String индексируется с 1. Глеб, добавлено 5.05.12, 21:24:29
Автор, я уже голову сломал над этим компонентом, как мартышка с гранатой кручу SelStart, но не могу добиться нужного результата. Если можете помочь то прошу это сделать. Автор, добавлено 5.05.12, 22:05:12
Странно, вы же использовали SelStsrt правильно, помещая курсор в конец слова.
S:=Edit1.Text;
n:=Edit1.SelStart;
Edit1.Text:=copy(S, 1, n-1)+copy(S, n+1, Length(S)-n);
Edit1.SetFocus;
Edit1.SelStart:=n-1;
Возможно, в вашем случае SetFocus не требуется.
Глеб, добавлено 5.05.12, 22:27:34
ваша версия Edit1.Text:=copy(S, 1, n-1)+copy(S, n+1, Length(S)-n);
моя версия Edit1.Text:=copy(S, 1, n-3)+copy(S, n+1, Length(S)-n);
Согласны? Автор, добавлено 5.05.12, 22:52:32
Давайте, посмотрим. Глеб, добавлено 5.05.12, 22:54:17
procedure TForm3.Edit1KeyDown(Sender: TObject; var Key: Word; //служебные клавиши типа бэкспейс работую в СТРОГО в этом событии
Shift: TShiftState);
var n : integer; //переменная начала строки
s : string; //переменная самой строки
begin
if Key=8 or 46 then begin //условия нажатия клавишь 8-бекспейс 46-дел
S:=Edit1.Text; //загоняем весь текст эдита в переменную
n:=Edit1.SelStart; //загоняем адрес начала записи в переменную
Edit1.Text:=copy(S, 1, n-3)+copy(S, n+1, Length(S)-n); //команда редактирования записи
Edit1.SetFocus; //установка фокуса
Edit1.SelStart:=n-1; //возвращаем значения
end;
end; Глеб, добавлено 5.05.12, 22:55:08
Коменты я делал для себя, поэтому их могут не понять другие( Глеб, добавлено 5.05.12, 23:09:49
Автор, подкорректировать бы меня еще в процедуре добавления.
procedure TForm1.edit1KeyPress(Sender: TObject; var Key: Char);
begin
edit1.Tag := edit1.SelStart;
end;
procedure TForm1.edit1KeyPress(Sender: TObject; var Key: Char);
begin
edit1.Tag := edit1.SelStart;
end;
Еще раз спасибо. Глеб, добавлено 8.05.12, 17:34:17
Автор, а это из-за события получается, что сначала вставляется малая буква, а потом она переходит в заглавную.
Edit3.Text:=AnsiLowerCase(Edit3.Text+Key);
Edit3.SelStart:=Length(Edit3.Text);
Key:=#0; Автор, добавлено 8.05.12, 17:53:27
Или даже так:
if(Key in mask) then
begin
Edit3.Text:=AnsiLowerCase(Edit3.Text+Key);
Edit3.SelStart:=Length(Edit3.Text);
end;
Key:=#0; Глеб, добавлено 8.05.12, 18:15:33
Действительно, все работает. Спасибо за помощь, классный сайт. Глеб, добавлено 9.05.12, 22:24:37
Автор, мне снова нужна ваша помощь, вы в дельфях компетентнее меня.
В моей программе есть один эдит куда пользователь вводит расширение файла, ну скажем «txt.», «exe.» и так далее.
Необходимо. если пользователь набрал три символа «exe» программа ответила в эдите «exe. «. Я кручу процедуру, которая была в программе, вы мне её давали, но так и не понимаю, как реализовать ввод трех символов и после них точку
Прошу в этом мне помочь
Автор, добавлено 9.05.12, 22:33:12
if Lenght(Edit.Text)=3 then Edit.Txt:=Edit.Text+’.’; Глеб, добавлено 9.05.12, 22:45:27
Автор, не пойму куда вставлять эту надпись. Так как там, где она должна быть по логике дельфи выдает ошибку. Я вам исходный код приведу ниже
function Position: Integer;
begin
Result:=(Form1.Edit1.SelStart div 3);
end;
procedure Adding(Key: Char);
var i, n: Integer;
begin
n:=Position;
Form1.Edit1.Text:=»;
with Form1.Edit1 do
for i:=0 to List.Count-1 do
Text:=Text+List[i];
Form1.Edit1.SelStart:=(n+1)*3;
end;
Так и у вас. То что вы сейчас скопировали, это добавление пробела и точки. При чём здесь ‘exe.’? Вы же сами написали, что это другой Edit. Это должно быть событие ввода символа в этом едите, например, OnKeyUp:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
n : integer;
s : string;
begin
if (Key=8) or (Key=46) then begin
if ((Length(Edit1.Text) mod 5)=0) then
begin
S:=Edit1.Text;
n:=Edit1.SelStart;
Edit1.Text:=copy(S, 1, n-5)+copy(S, n+1, Length(S)-n);
Edit1.SetFocus;
Edit1.SelStart:=n-1;
end
else
begin
S:=Edit1.Text;
n:=Edit1.SelStart;
Edit1.Text:=copy(S, 1, n-1)+copy(S, n+1, Length(S)-n);
Edit1.SetFocus;
Edit1.SelStart:=n-1;
end
end;
end; Глеб, добавлено 11.05.12, 13:21:08
Автор, спасибо за помощь. Вы очень мне помогли.
Edit1.Text:=’.’+Edit1.Text+Key+’ ‘; Глеб, добавлено 11.05.12, 13:28:11
Автор, а где барахлит я сейчас тестирую удаление и не вижу тупиковых ситуаций, Глеб, добавлено 11.05.12, 13:45:18
Автор, выявилось одно затруднение с добавлением. если набрать с клавы три символа, а потом поставить фокус ввода между, введенных символов, и попытаться вести новые символы, то он еще добавит символы в уже сущ запись, а не позади их.
к примеру ввели с клавы (aaa), программа ответит (ааа.), поставили фокус между двумя первыми (a) и ввели любые символы. Получиться (ахаа. а. аа. аа. и т.д). Можно ли сделать так чтобы не было этой ситуации? Что то на подобие лексемы Автор, добавлено 11.05.12, 13:47:45
Например:
Ставим курсор перед вторым qwe. Получаем:
X:=StrToFloat(Edit1.Text); егор, добавлено 23.03.13, 12:16:29
Добрый день. Подскажите пожалуйста. Я перемножаю 2 матрицы, их размер меняется динамически, в Edit, но если удалять число размерности вылетает. Подскажите как многократно вводить размерность матриц вод что в edit я записал
procedure TForm1.Edit1Change(Sender: TObject);
var i :integer;
begin
i:=StrToInt(Edit1.Text);
if i>0 then
begin
a.ColCount:=i; a.rowCount:=i;
b.ColCount:=i; b.rowcount:=i;
c.ColCount:=i; c.rowCount:=i;
end
Else ShowMessage(‘неправельный ввод’);
end;
Автор, добавлено 23.03.13, 12:50:40
Смотрите, вы пишете
procedure TForm1.Edit1Change(Sender: TObject);
var i :integer;
begin
try
i:=StrToInt(Edit1.Text);
a.ColCount:=i; a.rowCount:=i;
b.ColCount:=i; b.rowcount:=i;
c.ColCount:=i; c.rowCount:=i;
except
ShowMessage(‘неправИльный ввод’);//и кстати это лишнеее, мешать будет- уберите, пусть тут пусто будет
end;
end;
Кристина, добавлено 10.06.13, 20:33:19
Здравствуйте, такой вопрос. У меня в edit пользователь записывает имя файла, с которым потом происходит работа. Мне необходимо, учесть случай, когда в edit ничего не введено, а файл открыть пытаются. Не подскажите, как обработать данную ситуацию? Автор, добавлено 10.06.13, 22:16:24
Кристина, можно просто проверить наличие файла, который ввёл пользователь, это кстати нужно делать по-любому. Проверяется файл функцией FileExists(Имя_Файла), возвращающей True или False.
Также, попытка открыть несуществующий файл вызовет исключительную ситуацию,которую можно контролировать в блоке
try
//попытка открыть файл
except
//эти операторы срабатывают если произошла ошибка:
ShowMessage(‘Файл не существует’);
end;
Наконец, можно просто проанализировать, не пуст ли Edit. Максим, добавлено 2.08.13, 18:44:53
Здравствуйте, интересует вопрос о том, чтобы написанная первоначальная информация в Edit1, например ‘Login’, при нажатии на Edit1 исчезала, но последующая информация при нажатии на сам Edit1 не исчезала, буду очень благодарен за помощь! Автор, добавлено 3.08.13, 11:17:33
А в чём проблема? Так и пишите:
Как вы сохраняете? Насколько я знаю, Edit не имеет средств сохранения данных в файл. Что выделаете для сохранения?
if OpenDialog1.execute=True then RichEdit1.Lines.loadFromFile(OpenDialog1.FileName);
end;
procedure TForm1.SaveClick(Sender: TObject);
begin
if SaveDialog1.Execute=true then RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);
