تغییر مرورگر پیش فرض ویندوز با اصلاح مسیر زیر در رجیستری
HKEY_CLASSES_ROOT\http\shell\open\command
HKEY_CLASSES_ROOT\https\shell\open\command
تبدیل عکس به base 64 و ذخیره در دیتابیس به صورت رشته ای و تبدیل رشته کد شده به عکس
uses Soap.EncdDecd
procedure DecodeToFile(const base64: AnsiString; const FileName: string);
var
stream: TFileStream;
bytes: TBytes;
begin
bytes := DecodeBase64(base64);
stream := TFileStream.Create(FileName, fmCreate);
try
if bytes<>nil then
stream.Write(bytes[0], Length(Bytes));
finally
stream.Free;
end;
end;
function EncodeFile(const FileName: string): AnsiString;
var
stream: TMemoryStream;
begin
stream := TMemoryStream.Create;
try
stream.LoadFromFile(Filename);
result := EncodeBase64(stream.Memory, stream.Size);
finally
stream.Free;
end;
end;
procedure TForm1.EncodeButton1Click(Sender: TObject);
begin
str:= EncodeFile('d:\pic.jpg');
end;
procedure TForm1.DecodeClick(Sender: TObject);
begin
DecodeToFile(str,'c:\xx.jpg') ;
end;
نرم افزار فروشگاهی بایت
از اصلی ترین مزیت های این برنامه می توان به موارد زیر اشاره کرد:
:heavy_check_mark: تعریف کاربرهای مختلف با سطوح دسترسی قابل تعریف
:heavy_check_mark: گزارش گیری های متنوع و کارا بر روی حساب ها،کالا ها، فاکتور ها ، اشخاص و....
:heavy_check_mark: ثبت پیش فاکتور ها و صدور فاکتور از روی پیش فاکتور ها
:heavy_check_mark: استفاده دستگاه بارکد خوان و چاپ بارکد روی پرینتر معمولی
:heavy_check_mark: پشتیبان گیری و بازیابی پشتیبان از حساب ها
:heavy_check_mark: محاسبه سود در فاکتور
:heavy_check_mark: ثبت عملیات ویزیتورها
:heavy_check_mark: سقف اعتبار شخصی
:heavy_check_mark: ارتقا برنامه به تولید کالا و استفاده از فرمول تولید در سطح پیشرفته
:heavy_check_mark: امکان ارسال پیامک از پنل در سطح پیشرفته
:heavy_check_mark: ایجاد سالی مالی برای اطلاعات حسابرسی همزمان بر روی حساب های چند شرکت بصورت جدا گانه
ویژگیهای این نرم افزار شامل :
:one: سادگی اجرا و کار با برنامه (بدون نیاز به دانستن مفاهیم حسابداری)
:two: قابلیت اتصال به اینترنت و پشتیبانی از راه دور
:three: نصب و آموزش کاربر به صورت رایگان
قیمت 700،000 تومان
شماره تماس یا ایمیل خود را بگذارید تا با شما تماس گرفته شود
r:four:
برای تبدیل ، تغییر نام ، ... روی کامپوننت ها به راحتی میتوان از برنامه جانبی که روی دلفی نصب میشود با نام GExperts استفاده کرد من تا اخرین نسخه فعلی دلفی xe10.2 تست گرفتم و مشکلی نداشت
مرتب سازی dbgrid دلفی
procedure TformResult.gridResultTitleClick(Column: TColumn);
begin
// User can sort the grid by clicking on any column's title
if DM.ADOSearch.Sort = Column.FieldName + ' ASC' then
DM.ADOSearch.Sort := Column.FieldName + ' DESC'
else
DM.ADOSearch.Sort := Column.FieldName + ' ASC';
end;
function GetFileVersion(exeName : string): string;
const
c_StringInfo = 'StringFileInfo\040904E4\FileVersion';
var
n, Len : cardinal;
Buf, Value : PChar;
begin
Result := '';
n := GetFileVersionInfoSize(PChar(exeName),n);
if n > 0 then begin
Buf := AllocMem(n);
try
GetFileVersionInfo(PChar(exeName),0,n,Buf);
if VerQueryValue(Buf,PChar(c_StringInfo),Pointer(Value),Len) then begin
Result := Trim(Value);
end;
finally
FreeMem(Buf,n);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := Form1.Caption + ' version ' + GetFileVersion(ExtractFileName(Application.ExeName));
end;
کد زیر تمامی جداول دیتابیس را میگردد و فیلدهای متنی را انتخاب میکند و این دو کاراکتر را جایگزین میکند
DECLARE @Table NVARCHAR(800),@Column NVARCHAR(800)
DECLARE Table_Cursor CURSOR
FOR
--پیدا کردن تمام فیلدهای متنی تمام جداول دیتابیس جاری
SELECT T.name, /* Table */
C.name /* Column */
FROM sysobjects T,syscolumns C
WHERE T.id = C.id AND T.xtype = 'u' /* User Table */
AND (C.xtype = 99 /* ntext */
OR C.xtype = 35 /* text */
OR C.xtype = 231 /* nvarchar */
OR C.xtype = 167 /* varchar */
OR C.xtype = 175 /* char */
OR C.xtype = 239 /* nchar */)
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Column
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC ('Update [' + @Table + '] Set [' + @Column + '] = REPLACE(REPLACE(CAST([' + @Column + '] as nvarchar(800)), NCHAR(1610), NCHAR(1740)), NCHAR(1603), NCHAR(1705))')
FETCH NEXT FROM Table_Cursor INTO @Table,@Column
END CLOSE Table_Cursor
DEALLOCATE Table_Cursor
یا به صورت جدول به جدول
update `tbl_name` set
`text` = replace(`text`, 'ک', 'ک') ,
`text` = replace(`text`, 'ی', 'ی');
برای تنظیم HorizontalAlignment و VerticalAlignment در تنظیمات خروجی اکسل دلفی اگر با xlleft , ... مشکل داشت میتوان از کدهای زیر استفاده کرد
For VerticalAlignment
:
Top: -4160
Center: -4108
Bottom: -4107
And HorizontalAlignment
:
Left: -4131
Center: -4108
Right: -4152
var WrkSheet : oleVariant;
begin
WrkSheet:=CreateOleObject('Excel.Application');
WrkSheet.displayAlerts:=false;
WrkSheet.WorkBooks.add;
WrkSheet.ActiveSheet.Name := 'Sheet1';
WrkSheet.Range['A1','A1'].HorizontalAlignment:= -4108;
end
For VerticalAlignment
:
Top: -4160
Center: -4108
Bottom: -4107
And HorizontalAlignment
:
Left: -4131
Center: -4108
Right: -4152
من نیاز داشتم به اینکه یک ماه تاریخ در بالای گریدم نمایش بدم و سمت راستم هم یک سری اطلاعات دیگه . کد زیر تاریخ از اول ماه تا تاریخ جاری نمایش میدهد شما میتونید هر طور خواستین تغییرش بدین .
DECLARE @startDate DATEtime
set @startDate= CAST(MONTH(GETDATE()) AS VARCHAR) + '/' + '01/' + + CAST(YEAR(GETDATE()) AS VARCHAR) -- mm/dd/yyyy
DECLARE @endDate DATEtime
set @endDate= GETDATE() -- mm/dd/yyyy
SELECT [Date] = DATEADD(Day,Number,@startDate)
FROM master..spt_values
WHERE Type='P'
AND DATEADD(day,Number,@startDate) <= @endDate
------------------------------
چیدن تاریخ به ماه
DECLARE @startDate VARCHAR(10)
DECLARE @endDate VARCHAR(10)
set @startDate= '2021/01/20' -- mm/dd/yyyy
set @endDate= '2021/04/05'-- mm/dd/yyyy
SELECT DATEADD(MONTH, x.number, @StartDate)
FROM master.dbo.spt_values x
WHERE x.type = 'P'
AND x.number <= DATEDIFF(MONTH, @StartDate, @EndDate);
مرتب سازی memtable در دلفی روی گرید به صورت زیر عمل میکنیم
procedure TFmTransferInfo.DBGridEh1TitleClick(Column: TColumnEh);
begin
if not(DBGridEh1.DataSource.DataSet.Active) then
Exit;
if Column.Field.Calculated then
Exit;
case Column.Title.SortMarker of
smNoneEh:
begin
Column.Title.SortMarker := smDownEh;
MemTableEh1.SortByFields(Column.FieldName+' DESC');
end;
smDownEh:
begin
Column.Title.SortMarker := smUpEh;
MemTableEh1.SortByFields(Column.FieldName+' ASC');
end;
smUpEh:
begin
Column.Title.SortMarker := smNoneEh;
MemTableEh1.SortByFields('');
end;
end;
end;
برای محاسبه تفاوت بین دو زمان در دلفی یونیت DateUtils ابتدا اضافه شود سپس از کد زیر استفاد ه شود
SecondsBetween(Now, IncSecond(Now,10))
MinutesBetween(Now, IncMinute(Now,110))
برای غیر فعال کردن دکمه بستن فرم و فعال کردن ان از کد زیر میشود استفاده کرد :
ورودی یک رشته و کاراکتر جداکننده است و به صورت تفکیک شده در یک جدول به ما برگشت داده میشود .
اگر بخواهیم در برنامه نوشته شده با دلفی برنامه دیگری را فراخوانی کنیم از کد زیر استفاده میکنیم
var
Address:string;
begin
Address:=ExtractFilePath(Application.ExeName)+'p.exe';
if FileExists(Address) then
ShellExecute(Handle,'open',PChar(Address),nil,nil,SW_SHOWNORMAL)
else
showmessage('فایل مربوطه پیدا نشد.');
اگر بخواهیم برنامه ای مثل ماشین حساب ویندوز فراخوانی کنیم از کد زیر میشود استفاده کرد
WinExec('calc.exe',SW_SHOWNORMAL);