Ver Mensaje Individual
  #3  
Antiguo 03-06-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jonydread.

Sinceramente habría sido de mucha utilidad que hubieras explicado con palabras que deseabas que hiciera la rutina.

Es difícil interpretar correctamente el código si no se sabe cuál es su finalidad, sin contar que se ignora el tipo y cometido de de los componentes y debido a todo eso, por que se lanza la excepción.

De todas formas veo que llevas dos semanas con esto, así que de acuerdo a lo que entendí, yo trataría de clarificar un poco encapsulando algunas acciones:
Código Delphi [-]
function TForm1.ExistsInCaption(aCaption: TCaption): Boolean;
var
  i: Integer;
begin
  Result:= False;
  for i:= 0 to ListView5.Items.Count-1 do
    if Pos(aCaption, ListView5.Items[i].Caption) <> 0 then
    begin
      Result:= True;
      Exit;
    end;
end;

procedure TForm1.Insertar;
begin
  zquery1.sql.text:= 'insert into MP values(:id, :area, :elemento, :frecuencia, :tipo, :umant, mant)';
  zQuery1.ParamByName('id').AsString:= dblookupcombobox1.KeyValue;
  zQuery1.ParamByName('area').AsString:= label8.Caption;
  zQuery1.ParamByName('elemento').AsString:= dblookupcombobox1.Text;
  zQuery1.ParamByName('frecuencia').AsString:= edit11.Text;
  zQuery1.ParamByName('tipo').AsString:= edit12.Text;
  zQuery1.ParamByName('umant').AsString:= uman.Text;
  zQuery1.ParamByName('pmant').AsDate:= Datetimepicker4.Date;
  zQuery1.ExecSQL;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  cItem: TListItem;
begin
  if (dblookupcombobox1.KeyValue = NULL) or (edit11.Text='') or (edit12.Text='') then
  begin
    MessageDlg('complete campos', mtWarning, [mbOk],0);
    Exit;
  end;

  if not ExistsInCaption('cadena') then
    Insertar
  else
  begin
    MessageDlg('ya existe elemento', mtWarning, [mbCancel], 0);
    Exit;
  end;

  zquery1.SQL.Text := 'SELECT * From MP where area = :area';
  zQuery1.ParamByName('area').AsString:= label8.Caption;
  zquery1.Open;
  while not zquery1.Eof do
  begin
    cItem := Listview5.Items.Add;
    cItem.Caption:= zQuery1.fieldbyname('id').AsString;
    cItem.SubItems.Add(zQuery1.fieldbyname('elemento').AsString);
    cItem.SubItems.Add(zQuery1.fieldbyname('frecuencia').AsString);
    cItem.SubItems.Add(zQuery1.fieldbyname('tipo').AsString);
    cItem.SubItems.Add(zQuery1.fieldbyname('umant').AsString);
    cItem.SubItems.Add(zQuery1.fieldbyname('pmant').AsString);
    zquery1.next;
  end;
  edit11.Clear;edit12.Clear;
  uman.Clear;
  uman.Lines.Add('no registra');
  Datetimepicker3.Format:= ' ';
end;
Te aclaro que sólo pretendo darte una pauta, no probé el código e ignoro si funciona tál como esta, pero espero que te sirva como punto de partida para encontrar la solución.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita