Bericht 1 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Stefan de Best (Sysop) | Datum | : | 25-05-2005 |
Aan | : | Allen | MsgID | : | 2297.1 |
Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
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)
Bericht 2 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Tony de Jonge (Sysop) | Datum | : | 25-05-2005 |
Aan | : | Stefan de Best (Sysop) | MsgID | : | 2297.2 |
Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
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
Bericht 3 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Michel Uphoff (Sysop) | Datum | : | 25-05-2005 |
Aan | : | Stefan de Best (Sysop) | MsgID | : | 2297.3 |
Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
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
Bericht 4 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Michel Uphoff (Sysop) | Datum | : | 26-05-2005 |
Aan | : | Stefan de Best (Sysop) | MsgID | : | 2297.4 |
Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
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
Bericht 5 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Stefan de Best (Sysop) | Datum | : | 26-05-2005 |
Aan | : | Tony de Jonge (Sysop) | MsgID | : | 2297.5 |
Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
Hoi Tony,
Zie mijn bericht aan Michel.
Stefan
Overzicht van 150 oude en minder bekende zwemslagen
http://tinyurl.com/yuojv[/]
Bericht 6 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Stefan de Best (Sysop) | Datum | : | 26-05-2005 |
Aan | : | Michel Uphoff (Sysop) | MsgID | : | 2297.6 |
Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
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 :
--------------8<---------------8<--------------8<--------------
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.
--------------8<---------------8<--------------8<--------------
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) | Bijlagen : ![](http://acx.prospero.com/n/docs/docDownload.aspx?webtag=ws-nlcomputer&guid=8EE0CDBB-24C3-4DE5-BCF0-C88208CE5F39&height=64) CS_AvatarMU.gif 13KB |
Bericht 7 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Stefan de Best (Sysop) | Datum | : | 26-05-2005 | Aan | : | Michel Uphoff (Sysop) | MsgID | : | 2297.7 | Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
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[/] |
Bericht 8 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Michel Uphoff (Sysop) | Datum | : | 26-05-2005 |
Aan | : | Stefan de Best (Sysop) | MsgID | : | 2297.8 |
Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
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?
![](http://acx.prospero.com/dir-img/ws-nlcomputer/public/wink)
Programmeren is wel leuk hè? Er gaat alleen zo verrekte veel tijd in zitten.
Michel Uphoff (Sysop)Homepagina
Bericht 9 van 9NL Computer Forum ~ SQL & Programmeren Van | : | Stefan de Best (Sysop) | Datum | : | 28-05-2005 |
Aan | : | Michel Uphoff (Sysop) | MsgID | : | 2297.9 |
Onderwerp | : | TWebBrowser - Fit to Page | Forum | : | ws-nlcomputer |
Hoi Michel,
>> Maar what the heck ben jij eigenlijk aan het bouwen?
>> Een alternatieve CSreader? ![](http://acx.prospero.com/dir-img/ws-nlcomputer/public/wink)
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[/]