Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

АРХИВ ФОРУМА eXeL@B
https://exelab.ru/f/

   

PalR Элементарщина, но я запарился.(Дельфи) Дельфи. На форму кладем три...


PalR Элементарщина, но я запарился.(Дельфи) Дельфи. На форму кладем три Label-а, три Edit-а и кнопку «Сохранить».
Нужно сделать сохранение только при условии заполнения всех полей Edit. А также выводить сообщения типа «Не заполнено поле .....Label.Caption(соответствующего Edita)». Вы будете смеятся, но я уже час парюсь. В реальном проекте Edit-ов очень много.
fuck it :: if edit1.text‹›’’ then сохранить
else label1.caption:=’заполни edit1’

ZX :: zapoln := true;
zapoln := zapoln and (Edit1.text ‹› ’’);
zapoln := zapoln and (Edit2.text ‹› ’’);
zapoln := zapoln and (Edit3.text ‹› ’’);
.....
zapoln := zapoln and (Edit1123255.text ‹› ’’);
if zapoln then
всё заполнено!
else
идите нах заполняйте!

PalR :: ZX
zapoln := true;
zapoln := zapoln and (Edit1.text ‹› ’’);
zapoln := zapoln and (Edit2.text ‹› ’’);
zapoln := zapoln and (Edit3.text ‹› ’’);
.....
zapoln := zapoln and (Edit1123255.text ‹› ’’);
Это главный недостаток.
Хотелось бы что нить по элегантней.
Наподобие этого. Только гдето ошибка.
var i,y : Integer;
begin
for i := 0 to ComponentCount-1 do
if (Components(i) is TEdit) then
begin
if (Components(i) as TEdit).Text = ’’ then
begin
for y := 0 to ComponentCount-1 do
if (Components(y) is TLabel) then
showmessage(’Не заполнено поле »’+ (Components(y) as TLabel).Caption + ’»’);
exit;
end
else
SQLresult;
IBQuery1.Close;
TotalClear;
end;
end;

AV :: не (Componets(i) as TEdit).Text, а
TEdit(FindComponent(’Edit’+IntToStr(i))).Text

[DDA] :: var i:integer;
begin
for I := 0 to ComponentCount -1 do
if Components is TEdit then
begin
if TEdit(Components).Text‹›’blablabla’ then Label1.Caption:=tEdit(Components).name;
end;// если в каком-то едите нет ’blablabla’ то выводит в лабел имя етого едита

PalR :: У меня вот что получилось и работает

procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
begin
for i := 0 to ComponentCount-1 do
if (Components(i) is TEdit) then //------------------------------------ (i) в квадратных скобках
if Length((Components(i) as TEdit).Text) = 0 then //---------------(i) в квадратных скобках
begin
showmessage(’Не все обязательные реквизиты заполнены’);
exit;
end;
end;
//---------------здесь нужное действие

end;

А вот Label прикрутить пока не удалось.

[DDA] :: Опа ,а квадратные-то скобки и не показало.Вот как должно быть

var i:integer;
begin
for I := 0 to ComponentCount -1 do
if Components((i)) is TEdit then
begin
if TEdit(Components ((I)) ).Text‹›’1’ then Label1.Caption:=tEdit(Components ((I)) ).name;
end;// двойные скобки-это типа квадратнве

[DDA] :: вот и с лабелом получилось

procedure TForm1.Button1Click(Sender: TObject);
var i,j,k:integer;
s,s1:string;
begin
for I := 0 to ComponentCount -1 do
if Components[I] is TEdit then
begin
if TEdit(Components[I]).Text<>'1' then
begin
s:=tEdit(Components[I]).name;
s1:='';
for k:=1 to Length(s) do
begin
if not (Upcase(s[k]) in ['A'..'Z']) then s1:=s1+s[k];
end;

for j:=0 to ComponentCount -1 do
begin
if Components[j] is TLabel then
//if TLabel(Components[j]).Caption
TLabel(FindComponent('Label'+s1)).Caption:=tEdit(C omponents[I]).name;
end;

end;//Label1.Caption:=tEdit(Components[I]).name;
end;
end;

PalR :: Вот окончательный вид. Если поле не заполнено, выводит сообщение какое поле (например Фамилия Имя Отчество ит.д) используя свойство Hint

procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
begin
for i := 0 to ComponentCount-1 do
if (Components(i) is TEdit) then //--------------------------------------- (i) в квадратных скобках
if Length((Components(i) as TEdit).Text) = 0 then //---------------(i) в квадратных скобках
begin
MessageDlg(’Не заполнено поле » ’+ (Components(i) as TEdit).Hint+ ’ »’, mtError, [mbYes], 0); // используем свойство Hint
(Components(i) as TEdit).SetFocus;// передаем ему фокус
exit;
end;
end;
//---------------здесь нужное действие

end;






   
Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS