-
سلام آقا سعید
شما درست می فرمائید در صورتی که فرمهایی که استفاده می کنیم MDI نباشد در ست کار می کند
مشکل اینجاست که من می خواهم با زدن دکمه ok روی یک فرم SDI که البته parent هم نمی باشد این فرم بسته و فرم MDIظاهر شود
در مورد اینکه شاید دلفی قاطی کرده بعید می دونم چون روی چندتا سیستم دیگه هم امتحان کردم جواب نداد
در ضمن من خودم هم با MDI زیاد موافق نیستم ولی چه کنم که انجوری ازم خواستن
امیدوارم اذیتت نکرده باشم
-
به دست آوردن ليست سيدي درايوهاي متصل به كامپيوتر
يك فانشكن مينويسيم كه يك استرينگ بر ميگرداند
کد:
Function GetCDList : String;
Var
I : Integer;
Drives: Integer;
Tmp : String;
begin
Drives := GetLogicalDrives;
Result := '';
// units A=0 to el Z=25
For I := 0 To 25 Do
If (((1 Shl I) And Drives)<>0) Then
Begin
Tmp := Char(65+I)+':\';
If (GetDriveType(PChar(Tmp))=DRIVE_CDROM) Then
Result := Result+Char(65+I);
End;
End;
:biggrin:
-
با استفاده از اين فانكشن ميتونيد در هر نوع سيدي درايوي رو باز و بسته كنيد
در اثر فشارهاي مكرر دوستان من ترجمه فارسي توضيحات رو هم به كدها اضافه كردم
کد:
کد:
uses
MMSystem;
procedure TForm1.Button1Click(Sender: TObject);
begin
{باز كردن سيدي رام: در صورت موفقيت 0 برميگرداند}
{ open CD-ROM drive; returns 0 if successfull }
mciSendString('set cdaudio door open wait', nil, 0, handle);
{ close the CD-ROM drive; returns 0 if successfull }
{بستن سيدي رام: در صورت موفقيت 0 برميگرداند}
mciSendString('set cdaudio door closed wait', nil, 0, handle);
end;
-
سلام دوست عزیز متشکر ،و خوشحالم که به جمع دلفی کار ها امدی .مرسی.
-
ممنون ومتشکر جناب نستا جان.
من سعی می کنم که مطالب مفیدی ارائه کنم
-
تغيير Volume ويندوز
يك TrackBar در فرم خود قرار دهيد و Max value را به 15 تغيير دهيد و در رويداد OnChange آن كد زير را قرار دهيد:
کد:
procedure TForm1.TrackBar1Change(Sender: TObject);
var
Count, i: integer;
begin
Count := waveOutGetNumDevs;
for i := 0 to Count do
begin
waveOutSetVolume(i,longint(TrackBar1.Position*4369 )*65536+longint(TrackBar1.Position*4369));
end;
end;
-
تغيير Resolution مونيتور
بايد يك پروسيجر به شكل زير بنويسيم:
کد:
procedure SetResolution(ResX, ResY: DWord);
var
lDeviceMode : TDeviceMode;
begin
EnumDisplaySettings(nil, 0, lDeviceMode);
lDeviceMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;
lDeviceMode.dmPelsWidth :=ResX;
lDeviceMode.dmPelsHeight:=ResY;
ChangeDisplaySettings(lDeviceMode, 0);
end;
-
قرار دادن يك Bitmap در يك متافايل
کد:
procedure TForm1.Button1Click(Sender: TObject);
var
m : TmetaFile;
mc : TmetaFileCanvas;
b : tbitmap;
begin
m := TMetaFile.Create;
b := TBitmap.create;
b.LoadFromFile('C:\SomePath\SomeBitmap.BMP');
m.Height := b.Height;
m.Width := b.Width;
mc := TMetafileCanvas.Create(m, 0);
mc.Draw(0, 0, b);
mc.Free;
b.Free;
m.SaveToFile('C:\SomePath\Test.emf');
m.Free;
Image1.Picture.LoadFromFile('C:\SomePath\Test.emf' );
end;
-
بدست آوردن Serial Number درايو
کد:
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeName,
FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,
FileSystemFlags : Integer;
begin
GetVolumeInformation('C:\',VolumeName,MAX_PATH,@Vo lumeSerialNo,
MaxComponentLength,FileSystemFlags,
FileSystemName,MAX_PATH);
Memo1.Lines.Add('VName = '+VolumeName);
Memo1.Lines.Add('SerialNo = $'+IntToHex(VolumeSerialNo,8));
Memo1.Lines.Add('CompLen = '+IntToStr(MaxComponentLength));
Memo1.Lines.Add('Flags = $'+IntToHex(FileSystemFlags,4));
Memo1.Lines.Add('FSName = '+FileSystemName);
end;
-
اميدوارم مورد قبولتان واقع شود