|
Тема
|
Проблем с оцветяването
|
|
Автор |
s1ckbOy (непознат
) |
Публикувано | 25.05.09 12:12 |
|
Имам PаgeControl с два tabsheet-a , единият с много TDBEdit. При натискане на бутон ми се задейства процедура която прави проверка дали има стойности в текущият запис в БД, ако не минавам на вторият tabsheet , оцветявам в червено TDBEdit-те и ехit oт процедурата. Като си въведа корекциите и пусна процедурата отново , ако в следващ запис има празни полета TDBEdit-те не се оцветят ... ... Оцветяването работи само първият път
Редактирано от s1ckbOy на 25.05.09 12:15.
| |
Тема
|
Re: Проблем с оцветяването
[re: s1ckbOy]
|
|
Автор |
ozzoz (непознат) |
Публикувано | 26.05.09 12:07 |
|
Дай малко пове4е инфо.
и кода на процедурата
| |
Тема
|
Re: Проблем с оцветяването
[re: ozzoz]
|
|
Автор |
s1ckbOy (непознат
) |
Публикувано | 28.05.09 10:50 |
|
Имам Page Control с два TabSheet-a. На единият TabSheet имам DBGrid който ми визуализира само някои от полетата в таблица от БД, и бутон с процедура която ще обходи всички записи. На другия TabSheet имам DBEdit компоненти които визуализират всички полета от таблицата в БД за текущият запис (този който в момента е посочен в Grid-a на Tabsheet1). Процедурата ми прави текстов файл в който са ми нужни някои полета които DBGrid-a не показва. Така процедурата прави проверка кои не са попълнени преди да генерира текстовия файл и ако има такива сменям от Tabsheet1 ---> на Tabsheet2 и оцветявам всички празни DBEdit-и в червено и казвам "Червените полета са задължителни трябва да се попълнят"....
Например:
Ако имам празни полета в 20тия запис от Grida процедурата спира , показва Tabsheet2 и оцветява кое да се попълни. Правя си корекциите и пускам отново. Намирам пак празни полета на 32рия запис и процедурата отново ме прехвърля на Tabsheet2, но не оцветява !! Работата е там че записите нямат номерация и немога да ги обходя и посоча всички които имат празни полета още в началото.
//-------------------------------------- Проверката-----------------------------------//
function TfDokumenti.CheckFields: Boolean;
var Poleta:TStringList;
j:integer;
begin
Poleta:=TStringList.Create;
Result:=True;
if dmLocal.sqPlatejniDATA_PREDST.AsString=EmptyStr then Poleta.Add('dbeDataPredst');
if dmLocal.sqPlatejniDATA_DOK.AsString=EmptyStr then Poleta.Add('dbeDokData');
if dmLocal.sqPlatejniDATA_IZPAL.AsString=EmptyStr then Poleta.Add('dbeDataIzpaln');
if dmLocal.sqPlatejniIBAN.AsString=EmptyStr then Poleta.Add('dbeBankaIBAN');
if dmLocal.sqPlatejniNAREDITEL.AsString=EmptyStr then Poleta.Add('dbeNareditel');
if dmLocal.sqPlatejniBIC.AsString=EmptyStr then Poleta.Add('dbeBankaBIC');
if dmLocal.sqPlatejniBANKA_IME.AsString=EmptyStr then Poleta.Add('dbeBankaIme');
if dmLocal.sqPlatejniKL_BIC.AsString=EmptyStr then Poleta.Add('dbeKlBankaBIC');
if dmLocal.sqPlatejniKL_BANKA_IME.AsString=EmptyStr then Poleta.Add('dbeKlBankaIme');
if Poleta.CommaText<>EmptyStr then
begin
TabSheet2.Show;
for j:=0 to Poleta.Count-1 do
begin
if FindComponent(Poleta.Strings[j]).ClassNameIs('TDBEdit') then
begin
(FindComponent(Poleta.Strings[j]) as TDBEdit).Color:=clRed;
(FindComponent(Poleta.Strings[j]) as TDBEdit).Repaint;
end;
end;
MessageDlg('Попълни червените!',mtWarning,[mbOK],0);
Result:=False;
FreeAndNil(Poleta);
end;
//---------------------------------------------------------------------------------------//
Ако това нещо върне false процедурата ми спира.
| |
|
|
|
|