TXMLDocument kullanımı hk.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: TXMLDocument kullanımı hk.

Mesaj gönderen SHURZAN »

Mrmarmman arkadaşım sonuç nedir? TBitmap Canvas ve ScanLine özelliğini de denedim TWriter hata verdi.
Yani Twriter'i kullanarak bitmap resmini MemoryStream'a yüklemenin yolu nedir. İkinci bir tmp stream önermyeceksin sanırım.
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: TXMLDocument kullanımı hk.

Mesaj gönderen G.Arkas »

Merhaba buna benzer bir projem vardı. Tuğrul abinin Thread uyarısı sizin için kilit bir kelime. Ama ben sizin yerinizde olsam Conenction için yeni ve modifiye bir socket sınıfı yazardım. Benim Connection sınıfım Thread'ti. Yani bağlantıların tümü thread ile sağlanıyordu. Bu sayede aynı anda hem görüntü hem ses hemde dosya transferi yapabiliyordum. Eğer dediğim şekilde projeyi değiştirebilirseniz herşey çok daha kolay olur. Socket ile uygulama yazarken sadece Winsock (Native) kullanırım. Gayet esnek ve stabil. Dezavantajları da var tabiiki.

Sizin probleminize gelince. Sockete header gönderdiğinizde 2 Thread başlatabilirsiniz. Birisi içerik diğeri de Görüntü için.

Kod: Tümünü seç

if cmd = 'blabla' then
begin
Connection.Thread.SendText('HEADER');
Sleep(5);
Connection.Thread.SendStream(@StreamPointer yada Doğrudan stream)
Burada StreamPointer demek istediğim sıradan bir procedure;

Kod: Tümünü seç

procedure EkranGonder
begin
repeat
// kaç saniye ara ile stream açılacak;
sleep(10)
until

end;

Kod: Tümünü seç

CreateThread(0,nil, @EkranGonder, 0 , nil, CardinalValue);
//Önemli Hatırlatma : Doğrudan bmp göndermek yerine Jpeg'e çevirirseniz Compression uygulama şansınız olur. Quality vs ayarlayarak daha hızlı ve akıcı görüntü sağlayabilirsiniz.

Kod: Tümünü seç

 TempBmp.Handle := CaptureWND(0,ccs,32,x,y);
        TempJpeg.Assign(TempBmp);
        TempJpeg.CompressionQuality := 50;
        TempJpeg.Compress;
        TempJpeg.SaveToStream(Stream);
İyi çalışmalar.
Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: TXMLDocument kullanımı hk.

Mesaj gönderen mrmarman »

SHURZAN yazdı:Mrmarmman arkadaşım sonuç nedir? TBitmap Canvas ve ScanLine özelliğini de denedim TWriter hata verdi.
Yani Twriter'i kullanarak bitmap resmini MemoryStream'a yüklemenin yolu nedir. İkinci bir tmp stream önermyeceksin sanırım.
Sonuç açık TBitmap ile tek başına bunu yapamazsınız.

Zaten mesajımı yeniden okursanız TWriter tek başına bir stream değil streami kullanan bir aracı / yönetici sınıfıdır.

TBitmap bir stream kesinlikle değildir. SaveToStream diyerek Binary dönüşüm yapıyorsunuz. Ancak o zaman fiziksel olarak bir stream oluşur. Sonra da bu binary data dizisini TWriter ile yayına veriyorsunuz.

Mevcut uyguladığınız yöntem nihai yöntemdir.
Resim
Resim ....Resim
Cevapla