AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Fehlermeldung beim mehrfachen versenden von Bildern
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung beim mehrfachen versenden von Bildern

Ein Thema von Masteric · begonnen am 1. Feb 2008 · letzter Beitrag vom 2. Feb 2008
Antwort Antwort
Masteric

Registriert seit: 1. Aug 2007
Ort: Melsungen
155 Beiträge
 
Delphi 7 Professional
 
#1

Fehlermeldung beim mehrfachen versenden von Bildern

  Alt 1. Feb 2008, 20:43
Hi, ich habe das mit dem Bilder versenden mit den TSockets aufgegeben und mir die Variante mit Indys angeschaut, was sehr viel einfacher ausschaut und auch funktioniert.

Aber jetzt habe ich ein anderes Problem, das ClientProgramm gibt wenn ich nochein bild versende, immer eine Fehlermeldung....
obwohl das neue bild ankommt....

Hier der Source zum senden:
Delphi-Quellcode:
Procedure TForm1.Screen;
Var BILD:TFilestream; Bmp: TBitmap; Jpg: TJpegImage;
begin
Bmp:=TBitmap.Create;
Jpg:=TJpegImage.Create;
bmp:=Image1.Picture.Bitmap;
  Jpg.CompressionQuality:=80;
  Jpg.Assign(Bmp);
  jpg.SaveToFile(ExtractFilePath(Application.ExeName)+'temp.jpg');
With Client do
Begin
  BILD:=TFileStream.Create(ExtractFilePath(Application.ExeName)+'temp.jpg', fmOpenRead or fmShareDenyWrite);
  with Client do
  begin
  try
  OpenWriteBuffer;
  try
   WriteStream(BILD, true, true, 0);
   CloseWriteBuffer;
      except
        CancelWriteBuffer;
        raise;
      end;
    finally
      BILD.Free;
    end;
end;
end;
jpg.Free;
bmp.Free;
end;
Es kommt immer die Selbe Fehlermeldung in verschiedenen Abständen.
Ich habe einen Screenshot der Fehlermeldung unten gepostet,
auch eine aus dem Debugger von Delphi.

hoffe ihr könnt mir helfen


Gruß Masteric
Miniaturansicht angehängter Grafiken
delphi_debugger_info_213.jpg   windows_fehler_meldung_601.jpg  
"Programmieren ist eine der universellsten, allübergreifendsten und höchsten von Menschen erreichten Formen der Kreativität."
Nur weil Gott die Welt in 6 Tagen erschaffen hat, heisst das nicht, dass Informatiker alles in 6 Tagen programmieren können.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Fehlermeldung beim mehrfachen versenden von Bildern

  Alt 2. Feb 2008, 08:06
Moin,

vielleicht funktioniert es besser, wenn du es so versuchst:

Delphi-Quellcode:
procedure TDemoForm.Test;
var
  s: TStream;
  bmp: TBitmap;
  jpg: TJpegImage;
begin
  s := TMemoryStream.Create;
  jpg := TJpegImage.Create;
  bmp := TBitmap.Create;
  try
    bmp.Assign(Image.Picture.Bitmap);
    jpg.CompressionQuality := 80;
    jpg.Assign(bmp);
    jpg.SaveToStream(s);
    with TCPClient do
    begin
      OpenWriteBuffer;
      try
        WriteStream(s, True, True);
        CloseWriteBuffer;
      except
        CancelWriteBuffer;
        raise;
      end;
    end;
  finally
    jpg.Free;
    bmp.Free;
    s.Free;
  end;
end;
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat
Masteric

Registriert seit: 1. Aug 2007
Ort: Melsungen
155 Beiträge
 
Delphi 7 Professional
 
#3

Re: Fehlermeldung beim mehrfachen versenden von Bildern

  Alt 2. Feb 2008, 09:38
danke, das scheint zu funktionieren, aber irgendwie empfängt der die Bilder nicht mehr gescheit...
Kann ich das Empfangene Bild gleich in ein Timage laden?? es ist in einem Stream und im JPG Format, da macht der manchmal Probleme....
"Programmieren ist eine der universellsten, allübergreifendsten und höchsten von Menschen erreichten Formen der Kreativität."
Nur weil Gott die Welt in 6 Tagen erschaffen hat, heisst das nicht, dass Informatiker alles in 6 Tagen programmieren können.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Fehlermeldung beim mehrfachen versenden von Bildern

  Alt 2. Feb 2008, 09:51
Wie sieht denn dein Code auf der Empfangsseite aus?
  Mit Zitat antworten Zitat
Masteric

Registriert seit: 1. Aug 2007
Ort: Melsungen
155 Beiträge
 
Delphi 7 Professional
 
#5

Re: Fehlermeldung beim mehrfachen versenden von Bildern

  Alt 2. Feb 2008, 10:01
Also das ist die Procedure die das Image empfängt:

Delphi-Quellcode:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
Var BILD:Tstream;
    SizeOfIncomingStream: integer;
begin

 bild:Tmemorystream.Create;

  with AThread.Connection do
  begin
  try
      SizeOfIncomingStream := ReadInteger;
      ReadStream(BILD,SizeOfIncomingStream);
  finally
      BILD.Free;
      disconnect;
  end;
  end;
  Image1.Picture.Loadfrom //hier liegt das Problem, wenn ich das Bild aus dem Stream lade und dann in ein bmp umwandle kommt //nichts im Image an. Aber Loadfromstream geht ja auch nicht bei einem JPG, deswegen weiss ich nicht wie ich das gescheit in das //image laden soll.
 Image1.Update;

end;
"Programmieren ist eine der universellsten, allübergreifendsten und höchsten von Menschen erreichten Formen der Kreativität."
Nur weil Gott die Welt in 6 Tagen erschaffen hat, heisst das nicht, dass Informatiker alles in 6 Tagen programmieren können.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Fehlermeldung beim mehrfachen versenden von Bildern

  Alt 2. Feb 2008, 11:38
Du musst die ImageSize nicht mit ReadInteger auslesen, ReadStream kann das selbst (siehe Doku). Beim Empfangen würde ich die Vorgehensweise beim Senden einfach umkehren. Zuerst jpg.LoadFromStream(), dann Zuweisung an eine Bitmap. Probiere mal.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:26 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