فونت استفاده شده در برنامه حتما باید تو پوشه فونت ویندوز باشه؟ نمیشه فونت رو از یک پوشه دیگه خوند؟
من وقتی فونتی رو کپی می کنم برنامه در اون لحظه نمی تونه از فونت استفاده کنه. باید برنامه رو ببندم و دوباره باز کنم که درست بشه. چه راهی هست؟
چطور باید حداقل ارتفاع رو برای فرم تعریف کنیم؟ مثل MinHeight تو دلفی. میدونید که کد زیر ظاهر خوبی نداره:
کد:
Private Sub Form_Resize()
Const MinHeight = 480 * 15
If Me.WindowState = vbNormal And Me.Height < MinHeight Then Me.Height = MinHeight
End Sub
فونت بايد قبل از اجراي برنامه در پوشه فونتهاي ويندوز قرار بگيره. مناسب ترين روش كپي فونت در هنگام نصب برنامه است. براي اين كار مي تونيد از برنامه هاي ستاپ سازي مثل اينو ستاپ، اينستال شيلد و ... استفاده كنيد كه لينك دانلود و آموزش اونها داخل سات قرار داره.
----------------------------------------
مناسب ترين روش چك كردن ارتفال فرم در واقعه فرم ريسايز هست. هيچ مشكلي در اين روش نيست من متوجه نمي شم چرا نمي خواين از اين روش استفاده كنيد.
در هر صورت وي بي اين خاصيت رو به طور ذاتي نداره ولي ممكنه كامپوننتي براي اين كار وجود داشته باشه يا حتي خودتون اين كامپوننت رو بسازيد.
چرا آقا دیدی. محدود کردن فرم اینجوری ضایعه. پر پر میزینه.
یادش بخیر آقا پدرام این فایلی رو که ضمیمه کردن به کار میبرد.
نمونه کد هم میخواید کد برنامه FAPI رو ببینید.
با تشکر: کارم راه افتاد.
خط اول هنگام اجرای برنامه استفاده میشه
خط دوم هم هنگام پایان برنامه
SetResizeHook Me.hWnd, 640, 480
ReleaseResizeHook Me.hWnd
البته تو FAPI چیزی ندیدم.
استفاده از این کد یه مقدار خطرناکه چون ممکنه VB خطا بده و یهو از برنامه بپره بیرون بدون اینکه Save کرده باشی.
مشکل فونت اساسی حل شد
با تابع AddFontResource که تو Api-Guide نمونه کدش هست میتونید فونت رو از هر پوشه ای که میخواید به جدول فونت های ویندوز اضافه کنید که بعد از ریست کردن ویندوز فونت از تو لیست فونت های ویندوز حذف میشه البته میتونید با RemoveFontResource این کار رو بکنید.
من یک قدم جلوتر رفتم و بجای قرار دادن فونت در یک پوشه، فونت ها رو توی فایل Resource گذاشتم و قبل از استفاده از AddFontResource اول فونت رو از فایل Resource توی یک آرایه بارگذاری می کنم arr()=LoadResData
بعد آرایه رو داخل فایل ذخیره می کنم CreateFile, WriteFile, CloseHandle
اونوقت با تابع AddFontResource فایل ایجاد شده رو اضافه می کنم.
این کار در هر بار اجرای برنامه انجام میشه.