Autor Beitrag
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: So 19.02.12 15:27 
heyho, ich bins mal wieder

ich starte mit aus einem programm heraus ein anders, mit dem parameter SW_HIDE
in dem anderen programm (ebenfalls von mir[also kann ich auch dort drin rumschreiben]) läuft eine twebbrowser komponente, wie kann ich in dem webbrowser eine farbe an einer bestimmten pixelposition erkennen? es ist leider nicht möglich den quelltext auszulesen und so an den farbwert zu kommen...

thx :)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 19.02.12 15:45 
Wenn das Formular, auf dem die TWebBrowser Komponente liegt, unsichtbar ist, wirst du da wenig Erfolg haben. Die wird dann nämlich nicht immer überhaupt dargestellt. Dementsprechend kommst du auch nicht unbedingt an die Farbwerte. Von Hardwarebeschleunigung und/oder Flash mal ganz abgesehen.

Ansonsten sollte das ganz normal über Canvas des Formulars gehen (Pixels[x, y] für einzelne oder Scanline für mehrere Pixelwerte).
Ironwulf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Di 21.02.12 13:21 
na gut dacht ich mir schon fast das das nicht so einfach ist, aber fragen kost ja nix ;D
hab das ganze jetz ganz anders gelöst, zwar noch unschöner als die variante gewesen wäre aber macht ja nix, wenns läuft dann läufts ;D
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 21.02.12 14:43 
vielleicht hilft die das
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
uses ActiveX;

procedure WebBrowserScreenShot(const AWebBrowser: TWebBrowser; bmp:TBitMap) ;
var
  viewObject : IViewObject;
  rect       : TRect;

begin
  Assert(Assigned(AWebBrowser.Document));
  AWebBrowser.Document.QueryInterface(IViewObject, viewObject);
  if Assigned(viewObject) then
    try
        rect := Classes.Rect(00, AWebBrowser.Width, AWebBrowser.Height);

        bmp.Height := AWebBrowser.Height;
        bmp.Width  := AWebBrowser.Width;

        viewObject.Draw(DVASPECT_CONTENT, 1nilnil, Application.Handle, bmp.Canvas.Handle, @rect, nilnil0) ;
    finally
      viewObject._Release;
    end;
end;

procedure TForm2.FormDblClick(Sender: TObject);
var
 bmp:TBitMap;
begin
  bmp:=TBitMap.Create;
  try
   Webbrowser1.visible := false;
   WebBrowserScreenShot(Webbrowser1,bmp);
   Image1.picture.bitmap.assign(bmp);
  finally
    bmp.Free;
  end;
end;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS