[ sanivr @ 15.05.2017. 21:57 ] @
Imam formu sa brdo tabova tako da ima brdo edita komboa i tako dalje. Zamiso mi je kada kliknem Save button da pozove neku funkciju Check koja kao ulazni parametar bi imala listu objekta (kombo boksovi, editi, i.t.d) koi nisu popunjeni i na kraju fuknckija vraca string u formatu. Ako moze neko da mi pomogne ovo da odradim u Delphiju. Hvala

kvazi kod

Kreiraj array
Proveri svako polje, ako je prazno stavi ga u array
pozovi funkciju koja kao parametar uzima array

i funkcija

Code:

string message = "Polja ";

for int i = 0; i >= ListOfObject.Length; i++
message += ListOfObject[i].Name + ", ";

message += "su obavezna";
[ captPicard @ 15.05.2017. 22:19 ] @
Prvo mi pada ovo na pamet:

Iteriraj kroz sve komponente (for i:= ... to ComponentCount...). Postavi Tag npr 1 onima koje su obavezne. Kada naletiš na obaveznu, provjeri, ako nije popunjena zapiši.
[ sanivr @ 15.05.2017. 23:05 ] @
To je mozda dobro resenje ali ne znam tacan broj parametra i imace problem sa pravopisom :S mislim na ovo

Polja ClassID, ono, ovo are required! radi zapete bice malo ono. Znaci volela bih bas da znam broj polja koja su prazna (tacnije to sve da strpam u array i onda citam odatle).
[ savkic @ 16.05.2017. 01:07 ] @
> To je mozda dobro resenje ali ne znam tacan broj parametra i imace problem sa pravopisom :S mislim na ovo

> Polja ClassID, ono, ovo are required! radi zapete bice malo ono. Znaci volela bih bas da znam broj polja koja su
> prazna (tacnije to sve da strpam u array i onda citam odatle).

Ne kapiram sta je tacno problem?

Dakle ides kroz sve komponente na formi (ili na tom tabu) i sve TEdit (TMemo i sta ti jos treba od kontrol) koji su prazni ubacis u taj dodatni niz. Grubi kod:

Code:

for i := 0 to ComponentCount -  1 do
begin
  if (Components[i] is TEdit) and (TEdit(Components[i]).Text = '') then
      // Uradi nesto;
  
  if (Components[i] is TMemo) and (TMemo(Components[i]).Text = '') then
      // Uradi nesto;

end;

[ sanivr @ 16.05.2017. 07:47 ] @
Problem je sintaksa ipak sam ja .net developer :) Hvala ti ovo ce pomoci.
[ sanivr @ 16.05.2017. 08:45 ] @
Ali opet nista, znaci kastiranje ne pomaze ja dobijam parametre od TEdit ali ne i parametre od edita koj je prazan napimer. Zato mi je zamisla bila da posaljem sve prazne kotrole kao array.
[ Rapaic Rajko @ 16.05.2017. 09:05 ] @
Znaci tako, .net developer, heh?

Mislim da te buni deklaracija array-a. U Delphi-ju imas dinamicke nizove, sintaksa je otprilike ovakva:
Code:

  type
    TComponentArray = array of TComponent;
  var
    MyComponentArray: TComponentArray; 


Pogledaj funkcije/procedure SetLength() i length(), rade sa dinamickim array-om. Takodje, indeksiranje array-a krece od nule (zero-based).

Pozz
[ savkic @ 16.05.2017. 10:58 ] @
> Ali opet nista, znaci kastiranje ne pomaze ja dobijam parametre od TEdit ali ne i parametre od edita koj je prazan napimer.

Ovo ne razumem, sta znaci dobiti parametre od praznog ili ne praznog edita?

> Zato mi je zamisla bila da posaljem sve prazne kotrole kao array.

Mozda ne kapiram najbolje sta ti treba, ali sam siguran da moze, pokusaj da bolje objasnis i postavi neki primer koda.
[ captPicard @ 16.05.2017. 20:43 ] @
Ona želi dobiti naziv TEdit-a koji je prazan. Kada iteriraš kroz komponente (kod od kolege savkica), možeš dobiti njegov naziv:

Code (delphi):
for i := 0 to ComponentCount -  1 do
begin
  if (Components[i] is TEdit) and (TEdit(Components[i]).Text = '') then
   begin
      // Uradi nesto;
     MyComponentArray[i] := Components[i].Name;
  end;
 
  if (Components[i] is TMemo) and (TMemo(Components[i]).Text = '') then
      // Uradi nesto;

end;


Ili ako su ti to DB componente, onda možeš npr ovako:

Code (delphi):


function PretvoriNazive(ADefault: string): string;
begin
if ADefault = 'code_id' then Result := 'Kod ID';
...
end;

for i := 0 to ComponentCount -  1 do
begin
if (Components[i] is TDBEdit) and (TDBEdit(Components[i]).Text = '') then
   begin
      // Uradi nesto;
     MyComponentArray[i] := PretvoriNazive(Components[i].FieldName);
  end;
 
  if (Components[i] is TMemo) and (TMemo(Components[i]).Text = '') then
      // Uradi nesto;

end;


Na taj način češ dobiti korisniku čitljiviji rezultat, jer čisto sumnjam da ti se kontrole zovu "Šifra grada"