نمایش نتایج 1 تا 6 از 6

نام تاپیک: مشکل با خواندن یک عکس از رجیستری

  1. #1

    Question مشکل با خواندن یک عکس از رجیستری

    سلام

    من با استفاده از کد زیر یک فایل png را در رجیستری ذخیره کرده ام.
    procedure TForm1.Button1Click(Sender: TObject);
    var
    Reg: TRegistry;
    MyStream: TMemoryStream;
    begin
    MyStream := TMemoryStream.Create;
    Reg := TRegistry.Create;
    try
    Reg.OpenKey('Software\Fava', True);
    Reg.WriteBinaryData('ICO', MyStream, MyStream.Size);
    MyStream.LoadFromFile('d:\clock.png');
    finally
    Reg.Free;
    MyStream.Free;
    end;
    end;

    کد بالا به درستی کار می کند و مشکلی هم ندارد.
    از کد زیر هم می خواهم برای خواندن عکس و قرار دادن آن در یک کنترل Image استفاده کنم که این کد با مشکل مواجه می شود:
    procedure TForm1.Button2Click(Sender: TObject);
    var
    Reg: TRegistry;
    MyStream: TMemoryStream;
    Buf: array of byte;
    I: Integer;
    begin
    MyStream := TMemoryStream.Create;
    Reg := TRegistry.Create;
    try
    Reg.OpenKey('Software\Fava', True);
    SetLength(Buf, Reg.GetDataSize('ICO'));
    Reg.ReadBinaryData('ICO', PByte(Buf)^, Reg.GetDataSize('ICO'));
    MyStream.Write(Buf, SizeOf(Buf));
    MyStream.Position := 0;
    Image2.Picture.Bitmap.LoadFromStream(MyStream);
    finally
    Reg.Free;
    MyStream.Free;
    end;
    end;

    به نظر شما مشکل از کجاست؟

    با تشکر...

  2. #2

    نقل قول: مشکل با خواندن یک عکس از رجیستری

    کد بالا به درستی کار می کند و مشکلی هم ندارد.
    وقتی هنوز موفق به خوندن فایل از رجیستری نشدید چطوری میفرمایید مشکلی نداره ؟

  3. #3

    نقل قول: مشکل با خواندن یک عکس از رجیستری

    وقتی هنوز موفق به خوندن فایل از رجیستری نشدید چطوری میفرمایید مشکلی نداره ؟
    به رجیستری رفتم و دیدم که فایل ذخیره شده.

  4. #4

    نقل قول: مشکل با خواندن یک عکس از رجیستری

    نقل قول نوشته شده توسط شاهین عشایری مشاهده تاپیک
    به رجیستری رفتم و دیدم که فایل ذخیره شده.
    خب مطمئن هستید فایل به صورت کامل و بدون مشکل ذخیره میشه ؟ و ضمناً در زمان بارگزاری فایل چه خطایی دریافت میکنید ؟ (خطا مربوط به چه قسمتی هست ؟)

  5. #5

    نقل قول: مشکل با خواندن یک عکس از رجیستری

    خب مطمئن هستید فایل به صورت کامل و بدون مشکل ذخیره میشه ؟ و ضمناً در زمان بارگزاری فایل چه خطایی دریافت میکنید ؟ (خطا مربوط به چه قسمتی هست ؟)
    با خطای Stream Read Error مواجه میشم. در ضمن محلی که خطا رخ میده نامشخص است(شاید بخاطر اینکه خطا از طرف یکی از فایلهای کتابخانه ای ویندوز صادر می شود.). در ضمن با اطمینان بالای 90% حدس می زنم که اطلاعات درست ذخیره شده است، چون موقعی که از Reg.GetDataSize('ICO') استفاده میکنم مقدار برگشتی برابر با اندازه فایل است.

  6. #6

    نقل قول: مشکل با خواندن یک عکس از رجیستری

    کد نوشتن در رجیستری تون که مشکل داره؛ وقتی هنوز فایل رو در Stream لود نکردید، چی رو در رجیستری نوشتید؟! LoadFromFile رو که بعد از WriteBinaryData فراخوانی کردید! از طرف دیگه، MyStream رو برای چی به WriteBinaryData پاس دادید؟! باید یا از TMemoryStream.Memory استفاده می کردید، یا بعد از لود کردن فایل در Stream، اون رو در یک بافر می ریختید، و بافر رو به WriteBinaryData پاس می کردید.


    با خطای Stream Read Error مواجه میشم. در ضمن محلی که خطا رخ میده نامشخص است(شاید بخاطر اینکه خطا از طرف یکی از فایلهای کتابخانه ای ویندوز صادر می شود.).
    به خاطر اینکه use debug .dcus رو در تنظیمات پروژه فعال نکردید، تا دیباگر داخل فایل های rtl دلفی step کنه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •