باید از rave report, quick report, fast report یا کامپوننتهای دیگه استفاده کنی. مستقیماً نمیتونی کپشن یه لیبل رو پرینت کنینقل قول:
Printable View
باید از rave report, quick report, fast report یا کامپوننتهای دیگه استفاده کنی. مستقیماً نمیتونی کپشن یه لیبل رو پرینت کنینقل قول:
اقا اون چيزي كه توش طراحي مي كنند اسمش چيه و كدش هم بگيد ؟
من مي خوام وقتي يك پروژه را كامپايل مي كنم دو تا فرم با هم نمايان شوند ؟
به نام خدا
با سلام لطفا به بنده یاد بدهید چگونه می توانم یک برنامه کوچک دیکشنری مثلا فقط برای 200 الی 300 حروف بسازم اگر ممکن است آموزش به صورت فارسی باشد .
اوه كي حوصله داره ؟
سلامنقل قول:
اينجا رو يه نگاهي بنداز
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلامنقل قول:
خب اول بايد يه بانك اطلاعاتي داشته باشي كه شامل كلمات و معانيشون باشه . بعد ميتوني همزمين با اينكه كاربر داره حروف رو ميزنه تو ديكشنريت معادلشو نمايش بدي
خيلي سادست. كافيه از يه دستور like استفاده كني.
دقيقا بگو كجاي كار هستي تا برات يه مثال بذارم .
موفق باشي
دوست عزیز شما کامپوننت جدید رو معرفی کردی؟ یا منظورت به این جمله من بوده "مستقیماً نمیتونی کپشن یه لیبل رو پرینت کنی" ؟نقل قول:
اگر جواب دومی مثبت هست، منظور من این بوده که از طریق کد نویسی نمیشه کپشن label رو برای پرینت به پرینتر فرستاد و حتما باید از یه کامپوننت پرینت به عنوان واسط استفاده کرد.
امید وارم تکراری نباشه
یک کد جدید برای گرفتن عکس از صفحه نمایش. برای عکس گرفتن از صفحه به طور عمومی یک راه وجود دارد.آن هم این است که برنامه ای بنویسیم که کلید Print Screen بزند و بعد تصویر را از ClipBoard بخواند. این یک راه علمی تر و کم دردسر تر است. این کد کار خود را با TScreen انجام میدهد.
]کد:function CaptureScreenRect( ARect: TRect ): TBitmap;
var
ScreenDC: HDC;
begin
Result := TBitmap.Create;
with Result, ARect do
begin
Width := Right - Left;
Height := Bottom - Top;
ScreenDC := GetDC( 0 );
try
BitBlt( Canvas.Handle, 0, 0, Width, Height, ScreenDC,
Left, Top, SRCCOPY );
finally
ReleaseDC( 0, ScreenDC );
end;
end;
end;
function CaptureScreen: TBitmap;
begin
with Screen do
Result := CaptureScreenRect( Rect( 0, 0, Width, Height ));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Picture.Bitmap:=CaptureScreen
end
ایجاد دو زبان صفحه کلید برای برنامه:
دو دکمه در برنامه بگذارید کپشن یکی رو به En و دومی رو به Fa تغییر دهید....
کد:برای فارسی یا Fa
LoadKeyboardLayout('00000429',KLF_ACTIVATE);
کد:برای انگلیسی یا En
LoadKeyboardLayout('00000409',KLF_ACTIVATE);
گذاشتن برنامه در StartUp:
کد:procedure RunOnStartup( sProgTitle, sCmdLine : string; bRunOnce : boolean );
var
sKey : string;
reg : TRegIniFile;
begin
if( bRunOnce )then
sKey := 'Once'
else
sKey := '';
reg := TRegIniFile.Create( '' );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString( 'SoftwareMicrosoft'+ 'WindowsCurrentVersionRun' + sKey + #0,
sProgTitle,sCmdLine );
reg.Free;
end;
طریقه لیست کردن فایل و فلدر های یه مسیر خاص:
کد:procedure FindAll (const Path: String;
Attr: Integer;
List: TStrings) ;
var
Res: TSearchRec;
EOFound: Boolean;
begin
EOFound:= False;
if FindFirst(Path, Attr, Res) < 0 then
exit
else
while not EOFound do begin
List.Add(Res.Name) ;
EOFound:= FindNext(Res) <> 0;
end;
FindClose(Res) ;
end;
البته یه راه دیگه هم هست برای عوض کردن زبان سیستم:
کد:ActivateKeyboardLayout(HKL_NEXT , KLF_REORDER);
اجرای هر فایل دلخواه:
البته اونهایی که توسط سیستم یا نرم افزارهای دیگه شناخته شده باشن.:
کد:uses
Shellapi;
function StartAssociatedExe(FileName: string; var ErrorCode:
Cardinal): Boolean;
var
Prg: string;
ProcessInfo: TProcessInformation;
StartupInfo: TStartupInfo;
begin
SetLength(Prg, MAX_PATH);
Result := False;
ErrorCode := FindExecutable(PChar(FileName), nil,
PChar(Prg));
if ErrorCode >= 32 then
begin
SetLength(Prg, StrLen(PChar(Prg)));
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
with StartupInfo do
begin
cb := SizeOf(TStartupInfo);
wShowWindow := SW_SHOW;
end;
if CreateProcess(PChar(Prg), PChar(Format('%s %s', [Prg, FileName])),
nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil,
StartupInfo, ProcessInfo) then
begin
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, ErrorCode);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
Result := True;
end
else
ErrorCode := GetLastError;
end;
end;
--------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
ErrorCode: Cardinal;
begin
StartAssociatedExe('c:\delphi_learn.pdf', ErrorCode);
end;
اینم سورس برنامه startup
[HTML]http://www.4shared.com/file/25221453/2d243282/StartUp.html[/HTML]
خيلي ساده مي توني اين كار رو انجام بدي فقط لازمه يك بانك اطلاعاتي فرقي نمي كنه با Sql ، Access يا ... براي لغات و معاني اونها ايجاد كني سپس با استفاده از دلفي به پايگاه داده مورد نظر وصل و بقيه اعمال رو در دلفي انجام بدي اگر نياز دارين بگيد تا بيشتر راهنمايي كنمنقل قول:
سلام
براي اين كه فرم شما به شكل بيضي در بياد مي تونيد از كد زير استفاده كنيد
داخل OnCreateفرم كدهاي زير رو بنويسيد
كه عددهاي 50و40و300و200 رو مي تونيد به دلخواه تغيير بدين تا اندازه مورد نظرتون رو بدست بيارينکد:procedure TForm1.FormCreate(Sender: TObject);
var x:THandle;
begin
x:=CreateEllipticRgn(50,40,300,200);
SetWindowRgn(Handle,x,true);
end;
سلام
چطور ميتوان فايل excelرا در دلفي باز كرد؟
ویرایش شد..........
سلام
برای این کار می تونید از کنترل OleContainer استفاده کنید
روش استفاده :
1- از سربرگ System یک کنترل OleContainer روی فرم قرار بدین
2- روی آن دوبار کلیک کنید در این پنجره دو تا گزینه وجود داره
گزینه اول: Create New برنامه های پیش فرض خود دلفی
گزینه دوم : Create from File توسط این گزینه می تونید برنامه مورد نظر را از هارد خودتون انتخاب کنید
3- بعد از کلیک روی Create from File با استفاده از دکمه Browse فایل مورد نظرتون رو انتخاب کنید
4- با اجرای برنامه و کلیک روی OleContainer برنامه مورد نظر اجرا میشه
5 - برای این که کنترل OleContainer در فرم مشخص نباشد و ظاهر برنامه را خراب نکند می تو نید مقدار خاصیت Visible آن را False قرار بدین بعد از این کار در یک Button کد زیر را برای اجرا شدن آن بنویسید
کد:OleContainer.Doverb(0);
سیو کردن یه پیج اینترنتی با پسوند html :
طریقه استفاده:کد:uses ActiveX;
...
procedure WB_SaveAs_HTML
(WB:TWebBrowser; const FileName : string);
var
PersistStream: IPersistStreamInit;
Stream: IStream;
FileStream: TFileStream;
begin
if not Assigned(WB.Document) then
begin
ShowMessage('Document not loaded!');
Exit;
end;
PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate);
try
Stream := TStreamAdapter.Create(FileStream, soReference)
as IStream;
if Failed(PersistStream.Save(Stream, True)) then
ShowMessage('SaveAs HTML fail!');
finally
FileStream.Free;
end;
end;
کد:WebBrowser1.Navigate('http://delphi.about.com');
WB_SaveAs_HTML(WebBrowser1,'c:\WebBrowser1.html');
طریقه بار گذاری یه سایت یا یه وب پیج بصورت اتوماتیک بر روی برنامه شما:
استفاده از کد:کد:procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string) ;
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank') ;
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
if Assigned(WebBrowser.Document) then
begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms) ;
ms.Seek(0, 0) ;
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)) ;
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;
کد:procedure TForm1.FormCreate(Sender: TObject) ;
var
sHTML : string;
begin
sHTML := '<a href="http://forum.p30world.com">GOTO</a>' +
'<b>P30 World Forum</b>';
WBLoadHTML(WebBrowser1,sHTML) ;
end;
عکس گرفتن از محتویات TWebBrowser :
طریقه استفاده :کد:uses ActiveX;
procedure WebBrowserScreenShot(const wb: TWebBrowser; const fileName: TFileName) ;
var
viewObject : IViewObject;
r : TRect;
bitmap : TBitmap;
begin
if wb.Document <> nil then
begin
wb.Document.QueryInterface(IViewObject, viewObject) ;
if Assigned(viewObject) then
try
bitmap := TBitmap.Create;
try
r := Rect(0, 0, wb.Width, wb.Height) ;
bitmap.Height := wb.Height;
bitmap.Width := wb.Width;
viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ;
with TJPEGImage.Create do
try
Assign(bitmap) ;
SaveToFile(fileName) ;
finally
Free;
end;
finally
bitmap.Free;
end;
finally
viewObject._Release;
end;
end;
end;
کد:procedure TForm1.FormCreate(Sender: TObject) ;
begin
WebBrowser1.Navigate('http://forum.p30world.com') ;
end;
procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant) ;
begin
WebBrowserScreenShot(WebBrowser1,'c:\WebBrowserImage.jpg') ;
end;
چطور یک فایل Rar ری در سیستمم باز کنم؟
سلامنقل قول:
در دلفي ميتونيد از اين كامپوننت استفاده كنيد :
اين فايل نيز بايد كنار برنامه قرار داشته باشد :کد:http://www.rarlab.com/rar/TDFUnRar.zip
کد:http://www.rarlab.com/rar/UnRARDLL.exe
مطالب مفیدی توی این تاپیک بود
همگی خسته نباشین
با استفاده از shellExecuteنقل قول:
اول shellAPI رو uses کنین
به جای filename و filedirectory که نام و آدرس فایل رو می نویسینکد:ShellExecute(hwnd(nil),'operation','filename',nil,'filedirectory',0);
اما operation:
من الان winrar ندارم که دقیق بگم
خودتون به ترتیب زیر عمل کنین
روی یه فایل rar کلیک راست کنین
گزینه ای که با اون فایل رو extract می کنین چیه؟
فکر کنم extract here یا یه همچین چیزی باید باشه
این عبارت رو به جای operation بنویسین
امیدوارم جواب بده :5:
با سلام
اولا از همه دوستان سپاسگزار به خاطر مطالب مفيدشون .
من چندتا سوال دارم كه خواهش ميكنم جواب بدين :
1- بعضي از دستوراتي گفته شده خيلي طولانيه مثلا برا ليست كردن محتويات يك شاخه راه ديگه نيست كه انجام بديم ؟
2- اگه بخوايم buttonهامون رنگي بشن يافونت اون رنگي شه چه كار بايد بكنيم ؟
3-در يك dbgride اگه بخوايم سطرها يكي در ميان رنگي باشند بايد چكار كنيم ؟
4- در مورد page controlتوضيح بديد كه چطور ميشه ازش استفاده كرد بطور مثال چطور ميشه چندتا سربرگ داشت و روي هر كدام كه كليك ميكنيم صفحه مربوط به همون باز بشه شبيه كادرهاي محاوره اي ويندوز مثل display properties
ضمن تشكر از همه دوستان
1 ) اگر کامپوننتی وجود داشته باشه بهتره ازش استفاده کنید اما در بعضی مواقع کد نویسی بهتر از هر نوع کامپوننتی است هر چند که این کامپوننت ها هم از کدها ساخته می شن.نقل قول:
2 ) من تا حالا چیزی در باره تغییر رنگ باتون دلفی ندیدم اما شما می توانید از کامپوننت های که برای این منظور ساخته شده استفاده کنید .
نمونه ای از کامپوننت ها : XiButton و buttoncomps
3 ) می تونی از کد زیر استفاده کنید :
4 ) به راحتی آب خوردن شما می تونید از این کامپوننت استفاده کنید برای این کار باید یک کامپوننت PageControl1 را از سر برگ Win32 روی فرم قرار داده و روی PageControl1 راست کلیک کنید و گزینه New Page را انتخاب کنید و بقیه تنظیمات را هم بسته به سلیقه خود انجام بدهید مانند تغییر رنگ و تغییر نوشته و غیرهکد:procedure TForm4.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
DBGrid1.Canvas.Font.Color:=$003592EE;
if((DBGrid1.DataSource.DataSet.RecNo mod 2)=0)Then
DBGrid1.Canvas.Brush.Color:=$00E2FEFD
else
DBGrid1.Canvas.Brush.Color:=$00FDFBE3;
if(gdSelected in State)Then
DBGrid1.Canvas.Brush.Color:=$0002FD09;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
با سلام
در مورد سوالهاي 1 و 2 از شما سپاسگزارم
در مورد سوال 3 از توي ويژگيهاي مربوط به dbgride گزينه اي نداره كه بتونه اين كار بكنه يا كلا يك راه راحتتر .
در مورد سوال 4 بايد بگم مشكل من سر رنگ و چيزاي ديگش نيست بلكه مشكل سر اينه كه چطور ي كاري بكنم كه وقتي روي هر سربرگ كليك مي كنم صفحه مربوط به اون باز بشه و اصلا براي اون صفحات بايد از شي خاصي استفاده كنم يا نه
با تشكرات صميمانه
شرمنده من تاحالا چنین چیزی ندیدم وقتی که مشکل شما با کد حل می شه چرا خودتان را بیشتر از این اذیت می کنید؟نقل قول:
دوست گرایم شما اگر همان کاری را که من در پست قبلی گفتم را انجام بدهید همه چیز حله .نقل قول:
در مورد سوال 4 بايد بگم مشكل من سر رنگ و چيزاي ديگش نيست بلكه مشكل سر اينه كه چطور ي كاري بكنم كه وقتي روي هر سربرگ كليك مي كنم صفحه مربوط به اون باز بشه و اصلا براي اون صفحات بايد از شي خاصي استفاده كنم يا نه
به راحتی آب خوردن شما می تونید از این کامپوننت خود دلفی استفاده کنید برای این کار باید یک کامپوننت PageControl1 را از سر برگ Win32 روی فرم قرار داده و روی PageControl1 راست کلیک کنید و گزینه New Page را انتخاب کنید با انتخاب گزینه New Page یک زبانه ( سربرگ) به برنامه شما اضافه می شه حالا در داخل هر سر برگ هر چیزی قرار بدهید وقتی که روی عنوان سربرگ کلیک کنید بلافاصله محتوایش را خواهید دید.
خواهش من این است که اول یک بار امتحان کنید اگر به نتیجه نریسیدید مشکلتون را واضح تر مطرح کنید.
لطفا من را راهنمايي كنيد كه چه جوري treeview را با database sql پركنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
طراحي table را مي دونم ايا بايد از چندين query استفاده كنم اخه ساختارم 5 سطحيه؟؟؟؟؟؟؟؟؟
در خواست یک برنامه که با thred (ترد) نوشته شده باشد باتشکر
نقل قول:کد:http://forum.p30world.com/showthread.php?t=183835
برای ارتباط keypade با آی سی ها چه برنامه ای رو باید نوشت؟؟
با سلام
من نیاز به یک کمپوننت دلفی که ولوم مانند jetaudioبهم بده دارم
چطور میتونم اون رو گیر بیارم یا کسی سورس اون رو میدونه کجا پیدا میشه؟
ممنونم از راهنمایی شما
سلام دوست عزیز
درخواست کمپوننت در تاپیک مربوطه بدید
کد:http://forum.p30world.com/showthread.php?t=173241
در ضمن به نظر من نیازی به کمپوننت خواصی ندارید. میتونید با کمپوننت های زیبا سازی فرم به TrackBar خود شکل دهید
و خواهشآ پست خودتون رو در جاهای مختلف تکرار نکنید...
موفق باشید
با سلام
میخواستم ببینم آدرس دهی نسبی به چه صورت مورد استفاده قرار می کیرد
سلام به همه ، پس شما اينجا بوديد و ما خبر نداشتيم.
با همه شما هستم اي اساتيد برنامه نويس ، كمك كنيد به اين بنده حقير :
آقا من ميخوام بدونم آيا تابعي وجود داره كه متن جاهاي مختلف ويندوز رو سلكت كنه،واضح تر بگم من ميخوام بدونم narsis any where براي ترجمه لغات صفحات خود ويندوز از چه دستوري استفاده ميكنه.
منظورم رو كه فهميدين؟
مثلا ما روي يه قسمتي از my computer كه داراي متن هست چند لحظه صبر ميكنم ،بعد متن اون قسمتي رو كه روش هستيم رو كپي ميكنه(منظور اون كلمه است نه كل جمله)
----------------
خواهش ميكنم جواب بدين
من تو هلپ دلفي چيزي گيرم نيومد
سلام دوست عزيزنقل قول:
شما بايد مباحث مربوط به hook رو مطالعه كنيد كه متاسفانه در اين فروم زياد به اون پرداخته نشده.
کد:http://forum.p30world.com/showthread.php?t=54487&highlight=hook
کد:http://forum.p30world.com/showthread.php?t=170127&highlight=hook
سلام مرسي ،اما رفتم تو آدرس ها اما خيلي بهدرد من نخورد،در واقع چيزي زيادي از كداش سر در نيوردم اخه ميدوني اصلا در رابطه با كد توضيح ندادن اگه ميشه يه تابع مشخص به من بديد بازم منون