بررسی جدول که در حالت ویرایش هست یا خیر
if users.State =dsEdit then
بررسی جدول که در حالت ویرایش هست یا خیر
if users.State =dsEdit then
get memo line Memo1.Lines.Strings[i]
دریافت یک خط خاص از یک memo در دلفی
get listbox item text ListBox1.ItemIndex:=1; tt:= ListBox1.Items.Strings[ListBox1.ItemIndex];
دریافت یک خط خاص از لیست باکس در دلفی
if datamodule3.users.State =dsEdit then
آیا یک adoquery در حالت ویرایش هست یا خیر
تشخیص در حالت ویرایش بودن
host: time.windows.com Label1.Caption := DateToStr(IdSNTP1.DateTime) + ' - ' + TimeToStr(IdSNTP1.DateTime); Label2.Caption := IdSNTP1.Host;
get server time date delphi
باید در uses از StrUtils,math استفاده شود
function Bet(S: string; Thousands: Boolean;Sender: TObject): string;
var
I, MaxSym, MinSym, Group: Integer;
IsSign: Boolean;
begin
for I :=1 to Trunc(Length(S)/3) do
Delete(S,Pos(ThousandSeparator,S),1);
Result := '';
MaxSym := Length(S);
IsSign := (MaxSym > 0) and (AnsiChar(S[1]) in ['-', '+']);
if IsSign then MinSym := 2
else MinSym := 1;
I := Pos(DecimalSeparator, S);
if I > 0 then MaxSym := I - 1;
I := Pos('E', UpperCase(S));
if I > 0 then MaxSym := Min(I - 1, MaxSym);
Result := Copy(S, MaxSym + 1, MaxInt);
Group := 0;
for I := MaxSym downto MinSym do
begin
Result := S[i] + Result;
Inc(Group);
if (Group = 3) and Thousands and (I > MinSym) then
begin
Group := 0;
Result := ThousandSeparator + Result;
end;
end;
if IsSign then Result := S[1] + Result;
if (Sender is TEdit) then
TEdit(sender).Perform(WM_KeyDown,VK_End,0)
end;
///////////////////
procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit1.Text:=bet(Edit1.Text,true,Sender);
end;
function IsNumber(N : String) : Boolean;
var
I : Integer;
begin
Result := True;
if Trim(N) = '' then
Exit(False);
if (Length(Trim(N)) > 1) and (Trim(N)[1] = '0') then
Exit(False);
for I := 1 to Length(N) do
begin
if not (N[I] in ['0'..'9']) then
begin
Result := False;
Break;
end;
end;
var avalue:string;
isn:boolean;
begin
avalue:=inputbox ('test1','test2','');
isn:=isnumber(avalue);
if isn=true then
showmessage('yes')
else
showmessage('no');
end;
سلام
با این کد می تونید با کلیک بر روی تایتل دی بی گرید ، همون فیلد رو سورت کنید.
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var cFieldName:string;
begin
cFieldName:= DBGrid1.Columns[Column.Index].FieldName;
Adoquery1.Sort:=cFieldName;
end;
راه دوم
var KindSotr1:Boolean;
if KindSotr1 then
datamodule3.customers.Sort:=Column.FieldName+' DESC'
else
datamodule3.customers.Sort:=Column.FieldName;
KindSotr1:=not(KindSotr1);
ذخیره عکس در دیتابیس
این روش تست شده و صد در صد جواب می دهد
var
Field: TBlobField;
Stream: TStream;
begin
if ADOQuery.Active and (Image.Picture.Graphic <> nil) then
begin
ADOQuery.Insert;
Field := TBlobField(ADOQuery.FieldByName('ImageData')); // ensure it ís a blob
Stream := ADOQuery.CreateBlobStream(Field, bmWrite);
try
Image1.Picture.Graphic.SaveToStream(Stream);
finally
Stream.Free;
ADOQuery.Post;
end;
end;
end;
var
Field: TBlobField;
Stream: TStream;
Jpg: TJPEGImage;
begin
if ADOQuery.Active then
begin
Field := TBlobField(ADOQuery.FieldByName('ImageData'));
Stream := ADOQuery.CreateBlobStream(Field, bmRead);
Jpg := TJPEGImage.Create;
try
Jpg.LoadFromStream(Stream);
Image1.Picture.Graphic := Jpg;
finally
Jpg.Free;
Stream.Free;
end;
end;
end;
function TForm1.ServiceIsPresent(sMachine, sService: PChar): Boolean;
var
SCManHandle, SvcHandle: SC_Handle;
begin
SCManHandle := OpenSCManager(sMachine, nil, SC_MANAGER_CONNECT);
if (SCManHandle > 0) then
begin
SvcHandle := OpenService(SCManHandle, sService, SERVICE_QUERY_STATUS);
if (SvcHandle > 0) then
begin
Result := True;
CloseServiceHandle(SvcHandle);
end
else
Result := False;
CloseServiceHandle(SCManHandle);
end;
end;
روش استفاده :
if ServiceIsPresent(nil,pchar('sqlserver')) then
// some code
end;
در صورتیکه نام سرویس را میدانیم و میخواهیم فولدری که از آنجا اجرا شده را بیابیم :
function TForm1.GetServiceExecutablePath(strMachine: string; strServiceName: string): String;
var
hSCManager,hSCService: SC_Handle;
lpServiceConfig: PQueryServiceConfigA;
nSize, nBytesNeeded: DWord;
begin
Result := '';
hSCManager := OpenSCManager(PChar(strMachine), nil, SC_MANAGER_CONNECT);
if (hSCManager > 0) then
begin
hSCService := OpenService(hSCManager, PChar(strServiceName), SERVICE_QUERY_CONFIG);
if (hSCService > 0) then
begin
QueryServiceConfig(hSCService, nil, 0, nSize);
lpServiceConfig := AllocMem(nSize);
try
if not QueryServiceConfig(
hSCService, lpServiceConfig, nSize, nBytesNeeded) Then Exit;
Result := lpServiceConfig^.lpBinaryPathName;
finally
Dispose(lpServiceConfig);
end;
CloseServiceHandle(hSCService);
end;
end;
end;
روش استفاده :
mysql_dir := GetServiceExecutablePath('','mysql');