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

نام تاپیک: مشکل با ترد در ارتباط با فرم

  1. #1

    مشکل با ترد در ارتباط با فرم

    سلام.
    زمانی که می خواهم از داخل ترد با یک کنترل ارتباط برقرار کنم در فرم اصلی مشکلی نداره ولی در فرم دوم قرارش میدم و اجراش میکنم اتفاقی نمیفته.
    البته اینم بگم وقتی فرم2رو بصورت Form2.Show نمایش میدم مشکلی نداره ولی اگه بصورت
    Form2 := TForm2.Create(Self)
    Form2.Show نمایش بدم ترد چیزی نمایش نمیده.
    متشکر میشم راهنمایی کنید.

  2. #2

    نقل قول: مشکل با ترد در ارتباط با فرم

    سلام. کدتون رو بگذارید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  3. #3

    نقل قول: مشکل با ترد در ارتباط با فرم

    برنامه خاص نمی نوشتم داشتم مباحث ترد تو دلفی یاد میگرفتم تو یه مثال به این مشکل برخوردم.
    فایل های ضمیمه فایل های ضمیمه

  4. #4

    نقل قول: مشکل با ترد در ارتباط با فرم

    اصل اول کار با ترد ها اینه که از داخل یک ترد به عناصر Visual برنامه دسترسی مستقیم نداشته باشید، تمام ترسیمات گرافیکی باید در ترد اصلی انجام بشه
    برای تغییر بر روی عناصر ویژوال باید از روشهای Synchronization استفاده کنید، ساده ترین حالت استفاده از دستور Synchronize هستش، مثال :

    procedure TMyThread.Execute;
    begin
    Synchronize(aaa);

    // OR

    Synchronize(Procedure
    begin
    Form2.Caption := '12345';
    end);
    end;

    با دستور Synchronize متدی که به عنوان ورودی میدید در بدنه ترد اصلی اجرا میشه
    در حالت کلی استفاده از منابع مشترک در چند ترد باید با روشهای Synchronization مدیریت بشه

    برای متد Execute نیازی به استفاده از Inherited نیست

  5. #5

    نقل قول: مشکل با ترد در ارتباط با فرم

    از دستور Synchronize استفاده میکنم بازم کد Form2.Caption := '12345' اجرا نمیشه.

  6. #6

    نقل قول: مشکل با ترد در ارتباط با فرم

    در فرم اول Form2 رو به صورت Dynamic ساختید، متغیر Form2 که در Thread ازش استفاده کردید متغیر عمومی هستش که در یونیت مربوط به Form2 تعریف شده اما متغیر Form2 که فرم ساخته شده رو بهش اختصاص دادید یک متغیر Local هستش که در Event کلیک Button تعریف شده
    متغیری که در ترد استفاده شده Nil هستش و چیزی بهش اختصاص داده نشده
    یا باید روش کار رو تغییر بدید یا اینکه در فرم اول مستقیما از متغیر Form2 تعریف شده در یونیت فرم دوم استفاده کنید :
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Form2 := TForm2.Create(Self);
    Form2.Show;
    end;

  7. #7

    نقل قول: مشکل با ترد در ارتباط با فرم

    یا باید روش کار رو تغییر بدید یا اینکه در فرم اول مستقیما از متغیر Form2 تعریف شده در یونیت فرم دوم استفاده کنید

    میشه بیشتر توضیح بدبد.

تاپیک های مشابه

  1. سوال: مشکل نمایش فارسی در ارتباط بانک اطلاعاتی mysql با php
    نوشته شده توسط tanha921 در بخش PHP
    پاسخ: 1
    آخرین پست: سه شنبه 13 اسفند 1392, 12:24 عصر
  2. سوال: مشکل این کد در ارتباط با گزارش چیه؟
    نوشته شده توسط reza4359 در بخش C#‎‎
    پاسخ: 4
    آخرین پست: شنبه 21 دی 1392, 00:48 صبح
  3. فوری مشکل با فرم در ویژوال استدیو 2008
    نوشته شده توسط Ehsan.PHP در بخش VB.NET
    پاسخ: 8
    آخرین پست: سه شنبه 04 مرداد 1390, 22:04 عصر
  4. مشکل با فرم در حالت Transparent در صورت وجود منو
    نوشته شده توسط M.T.P در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: یک شنبه 01 خرداد 1390, 16:38 عصر
  5. سوال: مشکل با فرم دوم در حضور richtextbox
    نوشته شده توسط aeirik در بخش C#‎‎
    پاسخ: 2
    آخرین پست: یک شنبه 20 مرداد 1387, 19:23 عصر

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

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