Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-06-2005
eljuan eljuan is offline
Registrado
 
Registrado: jun 2005
Posts: 3
Poder: 0
eljuan Va por buen camino
urgente¡¡como guardo en archivo varios shapes¡¡¡

hola que tal¡¡¡
agradeceria bastante si alguien me puediera ayudar a guardar las imagenes generadas por este codigo que anexo acontinuacion.



unit proyecto;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Menus;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit1: TEdit;
Button4: TButton;
PrintDialog1: TPrintDialog;
MainMenu1: TMainMenu;
Archivo1: TMenuItem;
Abrir1: TMenuItem;
Guardar1: TMenuItem;
imprimir1: TMenuItem;
Salir1: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Salir1Click(Sender: TObject);
procedure imprimir1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
Capturing:Boolean;
MouseDownSpot:TPoint;
NumFiguras:Integer;
procedure _IMGMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseMove1(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseUp1(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseDown1(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

public
{ Public declarations }
end;
var
Form1: TForm1;
NumFiguras: integer;
elipse:TShape;
edit_elipse:tedit;
rec:TShape;
edit_rec:tedit;
implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
// Crear un componentes
edit_elipse:=tedit.Create(self);
edit_elipse.Parent:=self;
edit_elipse.BorderStyle:=bsnone;
elipse := TShape.Create(Self);
elipse.Parent := Self;
// Posicion
elipse.Top := 100;
elipse.Left := 100;
edit_elipse.Top:=elipse.Top +20;
edit_elipse.Left:=elipse.Left+20;
// Tamaño
elipse.Height := 50;
elipse.Width := 100;
edit_elipse.height:=20;
edit_elipse.Width:=70;
// Tipo de elemento
elipse.Shape := TShapeType(stEllipse);
// Asignar para que pueda arrastrarse
elipse.OnMouseMove := _IMGMouseMove;
elipse.OnMouseDown := _IMGMouseDown;
elipse.OnMouseUp := _IMGMouseUp;

edit_elipse.OnMouseDown := _IMGMouseDown;
edit_elipse.OnMouseMove := _IMGMouseMove;
edit_elipse.OnMouseUp := _IMGMouseUp;
// Otras propiedades
elipse.Cursor := crHandPoint;
elipse.Brush.Color := RGB(120,250,23);
edit_elipse.Brush.Color:=rgb(120,250,23);
edit_elipse.Cursor:=crHandPoint;
end;

procedure TForm1._IMGMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;


end;
procedure TForm1._IMGMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
edit_elipse.left:=elipse.left+15;
edit_elipse.top:=elipse.top+15;
if Capturing then begin
TWinControl(Sender).Left := TWinControl(Sender).Left - (MouseDownSpot.x - x);
TWinControl(Sender).Top := TWinControl(Sender).Top - (MouseDownSpot.y - y);
end;

end;
procedure TForm1._IMGMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
ReleaseCapture;
Capturing := false;
TWinControl(Sender).Left := TWinControl(Sender).Left - (MouseDownSpot.x - x);
TWinControl(Sender).Top := TWinControl(Sender).Top - (MouseDownSpot.y - y);
end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin
// Crear un componentes
edit_rec:=tedit.Create(self);
edit_rec.Parent:=self;
edit_rec.BorderStyle:=bsnone;
rec := TShape.Create(Self);
rec.Parent := Self;
// Posicion
rec.Top := 100;
rec.Left := 100;
edit_rec.Top:=rec.Top +20;
edit_rec.Left:=rec.Left+20;
// Tamaño
rec.Height := 50;
rec.Width := 100;
edit_rec.height:=20;
edit_rec.Width:=70;
// Tipo de elemento
rec.Shape := TShapeType(stRoundRect);
// Asignar para que pueda arrastrarse
rec.OnMouseMove := _IMGMouseMove1;
rec.OnMouseDown := _IMGMouseDown1;
rec.OnMouseUp := _IMGMouseUp1;

edit_rec.OnMouseDown := _IMGMouseDown;
edit_rec.OnMouseMove := _IMGMouseMove;
edit_rec.OnMouseUp := _IMGMouseUp;
// Otras propiedades
rec.Cursor := crHandPoint;
rec.Brush.Color := RGB(120,250,23);
edit_rec.Brush.Color:=rgb(120,250,23);
edit_rec.Cursor:=crHandPoint;
end;
procedure TForm1._IMGMouseDown1(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;


end;
procedure TForm1._IMGMouseMove1(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
edit_rec.left:=rec.left+15;
edit_rec.top:=rec.top+15;
if Capturing then begin
TWinControl(Sender).Left := TWinControl(Sender).Left - (MouseDownSpot.x - x);
TWinControl(Sender).Top := TWinControl(Sender).Top - (MouseDownSpot.y - y);
end;

end;
procedure TForm1._IMGMouseUp1(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
ReleaseCapture;
Capturing := false;
TWinControl(Sender).Left := TWinControl(Sender).Left - (MouseDownSpot.x - x);
TWinControl(Sender).Top := TWinControl(Sender).Top - (MouseDownSpot.y - y);
end;

end;


procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then
self.canvas.moveto(x,y);
if ssRight in Shift then
self.canvas.lineto(x,y);
canvas.TextOut(x,y,edit1.text);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Visible:=true;
button4.Visible:=true;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
edit1.Visible:=false;
button4.Visible:=false;
end;
procedure TForm1.Salir1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.imprimir1Click(Sender: TObject);
begin
PrintDialog1.Execute;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
Responder Con Cita
  #2  
Antiguo 15-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Puedes usar un bucle sobre Form1.Controls y ver si se trata de un TShape o bien de un Label; si lo es, entonces guardas las coordenadas en un archivo .ini y al tiempo de crear la ventana, miras ese archivo y creas los controles automaticamente.

Deberias asignar la propiedad Name a cada control que creas dinamicamente, al menos para poder indentificarlo al guardar y recuperar.

Si necesitas ayuda, busca en el foro sobre TiniFile, seguro que encuentras algo.

PD: Por favor, edita el mensaje y encierra el código entre

[ delphi ]
aqui vuestro codigo
[ /delphi ]

(sin espacios entre corchetes) Así consigues que respete el identado y aparezca las palabras reservadas en negrita y colores.

otras etiquetas:
code
sql
php
quote (citar un texto dicho por otra persona) [quote=Lepes] se transforma
en "Originalmente publicado por Lepes"


Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:42:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi