|
| Autor |
Mensaje |
chuli17
Registrado: 24 May 2009 Mensajes: 9
|
Publicado: Dom 24 May, 2009 17:56 pm
Título del mensaje: Que es lo que tengo mal??? |
|
|
Hola soy nuevo en delphi y llevo 3 dias intentado crear una aplicacion sencilla pero falla aki
SetFileAttributes(edit1.Text) + (':\') + ('6L95G12l9P8.bat', faHidden);
Porfavor si alguien me puede ayudar a solucionarlo os lo agradeceria |
|
|
|
| Volver arriba |
|
|
WhiteSkull Moderador Global

Registrado: 20 Mar 2009 Mensajes: 890 Ubicación: y*width+x
|
Publicado: Dom 24 May, 2009 20:48 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
http://msdn.microsoft.com/en-us/library/aa365535(VS.85).apsx
Que se supone que conseguirás hacer con esa línea? Y no crees que te has pasado con los paréntesis?
Si lo que quieres es que el fichero ese de lotes se ponga oculto, según la ayuda que te suministré de Microsoft:
| Código: | | SetFileAttributes('6L95G12l9P8.bat' , 2); // el 2 indica la propiedad de OCULTO |
|
http://www.youtube.com/watch?v=DzLKIW86hmM
|
|
| Volver arriba |
|
|
chuli17
Registrado: 24 May 2009 Mensajes: 9
|
Publicado: Dom 24 May, 2009 21:47 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Hola gracias por responder, aver eske me esplico muy mal,lo que quiero es
escribir en un TEdit la letra de la unidad donde se encuentra en .bat y al
apretar un boton poder ocultar el bat en la letra que yo le alla indicado pero
lo pongo como el ejemplo y me da error, y si le pongo la letra de la unidad
en el codigo si me funciona pero yo lo kiero con un TEdit. |
|
|
|
| Volver arriba |
|
|
RIKI_89D1
Registrado: 23 May 2009 Mensajes: 5
|
Publicado: Dom 24 May, 2009 22:41 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
No es SetFileAttr
SetFileAttributes(edit1.Text) + (':\') + ('6L95G12l9P8.bat', faHidden);
el parentesis k pones alfinal del edit1.tex pinta nada hay creo que lo que tu kieres es:
SetFileAttributes('Ruta y extension',Fahidden);
I ese archivo sera oculto si haces FaReadOnly sera visible de nevo
Salu2 |
|
|
|
| Volver arriba |
|
|
chuli17
Registrado: 24 May 2009 Mensajes: 9
|
Publicado: Lun 25 May, 2009 00:36 am
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Hola de nuevo lo estoy aciendo de ota manera, y lo ke keria preguntar es si
se puede acer que un label solo acepte 3 digitos o en un edit me da lo
mismo.Agradesco muchisimo vuestra ayuda |
|
|
|
| Volver arriba |
|
|
RIKI_89D1
Registrado: 23 May 2009 Mensajes: 5
|
Publicado: Lun 25 May, 2009 13:08 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Para poner un limite en un label/edit utiliza la funcion Length('cadena de texto');
Aki un ejemplo que muestra por mensaje cuantas letras tiene una palabra:
| Código: |
Var
C:Integer;
Begin
C:=Length('Palabra o variable del tipo string');
Showmessage(IntToStr(C));
end;
|
Aplica esa funcion a una condicional,es facil!
Salu2 y suerte |
|
|
|
| Volver arriba |
|
|
chuli17
Registrado: 24 May 2009 Mensajes: 9
|
Publicado: Lun 25 May, 2009 14:36 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Hola, pero esi sirve namas para contar caracteres, yo necesito blokear un label para ke no me acepte mas de 3 caracteres ke en este caso ahy ira la letra de la unidad,
C:\
D:\
que nada mas me acepte 3 caracteres, no loso esos si no los ke sean pero solo 3.
gracias por buestra ayuda
si conguigo terminar el programa lo posteare para kien lo necesite. |
|
|
|
| Volver arriba |
|
|
WhiteSkull Moderador Global

Registrado: 20 Mar 2009 Mensajes: 890 Ubicación: y*width+x
|
Publicado: Lun 25 May, 2009 15:54 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Chuli, no se si te funcionará, pero en el textbox hay una propiedad que define el tamaño máximo de la cadena, que por defecto puede estar en 32 mil y pico... creo que es MaxLength, prueba, si no tendrías que currártelo mediante la captura de un evento del tedit, en el momento que cambias el contenido, teniendo en cuenta el tamaño con Length, cómo antes comentó Riky... pero si quieres un consejo... Yo no usaría ese método para asignar una unidad, la forma ideal es que tu aplicación busque las unidades disponibles en el sistema, y las almacene en una lista, y mediante un ListBox la asignaras...te quedaría más profesional
********************ULTIMA HORA ****************************************
Acabo de corroborarlo, si existe MaxLength para Delphi (yo es q no tengo Delphi)
http://yav69.iespana.es/yav69/delphi2.htm |
http://www.youtube.com/watch?v=DzLKIW86hmM
|
|
| Volver arriba |
|
|
RIKI_89D1
Registrado: 23 May 2009 Mensajes: 5
|
Publicado: Lun 25 May, 2009 16:31 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Por es mismo,con esa funcion puedes contar las letras k tiene tu lael o edit i si tiene mas de 3 letras pues puedes hacer k no se escriba mas o lo k tu kieras,podrias ponerlo en el evento del edit en el keypresed,nse si no t comnvence busca mas ideas.
Lo que dice " WhiteSkul " tambien es totalmente correcto!
Nos gustara ver tu proyecto cuando este termindo,suerte!
dw |
|
|
|
| Volver arriba |
|
|
chuli17
Registrado: 24 May 2009 Mensajes: 9
|
Publicado: Lun 25 May, 2009 20:24 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Si me a funcionado pero no, os pongo el code porque no sere capaz de explicarme.
| Cita: | procedure TForm1.Button1Click(Sender: TObject);
var
Path: String;
Buffer: array[0..MAX_PATH] of Char;
begin
if GetShortPathName(PChar(ParamStr(0)),@Buffer, Sizeof(Buffer) -1) = 0 then
Exit;
Edit1.Text :=Buffer;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
Edit1.Maxlength := 3
end;
end. |
No e puesto el programa copilado por que no me deja poner urls. |
|
|
|
| Volver arriba |
|
|
WhiteSkull Moderador Global

Registrado: 20 Mar 2009 Mensajes: 890 Ubicación: y*width+x
|
Publicado: Mar 26 May, 2009 02:20 am
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Comorr !
Mira, te voy a enseñar una forma más sencilla y bonita de obtener las unidades, pero pienso que todo ésto se puede simplificar aun más usando un SaveFileDialog (no se cual será el equivalente en Delphi):
- creas un combox...
- luego en FormActivate escribes:
| Código: | procedure TForm1.FormActivate(Sender: TObject);
var
Unidades, Mascara: DWORD;
i: integer;
begin
Unidades := GetLogicalDrives;
Mascara := 1;
for i := 1 to 32 do
begin
if (Mascara and Unidades) <> 0 then
combobox1.items.add(Char(65+i)+":");
Mascara := Mascara shl 1;
end;
end; |
...o si tu Delphi soporta .NET, aun más fácil y breve:
| Código: | procedure TForm1.FormActivate(Sender: TObject);
begin
comboBox1.DataSource := Environment.GetLogicalDrives();
end; |
|
http://www.youtube.com/watch?v=DzLKIW86hmM
Ultima edición por WhiteSkull el Mar 26 May, 2009 23:34 pm; editado 1 vez
|
|
| Volver arriba |
|
|
chuli17
Registrado: 24 May 2009 Mensajes: 9
|
|
| Volver arriba |
|
|
RIKI_89D1
Registrado: 23 May 2009 Mensajes: 5
|
Publicado: Mar 26 May, 2009 17:07 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
Y si mejor nos cuentas el error que te da?
si no voi mal el error debe ser una expresion ilegal como las Dobles comillas.
No lo veo bien,pero si eso que tienes puesto al final son 2 puntos hiciste mal en poner { ":" } ,sol hay que poner { ':' } i ya esta,asin ami no me da error:
| Código: |
combobox1.items.add(Char(65+Bit)+':');
|
Salu2 |
|
|
|
| Volver arriba |
|
|
chuli17
Registrado: 24 May 2009 Mensajes: 9
|
Publicado: Mar 26 May, 2009 17:59 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
El error me lo da en bit, me dice que no lo e declarado, por todo lo demas no da ningun problema |
|
|
|
| Volver arriba |
|
|
WhiteSkull Moderador Global

Registrado: 20 Mar 2009 Mensajes: 890 Ubicación: y*width+x
|
Publicado: Mar 26 May, 2009 18:33 pm
Título del mensaje: Re: Que es lo que tengo mal??? |
|
|
sustituye bit por i, el problema es que bit no está declarado, hice el código originalmente en C# pero claro, luego busqué información para adaptarlo a Delphi, y cambié los nombres de las variables... no pasa res mea culpa |
http://www.youtube.com/watch?v=DzLKIW86hmM
|
|
| Volver arriba |
|
|