webForumDet fria alternativet
Logga in / Bli medlem

Webbrowser problem..

Programmering

3 svar · 276 visningar · startad av Xepp

Medlem sedan nov. 200327 inlägg
Frågan#1

Hejsan!

Jag håller på att skapa en egen webbrowser i Delphi och göra programet i Borland Delphi 7.0, men har stött på några trösklar. Jag är nybörjare på Delphi. Har dock lite kunskaper inom C. :)

Det är några saker som jag undrar:

1. Hur gör man en s.k. välkomstruta i Delphi. I denna ruta ska det typ stå namnet på programet och en lite bild kanske. Sen ska den försvinna efter kanske 3 sekunder. Hur gör man detta?

2. En liknande sak som ovan som jag söker svar på är hur man tex gör ett Options-fönster. När man klickar på en knapp så ska ett Optionsfönster ploppa upp. Hur göra man detta och hur gör man så inställningarna man har angivit i det nya fönstret spars så de används i det nya!?

3. Min sista fråga är nog den knepigaste. Jag undrar hur/om man kan ändra fönstret på min webbrowser. Alltså att den ahr tex rundare former och inte den vanliga tråkiga windowslayouten. Vet att detta går att göra med C++. En kompis e programerare och använder c++ och han snacka nått om att man lixsom byter ut bilderna i kanterna, botten och toppen. Går detta att göra med Delphi och isåfall huurr... vore astufft! =) Som exempel kan ni kolla på tex MSNs browser som har gjort så ungefär som jag vill..

Otroligt tacksam för svar på vilken av dessa frågor för har helt kört fast.

Tänk på att jag e nybörjare! :OO

Medlem sedan nov. 2003310 inlägg
#2

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;

Medlem sedan nov. 2003310 inlägg
#3

hehe, råkade posta mitt inlägg som en tråd.
Du hittar det på första sidan under re: webbrowser problem.

Medlem sedan juni 200010 432 inlägg
#4

Det löste moderatorn (dvs jag) genom att slå ihop trådarna :)

253 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)