AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Screenshot verschicken
Thema durchsuchen
Ansicht
Themen-Optionen

Screenshot verschicken

Ein Thema von Penguin · begonnen am 11. Apr 2010 · letzter Beitrag vom 12. Apr 2010
Antwort Antwort
Seite 1 von 2  1 2      
Penguin

Registriert seit: 11. Apr 2010
5 Beiträge
 
Delphi 2010 Enterprise
 
#1

Screenshot verschicken

  Alt 11. Apr 2010, 19:32
Also ich habe das Problem, das wenn ich einen Screenshot gemacht habe und diesen zu meinem Client schicke kann ich diesen nicht einbinden.
Da ich mit dem verschicken ein paar probleme hatte ist der code teilweise aus nen Beispiel genommen was ich im netz gefunden habe.

Delphi-Quellcode:
procedure Tfm_main.cs_BinaryRead(Sender: TObject; Socket: TCustomWinSocket);
var
  s, sl: string;
begin
  s:= Socket.ReceiveText;
  // If we're not in recieve mode:
  if not Reciving then
  begin
    // Now we need to get the length of the data stream.
    SetLength(sl, StrLen(PChar(s))+1); // +1 for the null terminator
    StrLCopy(@sl[1], PChar(s), Length(sl)-1);
    DataSize:= StrToInt(sl);
    Data:= TMemoryStream.Create;
    // Delete the size information from the data.
    Delete(s, 1, Length(sl));
    Reciving:= true;
  end;
  // Store the data to the file, until we've received all the data.
  try
    Data.Write(s[1], length(s));
    if Data.Size = DataSize then
    begin
      Data.Position:= 0;
      fm_image.Visible := True;
      fm_image.img_screen.Picture.Bitmap.LoadFromStream(Data);
      Data.Free;
      Reciving:= false;
      Socket.Close;
    end;
  except
    Data.Free;
  end;
end;

Die datei kommt komplett an aber wenn ich den Stream in die Bitmap laden will kommt der Fehler:

Im Projekt Client.exe ist eine Exception der Klasse EInvalidGraphic mit derm Meldung 'Bitmap ist ungültig' aufgetreten.
Ich hoffe mir kann einer helfen.




MFG
Penguin
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Screenshot verschicken

  Alt 11. Apr 2010, 20:15
So wie ich das sehe, verwendest du ReceiveText für denen Datenstrom, da wirst du Schwierigkeiten mit dem Zeichen 0 erhalten. Benutze vollständig einen Stream für binäre Daten.
  Mit Zitat antworten Zitat
Penguin

Registriert seit: 11. Apr 2010
5 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Screenshot verschicken

  Alt 11. Apr 2010, 20:57
mhh es gibt aber kein Socket.recievestream kannst du vllt etwas genauer werden ??

mfg
Penguin
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Screenshot verschicken

  Alt 11. Apr 2010, 21:06
Aber .ReceiveBuf()
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Screenshot verschicken

  Alt 11. Apr 2010, 23:08
Hier mal ein Beispiel...
Angehängte Dateien
Dateityp: zip clientserverfiletransportprogressbar_237.zip (4,6 KB, 18x aufgerufen)
  Mit Zitat antworten Zitat
Penguin

Registriert seit: 11. Apr 2010
5 Beiträge
 
Delphi 2010 Enterprise
 
#6

Re: Screenshot verschicken

  Alt 12. Apr 2010, 10:06
thx für das project nur leider bekommt bei mir der client keine Datei vom Server.Das klappt also auch nicht.

MFG
Penguin
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#7

Re: Screenshot verschicken

  Alt 12. Apr 2010, 12:00
Also bei mir funktioniert der Code von Omata!
@Penguin, hast du Server und Client auf dem gleichen Rechner gestartet?
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Penguin

Registriert seit: 11. Apr 2010
5 Beiträge
 
Delphi 2010 Enterprise
 
#8

Re: Screenshot verschicken

  Alt 12. Apr 2010, 12:28
jo läuft mit localhost(also 127.0.0.1).Ich bekommte auch die Status meldung das beide connected sind.
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#9

Re: Screenshot verschicken

  Alt 12. Apr 2010, 13:00
Unter welchem OS und mit welchen Rechten hast du denn getestet? Versuche mal eine andere Datei zu verschieben.
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Screenshot verschicken

  Alt 12. Apr 2010, 14:07
Ich hab mir nur den Client von Omata angeschaut und soweit ich das überblickt habe macht dieser (wie so viele andere) einen entscheidenten Fehler. Es wird davon ausgegangen das im OnClientRead etc. die Buffer genau so ankommen wie sie abgeschickt werden. Tatsächlich ist es aber so das 2 kurz hintereinander geschickte Buffer in einem Ereignis auf der anderen Seite ankommen können. Ebenso kann es passieren das große Daten in mehreren Stücken nacheinander ankommen, das Ereignis also mehrfach aufgerufen wird.

[Edit]Gleichen Fehler scheint auch Penguin zu machen.[/Edit]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz