Hallo

Welkom, Gast. Alsjeblieft inloggen of registreren.

Recent

493 gasten, 0 leden

Welkom, Gast. Alsjeblieft inloggen of registreren.

27 april 2024, 22:34:22

Login met gebruikersnaam, wachtwoord en sessielengte

Nieuws

Welkom op het vernieuwde NL Computer Forum!

Auteur Topic: TWebBrowser - Fit to Page  (gelezen 10661 keer)

0 leden en 1 gast bekijken dit topic.

Offline Stefan de Best
  • Wizop
  • *****
  • Berichten: 601
  • Geslacht: Man
    • Historisch-didactisch overzicht van 150 oude en minder bekende zwemslagen
TWebBrowser - Fit to Page
« Gepost op: 30 oktober 2009, 18:40:54 »
Thread #2297   TWebBrowser - Fit to Page

1 5/25/05   Van: Stefan de Best (Sysop)  Aan: All
 
Beste mensen,

In een Delphi-programma die ik aan het schrijven ben heb ik een TWebBrowser-component staan die een afbeelding rechtstreeks van het Internet haalt en vervolgens weergeeft d.m.v. de methode Navigate().
Nu meen ik me te herinneren dat IE, als een afbeelding groter is dan het venster waarin het wordt weergegeven, deze automatisch verkleind wordt. Nu heb ik gemerkt dat het TWebBrowser-component dit automatisch verkleinen dus niet doet. Ik heb daarom het vermoeden dat ik nog wat extra code moet schrijven om dit te bewerkstelligen.
Ik heb al gekeken naar de diverse methoden en eigenschappen die aan deze component zijn verbonden, maar kom er eerlijk gezegd niet uit.
Iemand die mij in de juiste richting kan sturen?

Stefan

    Overzicht van 150 oude en minder bekende zwemslagen
    http://tinyurl.com/yuojv

 


--------------------------------------------------------------------------------
Gewijzigd 25/05/2005 15:29 ET CET door Stefan de Best (Sysop) 
 
2 5/25/05   Van: Tony de Jonge (Sysop)  Aan: Stefan de Best (Sysop)
 
  Hoi Stefan,

>> Nu meen ik me te herinneren dat IE, als een afbeelding groter is dan het venster waarin het wordt weergegeven, deze automatisch verkleind wordt. <<
Ehh, niet altijd. Ik denk dat het iest te maken hefet met IE6 en etc. Ik was vandaag bij een klant waar in elk geval GEEN IE6 staat (ik denk IE5.5, maar kan ook nog 5.0 zijn) waar dat NIET automatisch gebeurde, dus helemaal standaard is het niet.
Op onze eigen website waar een heleboel screendumps in 'poster formaat' staan resized IE6 ook niet, die poosters zijn overigesn JPG bestanden, mogelijk zit in die richting nog een oplossing van de vraag?
TdJ
 
 
3 5/25/05   Van: Michel Uphoff (Sysop)  Aan: Stefan de Best (Sysop)
 
  Hoi Stefan,

Net even bij mij gekeken, en alhoewel IE 6 keurig resized (en via het bekende knoppie de mogelijkheid tot ware grootte/passend geeft), doet ook mijn webbrowser control dat eveneens niet. Bij de avatar's resize ik ook, maar op een vrij alternatieve manier:

Function GetAvatar()
Kill Pad & "/Avatar.jpg"
Dim AvatUrl, AvatFilename As String
AvatUrl = "http://acx.prospero.com/dir-bbcard/348/" & SendUID & ".icon"
AvatFilename = Pad & "/Avatar.jpg"
Call URLDownloadToFile(0&, AvatUrl, AvatFilename, 0, 0)
Wait (1)
'resizen van avatar naar Picture1 afmetingen
Picture1.Picture = LoadPicture(Pad & "/Avatar.jpg")
    Picture1.ScaleMode = 3
    Picture1.AutoRedraw = True
    Picture1.PaintPicture Picture1.Picture, _
        0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, _
        0, 0, _
        Picture1.Picture.Width / 26.46, _
        Picture1.Picture.Height / 26.46
    Picture1.Picture = Picture1.Image
End Function

M.a.w. Er bestaat al een (lege) picture1, daarin wordt de avatar geplaatst en deze wordt vervolgens auto resized ter grootte van picture 1 (en pas in een ander deel van het programma gaat visible op true). Zo heb ik niets te maken met de feitelijke afmeting van de avatar (er zitten heel kleine maar ook heel grote tussen), er wordt resized naar een vast formaat.
Wellicht kan je ook zoiets doen.
Of je zal on the fly de afmetingen van de afbeeldingen moeten ophalen, en vervolgens de afbeelding (indien te groot) resizen naar de maximale omvang van het geldende venster, en daarna visible maken.

--------------------------------------------------------------------------------
Michel Uphoff (Sysop)
Homepagina
 
 
4 5/26/05   Van: Michel Uphoff (Sysop)  Aan: Stefan de Best (Sysop)
 
  Hoi Stefan,
>> Nu meen ik me te herinneren dat IE, als een afbeelding groter is dan het venster waarin het wordt weergegeven, deze automatisch verkleind wordt. <<
Je had toch wel bij Internetopties, geavanceerd, hoofdstukje multimedia "Grootte van afbeeldingen automatisch aanpassen" aanstaan?
Zo ja, dan vertoont jouw TWebbrowser hetzelfde gedrag als de VB6 Inet control.

