AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Record per Memorystream versenden - wie?

Record per Memorystream versenden - wie?

Ein Thema von alleinherrscher · begonnen am 26. Feb 2006 · letzter Beitrag vom 26. Feb 2006
Antwort Antwort
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#1

Record per Memorystream versenden - wie?

  Alt 26. Feb 2006, 20:50
Hi, ich bastele gerade an nem Programm welches ein Livebild vom anderen Rechner anzeigen soll...dazu wird ein Referenzscreenshot gemacht und eine Routine prüft die änderungen nach x sekunden (hierbei werden Kästchen der größe 10x10 pixel erstellt, welche über den TCPIP Client von Indy versendet werden sollen - das ist soweit kein Problem. Nur wollte ich gerne noch die informationen mitschicken, wo das 10x10 Kästchen beim Remotecomputer hingezeichnet werden soll, damit das Bild anständig wieder zusammengesetzt wird. Also hab ich mir mal nen record gebastelt:

Delphi-Quellcode:
type
  bildelement=record
  x:integer;
  y:integer;
  bild:timage32;
  end;
(arbeite mit gr32)

So...problem ist nur: wie bastele ich aus dem Record n stream, den man versenden kann?

Mfg, Alleinherrscher
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
JocalAreaNetwork

Registriert seit: 19. Aug 2005
35 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Record per Memorystream versenden - wie?

  Alt 26. Feb 2006, 21:28
Delphi-Quellcode:
var
  stream:tmemorystream
  rec:tmyrecord;

stream := nil;
try
  stream := tmemorystream.create;
  stream.write(rec, sizeof(rec));
  // verschicke stream
finally
  freeandnil(stream);
end;
  Mit Zitat antworten Zitat
marabu

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

Re: Record per Memorystream versenden - wie?

  Alt 26. Feb 2006, 22:00
Hallo.

Ich kenne die Komponente TImage32 nicht, aber ich vermute, dass die empfangende Seite mit dem Zeiger auf das Bild nicht viel anfangen kann. Ich würde die beiden Werte für x und y in den memory stream schreiben und anschließend das Bild selbst:

Delphi-Quellcode:
type
  TBildElement = packed record
    x: Integer;
    y: Integer;
    bild: TImage32;
  end;

var
  ms: TMemoryStream;
  rec: TBildElement;
begin
  ms := TMemoryStream.Create;
  try
    ms.write(rec, sizeof(Integer) shl 1);
    bild.SaveToStream(ms);
    ms.Position := 0;
    // verschicke stream
  finally
    ms.Free;
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:04 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