Código Delphi
[-]
PROCEDURE SetVale(V:boolean);
BEGIN
V:=False;
END;
Por tu bien, declaralo así:
Código Delphi
[-]
PROCEDURE SetVale(Value:boolean);
BEGIN
V:=Value;
END;
Comentar que no le dabas el valor a V, sino que lo ponias a false.
En la librería, V no debería estar en la zona de interface, simplemente porque el usuario de la librería jamás va a acceder a la variable directamente, sino a través de Get y SetValue.
No he hecho la prueba, quizás ni siquiera se exporte esa variable, pero intuitivamente, al verla en la zona de interface, puede parecer que si se exporta. Es decir, deberás declararla en la zona de implementation.
Por otra parte, el error que tienes al usar la libreria es de nombres, en tu programa, no uses V para nada, Si necesitas una variable Boolean, declarala con otro nombre. En realidad, cuando usas la libreria, tienes que olvidarte de como está hecha, y solo prestar atención a GetValue y SetValue. Esa abstracción es indispensable para diseñar la dll correctamente, y también para poderla usar (OOP).
Como usuario de una libreria no tienes por qué saber como se llama esa variable, ni te hace falta.
Código Delphi
[-]
SetValue(checkbox1.checked);
Checkbox2.Checked := GetValue;
Según actives o desactives el check1, se marcará el check2.
saludos