Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
Generar accesos Directos

Bueno:
Esta mas que una pregunta es un aporte, espero que roman no se enoje.

Hace unos dias pregunte como ejecutar un evento sabiendo su nombre, bueno lo pude solucionar y quiero comparti mi experencia.
Lo que hace es un icono en una apliacion MDI en el form principal y le asigo un evento del menu principal, haciendo asi nuestros accesos mas usados de la aplicaion



Lo primero que me presento era como hacer el icono en la pantalla, para eso quise hacerlo y me tome con la pagina de http://www.i-griegavcl.com/down.asp de donde tome un compontente y lo retoque un poquito para , concretamente es el SelPanel 1.05
aca les dejo el codigo del componete que yo retoque:

Código Delphi [-]

unit Acceso;

interface

uses
    Windows, Messages, SysUtils, Classes, Controls, Graphics;

type
  TAccesoDirecto = class(TCustomControl)
  private
    FPicture:TPicture;
    FColors:array[0..5] of TColor;
    FOnMouseEnter,
    FOnMouseLeave:TNotifyEvent;
    FBorder:Boolean;
    FBorderWidth:Integer;
    FOver:Boolean;
    FPosXPicture:Word;
    FPosYPicture:Word;
    FText:TCaption;
    FTextFont:TFont;
    FPosXText:Word;
    FPosYText:Word;
    FAlignment,
    FTextAlign: TAlignment;
    procedure SetPicture(Value:TPicture);
    procedure SetColors(Index:Integer;Value:TColor);
    function GetColors(Index:integer):TColor;
    procedure SetBorder(Value:Boolean);
    procedure SetBorderWidth(Value:integer);
    procedure SetPosXPicture(Value:Word);
    procedure SetPosYPicture(Value:Word);
    procedure SetText(Value:TCaption);
    procedure SetPosXText(Value:Word);
    procedure SetPosYText(Value:Word);
    procedure SetTextFont(Value:TFont);
    procedure FontChanged(Sender: TObject);
    procedure SetAlignment(Value: TAlignment);
    procedure SetTextAlign(Value: TAlignment);
    { Private declarations }
  protected
    procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
    procedure WMKillFocus(var Message: TWMSetFocus); message WM_KILLFOCUS;
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
    procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
    procedure Paint; override;
    procedure KeyPress(var Key: Char);override;
    procedure Click;override;
    { Protected declarations }
  public
    constructor Create(AOwner:TComponent);override;
    destructor Destroy;override;
    property Colors[Index:Integer]:TColor read GetColors Write SetColors;
    Procedure SetAllTexts(S:String);
    { Public declarations }
  published
     property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
     property TextAlign: TAlignment read FTextAlign write SetTextAlign default taLeftJustify;
     property Picture:TPicture read FPicture Write SetPicture;
     property Border:Boolean read FBorder Write SetBorder default True;
     property BorderWidth:integer read FBorderWidth Write SetBorderWidth default 1;
     property Color:TColor Index 0 read GetColors Write SetColors default clBtnFace;
     property BorderColor:TColor Index 1 read GetColors Write SetColors default clBlack;
     property FocusedColor:TColor Index 2 read GetColors Write SetColors default clBtnHighlight;
     property FocusedBorderColor:TColor Index 3 read GetColors Write SetColors default clBlack;
     property OverColor:TColor Index 4 read GetColors Write SetColors default clBtnShadow;
     property OverBorderColor:TColor Index 5 read GetColors Write SetColors default clBlack;
     property PosXPicture:Word read FPosXPicture Write SetPosXPicture default 10;
     property PosYPicture:Word read FPosYPicture Write SetPosYPicture default 10;
     property PosXText:Word read FPosXText Write SetPosXText default 50;
     property PosYText:Word read FPosYText Write SetPosYText default 1;
     property Caption;
     property Text:TCaption read FText Write SetText;
     property TextFont:TFont read FTextFont Write SetTextFont;
     property Font;
     property Tabstop;
     property BiDiMode;
     property TabOrder;
     property Action;
     property Align;
     property Anchors;
     property Visible;
     property Enabled;
     property Constraints;
     property DragCursor;
     property DragKind;
     property DragMode;
     property ParentBiDiMode;
     property ParentFont;
     property ParentShowHint;
     property PopupMenu;
     property ShowHint;
     property OnMouseEnter:TNotifyEvent read FOnMouseEnter Write FOnMouseEnter;
     property OnMouseLeave:TNotifyEvent read FOnMouseLeave Write FOnMouseLeave;
     property OnClick;
     property OnContextPopup;
     property OnDblClick;
     property OnDragDrop;
     property OnDragOver;
     property OnEndDock;
     property OnEndDrag;
     property OnMouseDown;
     property OnMouseMove;
     property OnMouseUp;
     property OnStartDock;
     property OnStartDrag;
     property OnEnter;
     property OnExit;
    { Published declarations }
  end;