--------------------------------------------------------------------------------
Michel Uphoff (Sysop)
Homepagina
 
 
5 5/26/05   Van: Stefan de Best (Sysop)  Aan: Tony de Jonge (Sysop)
 
  Hoi Tony,
Zie mijn bericht aan Michel.

Stefan

    Overzicht van 150 oude en minder bekende zwemslagen
    http://tinyurl.com/yuojv

 
 
 
6 5/26/05   Van: Stefan de Best (Sysop)  Aan: Michel Uphoff (Sysop)
 
  Hoi Michel/Tony,

Geinig....laat ik nou net met de avatar bezig zijn! :-) Het eerste gedeelte van jouw code begrijp ik helemaal, alleen het resize-gedeelte begrijp ik niet helemaal omdat die code me verder niets zegt.
Ik ben echter nog even verder op Internet gaan zoeken en kwam op een site terecht waar een proc. beschreven staat waarmee je on-the-fly HTML-code kan toevoegen. Zie hieronder de aangepaste versie zoals ik die nu heb :

uses MSHTML;
procedure TForm1.ForumComboBox1Change(Sender: TObject);
begin
  AvatarWebBrowser.Navigate('about:blank');
end;

procedure TForm1.AvatarWebBrowserDocumentComplete(Sender: TObject;  const pDisp: IDispatch; var URL: OleVariant);var  WebDoc: HTMLDocument;  WebBody: HTMLBody;

begin
  if pDisp = AvatarWebBrowser.Application then begin // Beginwaarden instellen
    AvatarWebBrowser.OleObject.Document.Body.Style.overflowX := 'hidden';
    AvatarWebBrowser.OleObject.Document.Body.Style.overflowY := 'hidden';
    WebDoc := AvatarWebBrowser.Document as HTMLDocument;
    WebBody := WebDoc.body as HTMLBody;
    WebBody.leftMargin := 0;
    WebBody.topMargin := 0;
    WebBody.bottomMargin := 0;
    WebBody.rightMargin := 0;
    WebBody.insertAdjacentHTML('AfterBegin','<HTML><BODY><TABLE Width=100% CellPadding=0 CellSpacing=0 Border=0>'+
        '<TR><TD><IMG Width=100 SRC=http://acx.prospero.com/dir-bbcard/348/'+ FLfromuserId + '.icon '+
        'Width=100%></TD></TR></TABLE></BODY></HTML>');
       end;
   end;
end.

Deze code, samen met de beginwaarden zorgen ervoor dat de avatar volledig in het TWebBrowser-component wordt weergegeven (het TWebBrowser-component heet bij mij overigens AvatarWebBrowser). Voorwaarde is wel dat MSHTML in de uses-clause wordt toegevoegd.
Nu moet ik alleen nog wat andere code aanpassen om e.e.a. m.b.t. de avatar weer te laten werken, maar daar kom ik wel uit denk ik.
BTW, ook jouw, vrij grote avatar, wordt nu goed weergegeven (zie attachment).

Stefan

    Overzicht van 150 oude en minder bekende zwemslagen
    http://tinyurl.com/yuojv

 


--------------------------------------------------------------------------------
Gewijzigd 26/05/2005 15:21 ET CET door Stefan de Best (Sysop) 

7 5/26/05   Van: Stefan de Best (Sysop)  Aan: Michel Uphoff (Sysop)
 
  Hoi Michel,
BTW,
>> Je had toch wel bij Internetopties, geavanceerd, hoofdstukje multimedia "Grootte van afbeeldingen automatisch aanpassen" aanstaan? <<
Ja, staat aan.

Stefan

    Overzicht van 150 oude en minder bekende zwemslagen
    http://tinyurl.com/yuojv

 
 
 
8 5/26/05   Van: Michel Uphoff (Sysop)  Aan: Stefan de Best (Sysop)
 
  Hoi Stefan,
Grappig dat jij met Avatars bezig bent, en als ik zo de code lees krijg ik een Dèja Vu. Wat lijkt dat op de code die in CSreader voorkomt zeg. Had nooit gedacht dat dat Delphi zo zou lijken op VB.
Inderdaad, ook in CSreader worden html-pagina's on-the-fly omgekat tot nieuwe- en oom dat gaat natuurlijk met zaken als eerst browsen naar about:blank en vervolgens stoeien met de inhoud van Document.Body, deze ombouwen/strippen en eigen html-code injecteren.
Maar what the heck ben jij eigenlijk aan het bouwen? Een alternatieve CSreader?
Programmeren is wel leuk hè? Er gaat alleen zo verrekte veel tijd in zitten.

--------------------------------------------------------------------------------

Michel Uphoff (Sysop)
Homepagina
 
 
9 5/28/05   Van: Stefan de Best (Sysop)  Aan: Michel Uphoff (Sysop)
 
  Hoi Michel,
>> Maar what the heck ben jij eigenlijk aan het bouwen?
>> Een alternatieve CSreader?
Ik zou niet durven! Nee, gewoon een beetje aan het 'spielen'. ;-)
>> Programmeren is wel leuk hè?
>> Er gaat alleen zo verrekte veel tijd in zitten.
Nou! Maar in principe zou dat steeds beter moeten gaan naarmate je meer ervaring krijgt.
 

Stefan

    Overzicht van 150 oude en minder bekende zwemslagen
    http://tinyurl.com/yuojv

 
 
 
Historisch-didactisch overzicht van 150 oude en minder bekende zwemslagen
     http://www.zwemslagen.nl