Ñuño y Edson: gracias por el interés.
La cosa avanza,
la barra de scroll ya no aparece. Lo malo es que ahora tampoco permite hacer scroll por código, que es precisamente lo que ya tenía implementado. No tengo prisa así que iré investigando.
No obviemos que las scrollbars , tanto en el navegador web como en las aplicaciones desktop han sido una china en el zapato de los maquetadores desde el principio de los tiempos, porque aunque es la puerta de entrada para un diseño customizado, suelen estar fuertemente implementadas con el sistema operativo (necesitan syncro constante y pasar mensajes, algunas funcionalidades de las aplicaciones se encienden y apagan dependiendo de la presencia o ausencia de la scrollbar, entre otras muchas cosas).
Para remover aquí la receta:
1. Cambié el propietario y grupo del directorio de las fuentes para poder modificarlas, aunque al ser una librería tan compacta (1 unidad el panel), creo que la moveré al directorio del proyecto si finalmente funciona. Toy en Gnu/Linux.
en el directorio de las fuentes: sudo chown -R user:group *
2. Tocar el constructor, no del panel sino de la clase del scroll:
constructor TIpHtmlScrollBar.Create(AControl: TIpHtmlInternalPanel;
AKind: TScrollBarKind);
begin
inherited Create;
FControl := AControl;
FKind := AKind;
FPageIncrement := 80;
FIncrement := FPageIncrement div 10;
FVisible := False; // <-------------[TOCADO]
FUpdateNeeded := True;
end;
3. Forzar la escritura de la variable en este procedimiento.
procedure TIpHtmlScrollBar.SetVisible(Value: Boolean);
begin
//FVisible := Value; // <-------------[Original]
fvisible:=false; // <-------------[Forzado]
FControl.UpdateScrollBars;
end;
* todo esto esta en /componentes/turpopower_ipro/iphtml.pas
Pasos siguientes:
- Plan A: conseguir escroll por código, es el objetivo. (permite liberación total del scroll nativo, o usar una dibujada, que ya la tengo hecha y trabaja perfectamente con otros controles que si permiten esconder el scroll).
- Plan B: ver si el componente AT_FlatControls/scrollbar y FKind: TScrollBarKind (de IPro) son primos cercanos (posible injerto).
- Plan C: meter todo el texto no en un <HTML><BODY> sino en un <IFRAME> y tocar el código fuente del parser de esta etiqueta (será divertido).