Function _BiDiMode(Alignment: TAlignment;BiDi:TBiDiMode):TAlignment;
procedure Register;

implementation
Function _BiDiMode(Alignment: TAlignment;BiDi:TBiDiMode):TAlignment;
begin
  Result :=Alignment;
  if (SysLocale.MiddleEast) and (BiDi= bdRightToLeft) then
  case Alignment of
    taLeftJustify:  Result := taRightJustify;
    taRightJustify: result := taLeftJustify;
  end;
end;
Procedure TAccesoDirecto.SetAllTexts(S:String);
begin
   if S='' then
   begin
      Caption:='';
      Text:='';
   end
   else
      if pos('|',S)>0 then
      begin
         caption:=copy(S,1,pos('|',S)-1);
         text:=copy(S,pos('|',S)+1,length(S));
      end
      else
         Caption:=S;
end;
constructor TAccesoDirecto.Create(AOwner:TComponent);
begin
   inherited;
   FOver:=False;
   Tabstop:=True;
   FBorder:=True;
   FBorderWidth:=1;
   FColors[0]:= clBtnFace;
   FColors[1]:=clBlack;
   FColors[2]:=clBtnHighlight;
   FColors[3]:=clBlack;
   FColors[4]:= clBtnShadow;
   FColors[5]:=clBlack;
   FPicture:=TPicture.Create;
   FTextFont:=TFont.Create;
   FTextFont.OnChange:=FontChanged;
   FPosXPicture:=10;
   FPosYPicture:=10;
   FPosXText:=50;
   FPosYText:=1;
   FText:='';
   Font.Style:=[fsBold];
   FAlignment:=taLeftJustify;
   FTextAlign:=taLeftJustify;
end;
destructor TAccesoDirecto.Destroy;
begin
   FTextFont.Free;
   FPicture.Free;
   inherited;
end;
procedure TAccesoDirecto.CMTextChanged(var Message: TMessage);
begin
   inherited;
   invalidate;
end;
procedure TAccesoDirecto.WMSetFocus(var Message: TWMSetFocus);
begin
   inherited;
   Invalidate;
end;

procedure TAccesoDirecto.WMKillFocus(var Message: TWMSetFocus);
begin
   inherited;
   Invalidate;
end;

procedure TAccesoDirecto.CMMouseEnter(var Message: TMessage);
begin
  inherited;
  if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
  FOver:=True;
  Invalidate;
end;

procedure TAccesoDirecto.CMMouseLeave(var Message: TMessage);
begin
  inherited;
  if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
  FOver:=False;
  Invalidate;
end;

procedure TAccesoDirecto.SetPicture(Value:TPicture);
begin
   FPicture.Assign(Value);
   repaint;
end;
procedure TAccesoDirecto.SetPosXPicture(Value:Word);
begin
   if FPosXPicture<>Value then
      if value>0 then
      begin
         FPosXPicture:=Value;
         invalidate;
      end;
end;

procedure TAccesoDirecto.SetPosYPicture(Value:Word);
begin
   if FPosYPicture<>Value then
      if (value>=0) then
      begin
         FPosYPicture:=Value;
         invalidate;
      end;
end;

procedure TAccesoDirecto.SetPosXText(Value:Word);
begin
   if FPosXText<>Value then
      if Value>0 then
      begin
         FPosXText:=Value;
         invalidate;
      end;
end;

procedure TAccesoDirecto.SetPosYText(Value:Word);
begin
   if FPosYText<>Value then
      if Value>=0 then
      begin
         FPosYText:=Value;
         invalidate;
      end;
end;

procedure TAccesoDirecto.SetText(Value: TCaption);
begin
  if FText<>Value then
  begin
    FText:=Value;
    //Height:=FPicture.Height
    invalidate;
