29-10-2012, 11:39 PM
السلام عليكم...
معك حق، و هي نقطة مفيدة. و لهذا قمت بتعديل كود الحدث OnPopup للمكون TPopupMenu ليكون بالشكل التالي (أعتذر عن إعادة رفع المشروع، و لكن يكفي تتبع الكود و إجراء التعديلات أو الإضافات، أو حتى فقط نسخ هذا الكود و لصقه بدل الكود السابق):
الكود بعد التعديل يقوم بإظهار اسم القرص إذا كان له اسم، و إلا فإنه يظهر عبارة (قرص قابل للإزالة) طبعاً مع حرف القرص.
نرجو الاستفادة و السلام.
معك حق، و هي نقطة مفيدة. و لهذا قمت بتعديل كود الحدث OnPopup للمكون TPopupMenu ليكون بالشكل التالي (أعتذر عن إعادة رفع المشروع، و لكن يكفي تتبع الكود و إجراء التعديلات أو الإضافات، أو حتى فقط نسخ هذا الكود و لصقه بدل الكود السابق):
كود :
procedure TFMainWin.popSendToPopup(Sender: TObject);
var
AItem: TMenuItem;
AList: TStringList;
Idx: Integer;
// ============= متغيرات جديدة =============
VolName: array[0..MAX_PATH] of WideChar;
PVolName: PWideChar;
MaxCompLen, FSFlags: Cardinal;
AVolumeLabel: string;
// =========================================
begin
try
while popSendTo.Items.Count > 2 do
popSendTo.Items.Delete(1);
AList := TStringList.Create;
GetUsbDrives(AList); // سطر معدل
if AList.Count > 0 then begin
PVolName := @VolName[0]; // سطر جديد
AItem := TMenuItem.Create(Self);
AItem.Caption := '-';
AItem.Tag := 1;
popSendTo.Items.Insert(1, AItem);
AItem := nil;
for Idx := 0 to AList.Count - 1 do begin
// ======================== كود جديد ===========================
GetVolumeInformation(PWideChar(AList[Idx]), PVolName, MAX_PATH + 1, nil, MaxCompLen, FSFlags, nil, 0);
AVolumeLabel := PVolName;
if AVolumeLabel = '' then
AVolumeLabel := ' (قرص قابل للإزالة)'
else
AVolumeLabel := ' (' + AVolumeLabel + ')';
// =============================================================
AItem := TMenuItem.Create(Self);
AItem.Caption := ' ' + AList[Idx] + AVolumeLabel; // سطر معدل
AItem.OnClick := popSendToSelectClick;
AItem.Tag := 1;
popSendTo.Items.Insert(1, AItem);
AItem := nil;
end;
end;
finally
AList.Free;
end;
end;الكود بعد التعديل يقوم بإظهار اسم القرص إذا كان له اسم، و إلا فإنه يظهر عبارة (قرص قابل للإزالة) طبعاً مع حرف القرص.
نرجو الاستفادة و السلام.

