Hola de nuevo. Aunque no posteo mucho si que entro casi a diario al foro para resolver mis dudas.
En esta ocasion resubo este hilo (bastante antiguo por lo que veo, pero lo prefiero a crear otro nuevo, razones obvias), porque la duda que tengo va en la linea. Tenia en un primer momento la misma duda que tenia esocrates, la de como crear un tabsheet y dentro de este una stringgrid en tiempo de ejecucion y lo dicho, gracias a la ayuda del propio Delphi y de este hilo lo he logrado.
Pero a raiz de esto, tengo otra duda. Y os explico un poco de como va el programa en el que estoy currando ahora para que me podais ayudar mejor.
Yo abro un/os fichero/s y recojo en un primer momento ciertos datos que necesito.
Esta info es el nombre de un sitio, su matricula y el dia de "autos" (como en cualquier producto: tipo, referencia y dia).
Si este sitio no tiene pestaña propia, debo crear una (en tiempo de ejecucion) con su propio stringgrid asociado, y de existir debo pasar la hoja de ese sitio y por ende su stringgrid. Una vez hecho esto relleno la grid con los datos del fichero abierto.
Yo consigo hacerlo todo salvo pasar el stringgrid asociado a la hoja con el sitio.
Os paso algo de codigo para que se entienda "mejor":
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var tabs : ttabsheet;
stri : tstringgrid; begin
memo1.Lines.Clear; opendialog1.Execute;
memo1.Lines :=opendialog1.Files;
for y:=0 to memo1.Lines.Count-1 do begin
memo2.Lines.LoadFromFile(memo1.Lines[y]);
compara:=0;
for z:=0 to pagecontrol1.PageCount-1 do begin
if comparestr(trim(PageControl1.Pages[z].Caption), trim(trim(centro)+trim(matricula)))=0
then begin
compara:=z+1; end;
end;
if compara - 1 = 0 then begin
tabs := TTabSheet.Create(PageControl1);
tabs.PageControl := PageControl1;
tabs.Name := 'TabSheet'+inttostr(pagecontrol1.PageCount+1);
memo3.Lines.Add(tabs.name);
tabs.Caption := trim(centro)+trim(matricula);
stri := tstringgrid.Create(self);
stri.Parent := tabs;
stri.Name := 'StringGrid'+inttostr(pagecontrol1.PageCount+1);
stri.Visible:=true;
stri.ColCount:=8;
stri.FixedCols:=0;
stri.RowCount:=3;
stri.FixedRows:=2;
stri.Width:=529;
stri.Height:=601;
stringcabecera(stri);
end
else begin tabs := PageControl1.Pages[z];
stri := end;
pagecontrol1.ActivePage:=tabs;
end;
end;
Espero que me podais ayudar, porque no se ni por donde empezar.
Perdon por el tronchazo que os acabo de soltar y gracias de antemano!!