//    Paint;
  end;

end;

procedure TAccesoDirecto.SetTextFont(Value:TFont);
begin
   FTextFont.Assign(Value);
end;

procedure TAccesoDirecto.FontChanged(Sender: TObject);
begin
   invalidate;
end;

procedure TAccesoDirecto.SetBorder(Value:Boolean);
begin
   if FBorder<>Value then
   begin
      FBorder:=Value;
      Invalidate;
   end;
end;

procedure TAccesoDirecto.SetBorderWidth(Value:integer);
begin
   if FBorderWidth<>Value then
   begin
      if Value>0 then
         FBorderWidth:=Value;
      Invalidate;
   end;
end;
procedure TAccesoDirecto.SetColors(Index:Integer;Value:TColor);
begin
   if FColors[Index]<>Value then
   begin
      FColors[Index]:=Value;
      Invalidate;
   end;
end;
Function TAccesoDirecto.GetColors(Index:Integer):TColor;
begin
   Result:=FColors[Index];
end;

procedure  TAccesoDirecto.Click;
begin
   inherited;
   SetFocus;
end;

procedure TAccesoDirecto.KeyPress(var Key: Char);
begin
   if (Key=#13) or (Key=#32) then
      Click;
   Key:=#0;
end;

procedure TAccesoDirecto.SetAlignment(Value: TAlignment);
begin
   if FAlignment<>Value then
   begin
      FAlignment:=Value;
      Invalidate;
   end;
end;

procedure TAccesoDirecto.SetTextAlign(Value: TAlignment);
begin
   if FTextAlign<>Value then
   begin
      FTextAlign:=Value;
      Invalidate;
   end;
end;

procedure TAccesoDirecto.Paint;
const
   AAlignment : array[taLeftJustify..taCenter] of uchar=(DT_LEFT,DT_RIGHT,DT_CENTER);
var
   X, Y, W, H: Integer;
   r:TRect;
   Flags:Cardinal;
   despv,desph:Integer;
begin
   despv:= 3;
   //despv:= PosYText;

   Desph:=0;
   if border then
   begin
      despv:=despv+BorderWidth;
      Desph:=BorderWidth-1;
   end;
   with Canvas do
   begin
      setbkmode(Handle,TRANSPARENT);
      Pen.Width:=BorderWidth;
      Pen.Color:=BorderColor;
      Brush.Style:=bsSolid;
      Brush.Color:=Color;

      X := Pen.Width div 2;
      Y := X;
      W := Width - Pen.Width + 1;
      H := Height - Pen.Width + 1;
      if Focused then
      begin
         Pen.Color  :=FocusedBorderColor;
         Brush.Color:=FocusedColor;
      end;
      if FOver then
      begin
         Pen.Color  :=OverBorderColor;
         Brush.Color:=OverColor;
      end;
      FillRect(ClientRect);
      Brush.Style:=bsClear;
      if Assigned(Picture.Graphic) then
      begin
         Picture.Graphic.Transparent:=true;
         if PosYPicture>0 then
           Draw(BorderWidth+PosXPicture,((Height-Picture.Graphic.Height) div 2)+PosYPicture,Picture.Graphic)
         else
           Draw(BorderWidth+PosXPicture,0,Picture.Graphic)

// original   Draw(BorderWidth+PosXPicture,((Height-Picture.Graphic.Height) div 2),Picture.Graphic);

      end;
      if Border then Rectangle(X, Y, X + W, Y + H);
      Flags:=AAlignment[_BiDiMode(Alignment,BiDiMode)] or DT_NOPREFIX or DT_END_ELLIPSIS;
      R:=Rect(posxText+desph,despv,width-desph,height-despv);
      Font:=self.Font;
      Drawtext(handle,PChar(caption),-1,R,flags);
      Flags:=DT_WORDBREAK or AAlignment[_BiDiMode(TextAlign,BiDiMode)] or DT_NOPREFIX;
      if PosYText>0 then
        R:=Rect(posxText+desph,TextHeight(Caption)+PosYText+despv,width-despv,height-despv)
      else
        R:=Rect(posxText+desph,Picture.Graphic.Height+despv,width-despv,height-despv);

//      R:=Rect(posxText+desph,TextHeight(Caption)+despv,width-despv,height-despv);

      Font:=self.TextFont;
      DrawText(Handle, PChar(Text), -1, R, Flags);
   end;
end;
procedure Register;
begin
  RegisterComponents('Ejemplo', [TAccesoDirecto]);
end;

end.

Lo que no supe hacer es como hacerle el fondo transparente y qle la altura se ajuste al texto del icono , si alguien tiene la capcidad de hacerlo buenisimo y mas si lo publica.

///sigo en tro mensaje

Última edición por Casimiro Notevi fecha: 02-07-2012 a las 10:03:17.
Responder Con Cita
  #2  
Antiguo 02-07-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
Generar accesos Directos 2-2

Bueno como sigue esto , puse un popMenu en el form Principal y le puse " Generar Acc.Directo"
con este codigo

Código Delphi [-]

procedure TFMenu.CrearAccesoDirectoExecute(Sender: TObject);
var accIcono:TAccesoDirecto;
    path:String;
Puntero:TPoint;
begin
  CDSAccesos.Insert;
  Path:=ExtractFilePath(ParamStr(0));
  GetCursorPos(Puntero);

  accIcono         := TAccesoDirecto.Create(FMenu);
//  accIcono.Picture.LoadFromFile(Path+'kcmdf.gif');// := imgAccesoDirecto.Picture;
  accIcono.Picture.LoadFromFile(Path+'kcmdf.gif');
  accIcono.PosXPicture:=20;
  accIcono.PosYPicture:=0;
  accIcono.PosXText   :=1;
  accIcono.PosYText   :=0;
  accIcono.Text       :='Acceso Directo';
  accIcono.Left       := Puntero.X;
  accIcono.Top        := Puntero.Y;
  accIcono.Height     := 76;
  accIcono.width      := 70;
  accIcono.OnMouseDown:= AccesoDirecto1MouseDown;
  accIcono.OnMouseMove:= AccesoDirecto1MouseMove;
  accIcono.OnMouseUp  := AccesoDirecto1MouseUp;
  accIcono.PopupMenu  := mOpcionAccesoDirecto;
  accIcono.Parent     := FMenu;
  accIcono.Name       := 'Acc_'+CDSAccesosID.AsString;
  accIcono.Caption    := '';
  accIcono.Parent     := FMenu;
  accIcono.TextAlign  := taCenter;
  accIcono.Border     := False;
  accIcono.Visible    := True;


 // CDSAccesosIMAGEN.AsVariant:=accIcono.Picture;
  CDSAccesos.Post;
  CDSAccesos.ApplyUpdates(0);
//  lbAccesoDirecto          := TLabel.Create ( pnAccesoDirecto );
//  lbAccesoDirecto.Parent   := pnAccesoDirecto;
//  lbAccesoDirecto.Caption  :='Nuevo Acceso Directo';
end;

una cosa, genere una tabla en la base de datos con los parametros del icono que genero
asi:

Código SQL [-]

CREATE TABLE ACCESOS_DIRECTOS (
    ID          INTEGER NOT NULL,
    ID_USUARIO  FLOAT NOT NULL,
    POS_X       INTEGER,
    POS_Y       INTEGER,
    CAPTION     VARCHAR(100),
    ACCION      VARCHAR(100),
    IMAGEN      BLOB SUB_TYPE 2 SEGMENT SIZE 8192
);

para hacerme mas facil las cosas puse en el form y con visble fasle , un TAccesoDirecto, un ListtBox, y un Edit

en el Acceso Directo puse en el

Código Delphi [-]

procedure TFMenu.AccesoDirecto1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Seleccionado:=False;
  if (Button = mbLeft) then
    Seleccionado:=True;
  MouseDownSpot.X := X;
  MouseDownSpot.Y := Y;
  AccNombre  := TAccesoDirecto(Sender).Name;
end;

procedure TFMenu.AccesoDirecto1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 if Seleccionado then
    begin
      TAccesoDirecto(Sender).Left := TAccesoDirecto(Sender).Left - (MouseDownSpot.x - x);
      TAccesoDirecto(Sender).Top  := TAccesoDirecto(Sender).Top - (MouseDownSpot.y - y);
//      FindComponent('L'+TImage(Sender).Name)
//      Etiqueta.Top  := TImage(Sender).Top+TImage(Sender).Height;
//      Etiqueta.Left := TImage(Sender).Left-Trunc((Etiqueta.Width-TImage(Sender).Width) /2);

    end;

end;

procedure TFMenu.AccesoDirecto1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var Nombre:String;
begin
 if Seleccionado then
    begin
      ReleaseCapture;
      Seleccionado := false;
      TAccesoDirecto(Sender).Left := TAccesoDirecto(Sender).Left - (MouseDownSpot.x - x);
      TAccesoDirecto(Sender).Top  := TAccesoDirecto(Sender).Top - (MouseDownSpot.y - y);
      Nombre:=TAccesoDirecto(Sender).Name;
      CDSAccesos.Close;
      CDSAccesos.Params.ParamByName('id_usuario').Value:= DMMain_2.UsuarioActivoId;
      CDSAccesos.Params.ParamByName('id').Value        := StrToInt(Trim(copy(Nombre,5,10)));
      CDSAccesos.Open;
      CDSAccesos.Edit;
      CDSAccesosPOS_X.Value:= TAccesoDirecto(Sender).Left - (MouseDownSpot.x - x);
      CDSAccesosPOS_Y.Value:= TAccesoDirecto(Sender).Top - (MouseDownSpot.y - y);
      CDSAccesos.Post;
      CDSAccesos.ApplyUpdates(0);
    end;
end;

en el ListBox

Código Delphi [-]

procedure TFMenu.ListBoxDblClick(Sender: TObject);
var mi:TMenuItem;
acc:TAccesoDirecto;
c:TObject;
begin
  mi := TMenuItem(ListBox.Items.Objects[ListBox.ItemIndex]);
  if mi<>nil then
  begin
    CDSAccesos.Close;
    CDSAccesos.Params.ParamByName('id_usuario').Value:= DMMain_2.UsuarioActivoId;
    CDSAccesos.Params.ParamByName('id').Value        := StrToInt(Trim(copy(AccNombre,5,10)));
    CDSAccesos.Open;
    CDSAccesos.Edit;
    CDSAccesosACCION.Value:=mi.Name;
    CDSAccesos.ApplyUpdates(0);

    c:= FindComponent(AccNombre);
    acc:=(C as TAccesoDirecto);
    if acc<>nil then
    begin
    with acc do
      begin
       Caption    :='';
       Text       := mi.Caption;
       OnDblClick := mi.OnClick;
      end;
    end;
  end;
  Lista.Free;
 // Visible:=False;
  //Sender.Visible:=False;
end;

y en el Edit

Código Delphi [-]

procedure TFMenu.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    Edit1.OnExit(Sender);
end;

procedure TFMenu.Edit1Exit(Sender: TObject);
var c:TObject;
acc:TAccesoDirecto;
begin
  CDSAccesos.Close;
  CDSAccesos.Params.ParamByName('id_usuario').Value:= DMMain_2.UsuarioActivoId;
  CDSAccesos.Params.ParamByName('id').Value        := StrToInt(Trim(copy(AccNombre,5,10)));
  CDSAccesos.Open;
  CDSAccesos.Edit;
  CDSAccesosCAPTION.Value:=EditTemp.Text;
  CDSAccesos.ApplyUpdates(0);

  c:= FindComponent(AccNombre);
  acc:=(C as TAccesoDirecto);
  if acc<>nil then
  begin
  with acc do
    begin
     Caption    := '';
     Text       := EditTemp.Text;
    end;
  end;
  EditTemp.Free;

end;

despues puse otro popMenu asociado al acceso directo



donde los tems son asi:

Código Delphi [-]

procedure TFMenu.BorrarAccClick(Sender: TObject);
var Comp:TComponent;
begin
//  ShowMessage(AccNombre);
  CDSAccesos.Close;
  CDSAccesos.Params.ParamByName('id_usuario').Value:= DMMain_2.UsuarioActivoId;
  CDSAccesos.Params.ParamByName('id').Value        := StrToInt(Trim(copy(AccNombre,5,10)));
  CDSAccesos.Open;
  CDSAccesos.Delete;
  CDSAccesos.ApplyUpdates(0);
  Comp:=FindComponent(AccNombre);
  if (Comp<>nil) then

  FreeAndNil(Comp);
//  Comp.Free
//  Contro
//  TAccesoDirecto(Sender).Name
end;

procedure TFMenu.AsignarAccionClick(Sender: TObject);
var
  i:integer;
  str:string;
procedure GetItems(mi:TMenuItem);
  var
    i:Integer;
  begin
    for i := 0 to (mi.Count - 1) do
      begin
        if Mi.Items[i].Enabled then
          begin
            Str := mi.Items[i].Caption;
            Lista.Items.AddObject(Str, mi.Items[i]);
            // SubItems de este
            GetItems(mi.Items[i]);
          end;
    end;
  end;

begin
  Lista           := TListBox.Create(Self);
  Lista.Top       := 50;
  Lista.Left      := 50;
  Lista.Width     := 350;
  Lista.Height    := 600;
  Lista.Parent    := FMenu;
  Lista.OnDblClick:= ListBoxDblClick;
  Lista.Visible := True;
  for i := 0 to (MenuPrincipal.Items.Count - 1) do
    begin
      if MenuPrincipal.Items[i].Enabled then
        begin
          if (MenuPrincipal.Items[i].Action=Nil) then
            Lista.Font.Style:=[fsBold]
          else
            Lista.Font.Style:=[];


          Str := MenuPrincipal.Items[i].Caption;
          Lista.Items.AddObject(Str, MenuPrincipal.Items[i]);
         // SubItems de este
          GetItems(MenuPrincipal.Items[i]);
        end;
  end;
  ListBox:=Lista;
end;

procedure TFMenu.RenombrarClick(Sender: TObject);
var
comp:TObject;
Acc:TAccesoDirecto;
begin
  Comp:=FindComponent(AccNombre);
  if (Comp<>Nil) then
    begin
      Acc:=(Comp as TAccesoDirecto);
      EditTemp:=TEdit.Create(Acc);
      EditTemp.OnExit    := Edit1.OnExit;
      EditTemp.Top       := Acc.Top+Acc.Height;;
      EditTemp.Left      := Acc.left;
      EditTemp.AutoSize  := True;
      EditTemp.Visible   := True;
      EditTemp.Text      := acc.Caption;// '';
      EditTemp.Parent    := FMenu;
      EditTemp.OnKeyPress:= Edit1.OnKeyPress;
      EditTemp.BringToFront;
      EditTemp.SetFocus;
      //Nombre.SetFocus;
  end;

end;


tambien tengo declarado dos variables globales:

Código Delphi [-]

  public
    { Public declarations }
    MouseDownSpot:TPoint;
    Seleccionado:Boolean;
    AccNombre:String;
    DepositoEnUso:Integer;
    Lista:TListBox;
    EditTemp:TEdit;

lo que me falta hacer es que el user puedacambiar el icono, que aun no se como hacerlo, pero lo basico me anduvo. Veran que en la tabla tengo dos id , uno del usuario logeado, dado que manejo varios usuarios y cada uno tendira sus propios accesos, pero eso si Uds. no lo tiene no lo usen.
Y el tema de hacer los iconos con fondo transparente y el ajuste automatico. Prograne para que el usuario pueda acomodar los iconos donde quiere. Otra cosa que no se aun como solucionar, ya que recien acabo de hacer desùes de 4 dias todo esto, es que cuando se habre una ventana los icono quedan arriba



No se si me olvido de algo cualquier cosa comente..... gracias

Luis Roldan
Mar del Plata
Argentina

Última edición por Casimiro Notevi fecha: 02-07-2012 a las 10:04:59.
Responder Con Cita
  #3  
Antiguo 02-07-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
Generar accesos Directos anexos Vistas

bueno quise anexar las imagenes pero no puedo por el tamaño, si roman me da alguna indicacion se la mando para que se publiquen...

Gracias

Luis Roldan
Responder Con Cita
  #4  
Antiguo 02-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Amigo Chaja, no hacía falta que escribieses 3 mensajes distintos para un tema, puedes escribirlos en un solo tema, como te lo he puesto, o incluso en un solo mensaje, no hay problema por longitud.

Las imágenes acostumbramos a subirlas a sitios como flickr, imageshack, etc. y luego las enlazamos. Si son muy grandes entonces procura reducir la calidad, se ven perfectamente reduciéndolas bastante, en jpg.


Y por cierto, además de Román, hay otros 17 moderadores que te pueden ayudar con el tema de las imágenes
No te lo tomes a mal, lo digo con burla
Responder Con Cita
  #5  
Antiguo 02-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por cierto, gracias por el aporte
Responder Con Cita
  #6  
Antiguo 02-07-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
es que no me dejaba subrlo en uno , me decia que era el texto muy largo......
Responder Con Cita
  #7  
Antiguo 02-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Qué raro, habrá que echar un vistazo a la configuración, a ver si hemos cambiado algo. Gracias por comentarlo
Responder Con Cita
  #8  
Antiguo 02-07-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
Agradecimiento

Se ma habia olvidado, tambien usa parte de codgio de Neftali
http://neftali.clubdelphi.com/?p=87
al cual gracias a su interesada cuestion de dar sin pedir nada a cambio, pude hacer el uso y captura de objetos en la pantalla..
Gracias
Responder Con Cita
  #9  
Antiguo 14-07-2012
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 11
juanlaplata Va por buen camino
Thumbs up

cuando puedas sube imagenes, para los q no imaginan lo increiblke del resultado obtenido.
Gracias, muy buen aporte.
Responder Con Cita
  #10  
Antiguo 14-07-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
Gracias

Juancho...
me alegra saber que de algo sirvio lo que hice.... en estos dias le hice unas pequeñas modificaciones. Por ejemplo el ListBox , lo reemplace por un treeview, para ordenar un poco las opciones.
No subo las imagenes , no por que no quiera si no porque no me permite,no se por que, me da que exedo el limite.
Lo que me falta es ver como hacer transparente el fondo del Icono, y algo que no se por que , los icono siempre me quedan encima de todo....

Luis Roldan
Mar del Plata
Argentina
Responder Con Cita
  #11  
Antiguo 14-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si son un poco grandes (las imágenes), deberás subirla a algún sitio como imageshak, flickr, etc. y enlazarlas.
Responder Con Cita
  #12  
Antiguo 14-07-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
Imagnes





a ver si se pueden ver?????
__________________
Luis A.Roldan (- Mar del Plata , Argentina- Te:472-4801)

Última edición por Casimiro Notevi fecha: 30-08-2012 a las 22:25:07.
Responder Con Cita
  #13  
Antiguo 14-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues no se ven, me parece recordar que había un problema con imageshack, de que tenías que registrarte para poder ver las imágenes enlazadas

Última edición por Casimiro Notevi fecha: 15-07-2012 a las 00:43:37.
Responder Con Cita
  #14  
Antiguo 15-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Amigo, te he borrado el mensaje con tu usuario y clave, no creo que sea una buena idea poner esos datos aquí
Responder Con Cita
  #15  
Antiguo 30-08-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
Hola casimiro...
revisando lo que yo habia posteado... veo que las imagenes se pueden ver... lo arreglastes???


un abrazo
__________________
Luis A.Roldan (- Mar del Plata , Argentina- Te:472-4801)
Responder Con Cita
  #16  
Antiguo 30-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola amigo, ¿que se pueden ver?, a mí no me aparecen
Responder Con Cita
  #17  
Antiguo 30-08-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
bue... debe ser por que yo las subi.... por so las veo.... im sorrryy
__________________
Luis A.Roldan (- Mar del Plata , Argentina- Te:472-4801)
Responder Con Cita
  #18  
Antiguo 30-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces tú sí que las ves...

Habrá que hacer algo, voy a ver...
Responder Con Cita
  #19  
Antiguo 30-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.663
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, a ver lo que duran
Responder Con Cita
  #20  
Antiguo 26-10-2012
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 214
Poder: 14
Chaja Va por buen camino
Consulta

Hola Casimiro:
Te molesto, o si alguien lo sabe, viste el comp. que hice para el acceso directo, codigo que puse al principio, como hago para hacerlo trasnparente??????
gracias
__________________
Luis A.Roldan (- Mar del Plata , Argentina- Te:472-4801)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear accesos directos a un menú cmfab Varios 16 29-10-2012 18:07:20
¿Cómo ejecutar accesos directos? saulcell API de Windows 9 05-11-2010 08:40:36
Diferenciar accesos directos. rauros API de Windows 7 29-09-2008 23:20:08
extraer informacion de accesos directos lnk octalh API de Windows 2 22-03-2008 22:12:22
Creacion de Accesos directos con otros Iconos tango01 Varios 13 13-07-2004 19:21:04


La franja horaria es GMT +2. Ahora son las 01:43:22.


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