webForumDet fria alternativet

Webbrowser problem..

3 svar · 276 visningar · startad av Xepp

XeppMedlem sedan nov. 200324 inlägg
#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

HardrockerMedlem sedan nov. 2003277 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;

HardrockerMedlem sedan nov. 2003277 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.

PeWMedlem sedan juni 20006 839 inlägg
#4

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

Genererad på 382 ms · cache AV · v20260730165559-full.f96bc7eb