Delphi - modificacion

 
Vista:

modificacion

Publicado por jovanna (4 intervenciones) el 04/12/2008 03:04:26
hola quisiera que me ayuden a modificar este codigo bueno el programa es para guardar recetas consta de un lisbox donde se muestra la lista de las recetas,un groupbox donde se pone los ingredientes, nombre de la receta,fecha y tiene un memo donde se muestra las instrucciones ,el problema es que tiene que tener botones para mostrar los objetivos ,instrucciones,equipos,dibujo en la parte del memo dando un click en los botones(objetivo,instrucciones, equipos y dibujo) .
y tambien como guardar un dibujo en el memo par luego mostrarlo bueno gracias de antemano aqui les dejo el codigo cualquier ayuda es de mucha ayuda
unit Receta;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Spin, ComCtrls, StdCtrls;
const
Archivo='Recetas.dat'; //Nombre del archivo
type
TReceta=Record
Nombre: String[30];
Fecha: tDateTime;
Porciones: integer;
Ingred1: string[20];
Ingred2: string[20];
Ingred3: string[20];
Ingred4: string[20];
Instruc: string[200];
end;

TForm1 = class(TForm)
Label1: TLabel;
ListBox1: TListBox;
Nuevo: TButton;
Borrar: TButton;
GroupBox1: TGroupBox;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
DateTimePicker1: TDateTimePicker;
Label4: TLabel;
SpinEdit1: TSpinEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit2: TEdit;
Edit4: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Label10: TLabel;
Memo1: TMemo;
Guardar: TButton;
Descartar: TButton;
Cerrar: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure NuevoClick(Sender: TObject);
procedure BorrarClick(Sender: TObject);
procedure GuardarClick(Sender: TObject);
procedure DescartarClick(Sender: TObject);
procedure CerrarClick(Sender: TObject);
private
f: File of TReceta;
r: TReceta;
Nueva:Boolean;
Procedure MostrarLista;
Procedure MostrarRegistro;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
AssignFile(f,Archivo);
If FileExists(Archivo) then
reset(f) // si el archivo existe en el disco, lo abrimos
else
rewrite(f); // si no lo creamos
MostrarLista; //Lee todo el archivo y coloca los nombres en la lista
Nueva:= false; // bandera para saber si estamos ingresando una nueva receta
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
CloseFile(f);
end;
Procedure TForm1.MostrarLista;
begin
Listbox1.Items.Clear;
seek(f,0);
while not eof(f) do
begin
Read(f,r);
ListBox1.Items.Append(r.Nombre);
end;
ListBox1.ItemIndex:= 0;
ListBox1Click(nil);
end;
Procedure TForm1.MostrarRegistro;
begin
Read(f,r);
Edit1.Text:=r.Nombre;
DateTimePicker1.DateTime:= r.Fecha;
spinEdit1.Value:= r.Porciones;
Edit2.Text:= r.Ingred1;
Edit3.Text:= r.Ingred2;
Edit4.Text:= r.Ingred3;
Edit5.Text:= r.Ingred4;
Memo1.Text:= r.Instruc;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
Seek(f,listBox1.ItemIndex);
MostrarRegistro;
end;

procedure TForm1.NuevoClick(Sender: TObject);
begin
Nueva:= True;
Edit1.Text:='Nueva comida';
DateTimePicker1.Datetime:=now;
SpinEdit1.Value:= 1;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Memo1.Clear;
Edit1.SetFocus;
end;

procedure TForm1.BorrarClick(Sender: TObject);
var
g: File of TReceta;
regABorrar: integer;
begin
AssignFile(g,'Temp.dat');
Rewrite(g);
Seek(f,0);
RegABorrar:= ListBox1.ItemIndex;
While not eof(f) do
begin
Read(f,r);
If FilePos(f)<> RegABorrar then
write(g,r);
end;
CloseFile(f);
CloseFile(g);
Erase(f);
Rename(g,Archivo);
Reset(f);

MostrarLista;
end;

procedure TForm1.GuardarClick(Sender: TObject);
begin
r.Nombre:= Edit1.Text;
r.Fecha:= DateTimePicker1.DateTime;
r.Porciones:= SpinEdit1.Value;
r.Ingred1:= Edit2.Text;
r.Ingred2:= Edit3.Text;
r.Ingred3:= Edit4.Text;
r.Ingred4:= Edit5.Text;
r.Instruc:= Memo1.Text;
if Nueva then
seek(f,filesize(f))
else
seek(f,ListBox1.ItemIndex);
write(f,r);
Nueva:= false;
MostrarLista;
end;

procedure TForm1.DescartarClick(Sender: TObject);
begin
Seek(f,ListBox1.ItemIndex);
MostrarRegistro;
end;

procedure TForm1.CerrarClick(Sender: TObject);
begin
Close;
end;

end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:modificacion

Publicado por E.T. (1244 intervenciones) el 04/12/2008 18:13:49
Primero que nada, te recomiendo portar esto a una base de datos, pues aqui estas limitando tu receta a solo 4 ingredientes, ademas de que te sucedería algo similar con los equipos, y para poder hacer que una receta tenga más de 4 ingredientes, tendrías que hacer un archivo para recetas, uno para ingredietnes, y uno para equipos, haciendo el procesamiento de los datos lento, por el tipo de acceso que tienes a la información, cualquier base de datos es mejor que los archivos de registros, además de que es más fácil y rápido programar cuando tienes una base de datos.

No puedes agregar una imagen a un memo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar