Re: webbrowser problem
Få se om jag kan hjälpa dig med dina frågor.
1. Det enklaste sättet att fixa till en Splash screen är att använda sig av en TTimer komponent. Du hittar den under systemfliken. På den så sätter du ett tidsintervall och skriver in din code i onTimer eventet.
2. Antagligen så sparar du undan inställningarna på något sätt så det enklast är nog att du sparar dina inställningar när du stänger Optionsfönstret och sedan skapar en metod (function eller procedure) på huvudformuläret som uppdaterar programmet med de nya inställningarna. Inställningarna läser du från det ställe där du sparat dem.
Vill du bygga vidare på det hela så kan du titta på att skapa en klass som håller reda på dina inställningar.
3. Funktioner för att ändra formen på ett fönster finns inbyggt i Windows API så de funktioner som din polare snackar om är antaligen samma i C++ som i Delphi. Längst så hittar du ett exempel på hur du gör ett fönster transparent. Det är samma functioner som används för att ändra formen på formulär så principen är den samma.
Några av funktionerna som man använder för att ändra fomen är:
CreateRectRgn
CombineRgn
SetWindowRgn
Det är lite för stort område för att ta upp alla funktioner här men kolla i delphis hjälp eller på webben så hittar du mer info.
Här har du några nyttiga länkar:
http://msdn.microsoft.com/, Bra att ha om man letar info angående windows api
https://www.torry.net, En site med många bra exempel och komponenter.
http://info.borland.com/newsgroups/ng_delphi.html, Borlands nyhetsgrupper för Delphi.
Procedure TfrmMain.MakeTransparent;
var
aControl: TControl;
A, Margin, X, Y, CtlX, CtlY: Integer;
begin
Margin := (Width - ClientWidth) Div 2;
FullRgn := CreateRectRgn(0,0,Width,Height);
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn(X,Y,X+ClientWidth,Y+ClientHeight);
CombineRgn(FullRgn,FullRgn,ClientRgn,RGN_DIFF);
For A := 0 to ControlCount - 1 do
begin
aControl := Controls[A];
if (AControl is TWinControl) or (AControl is TGraphicControl) then
With AControl do
begin
if Visible then
begin
CtlX := X + Left;
CtlY := Y + Top;
CtlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height);
CombineRgn(FullRgn, FullRgn, CtlRgn, RGN_OR);
end;
end;
end;
SetWindowRgn(Handle, FullRgn, True);
end;
Procedure TfrmMain.UndoTransparent;
begin
FullRgn := CreateRectRgn(0,0,Width,Height);
CombineRgn(FullRgn, FullRgn, FullRgn, RGN_Copy);
SetWindowRgn(Handle, FullRgn, True);
end;