FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
error : has no parent windows
Tengo una unidad y un formulario principal.
En la unidad tengo el siguiente codigo : function TNetDrive.FreeDriveName: string; var l : TStringList; d : TDriveComboBox; t : char; i : integer; begin l:=TStringList.Create; d:=TDriveComboBox.Create(self); d.Parent:=Application.MainForm; d.Visible:=false; l.Assign(d.Items); d.Free; ...... El error lo tengo en la linea d.Parent:=Application.MainForm; ya que si esa función me la pongo en el form principal y pongo d.Parent:=self, la cosa funciona perfectamente. ¿que está pasando ? |
#2
|
|||
|
|||
Si no piensas mostrar el TDriveComboBox, no veo la necesidad de asignarle el valor a la propiedad Parent.
Otra cosa, para obtener la lista de los drivers de una PC, mejor checa el código fuente del TDriveComboBox, el método se llama TDriveComboBox.BuildList. Saludos... |
#3
|
|||
|
|||
si no pongo el parent me da el error que os puse.
Lo que deseo es cargar en un TStringList las unidades que tengo (a:, c:, ...) La idea que me distes de usar BuildList, la verdad es que ando un poco perdido y no sé como utilizarlo. Seguiré buscando ...Gracias por tu aportación. |
#4
|
|||
|
|||
Es solo hacerle algunas modificaciones al código para adaptarlo a lo que necesitas, por ejemplo:
Así solo le pasas el StringList que quieres llenar con los drivers... Saludos... |
#5
|
|||
|
|||
ajá, entiendo lo que me quieres decir. Me pongo en ello y ya os cuento. Gracias.
|
#6
|
|||
|
|||
La modifique tal y como me dijistes a mis necesidades y funciona perfectamente. Es lo que deseaba. Muchiisimas gracias.
procedure TNetDrive.GetDriversList(StrList: TStringList); var DriveNum: Integer; DriveChar: Char; DriveBits: set of 0..25; begin StrList.Clear; Integer(DriveBits) := GetLogicalDrives; for DriveNum := 0 to 25 do begin if not (DriveNum in DriveBits) then Continue; DriveChar := Char(DriveNum + Ord('a')); StrList.Add(DriveChar + ':'); end end; |
|
|
|