DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
1931
Tıklama
0
Öne Çıkarma
delphi soruları ve cevapları
M
20 yıl (106 mesaj)
Çavuş
Konu Sahibi

alıntıdır fakat delphiyle ilgilenenler için iyi uygulamalar var, neyse fazla lafa gerek yok buyrun bakalım




Herhangi bir anda exe1'den bir tane ama exe2'den maximum n tane calisabilir oldugunu kabul edersek, (n>1)

exe1'deki bir butona tiklayinca exe2'lerden birincisinin

1. o anda calismiyor ise calistirilmasini ;
2. calismakta ve minimize ise maximize olmasini;
3. acik ve maximize ise ama aktif degilse aktif olmasini;

nasil saglayabilirim????????????????


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
say : integer = 1;

implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);
begin
WinExec('c:\windows\calc.exe',SW_SHOWMAXIMIZED);
// kodu yazarken sw_ yazdıkdan sonra CTRL+SPACE 'e basarsan programı Maxmı Minimize mi, Hide mı artık naapcaksan seçebilirsin
// CTRL+SPACE ve CTRL+J işi kolaylaştırıyor // mailleşebilirizde ayrıca...
ShowMessage('Program'+#32+inttostr(say)+#32+'defa çalıştırılmıştır...'+chr(13)+'www.ceviz.net');
say:=say+1;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
with form1 do
begin
width:=270;
Height:=100;
Caption:='>>> Form üstüne 1er kez tıkla <<<';
end;

end;



D
20 yıl (20565 mesaj)
Yarbay

WinExec('c:\windows\calc.exe',SW_SHOWMAXIMIZED); --->
WinExec(Pchar('c:\windows\calc.exe'),SW_SHOWMAXIMIZED);
böyle daha iyi olur



M
20 yıl (106 mesaj)
Çavuş
Konu Sahibi

Combobox&Listbox'a icon ekleme
________________________________________
basit oldu ama, bunu fark etmemiş olan arkadaşlara yardımcı olabileceğini düşündüm.

Bir konuda kaynak isterseniz, elimden gelirse eklerim....

Kolay gelsin


procedure TForm1.Button1Click(Sender: TSender);
var
Icon: TIcon;
begin
Icon := TIcon.Create;
Icon.LoadFromFile('icon.ICO');
ListBox1.Items.AddObject('icon', Icon);
end;




Delphi ile Sayıyı Metine Çevirme
________________________________________
Bu fonksiyonu Copy/Paste yaparak kullanabilirsiniz. Fonksiyon geriye String çeviriyor dikkat.

function Cevir(Val : extended) : String;
const
hanex : array[0..2, '0'..'9'] of String = (
('', 'Bir ', 'İki ', 'Üç ', 'Dört ', 'Beş ', 'Altı ', 'Yedi ', 'Sekiz ', 'Dokuz '),
('', 'On ', 'Yirmi ', 'Otuz ', 'Kırk ', 'Elli ', 'Atmış ', 'Yetmiş ', 'Seksen ', 'Doksan '),
('', 'Yüz ', 'İki Yüz ', 'Üç Yüz ', 'Dört Yüz ', 'Beş Yüz ', 'Altı Yüz ', 'Yedi Yüz ', 'Sekiz Yüz ', 'Dokuz Yüz '));
katx : array[0..5] of String = ('', 'Bin ', 'Milyon ', 'Milyar ', 'Trilyon ', 'Katrilyon ');
var
Kat : Integer;
function _Cevir(sy : String) : String;
var
lsy, hn : Integer;
begin
Result := ''; if sy = '' then Exit;
if (sy = '1') and (kat = 1) then begin Result := 'Bin'; Exit; end;
hn := 0; lsy := length(sy);
while (hn < 3) and (hn < lsy)
do
begin
Result := hanex[hn, sy[lsy - hn]] + Result;
Inc(hn);
end;
Result := Result + katx[kat];
Inc(kat);
if lsy > 3 then Result := _Cevir(copy(sy, 1, lsy - 3)) + Result;
end;
begin
Result := ''; kat := 0;
Result := _Cevir(formatFloat('##0', int(Val)));
end;



Hint'in fontunu değiştirmek
________________________________________




implementation
{$R *.DFM}
Type
THintConFont = Class (THintWindow)
Constructor Create (AOwner: TComponent); override;
end;

Constructor THintConFont.Create (AOwner: TComponent);
begin
Inherited
Create (Aowner);
Canvas.Font.Name := 'Times New Roman';
Canvas.Font.Size := 18;
end;


HOOK çalışan programlar
________________________________________
Program systemtray'e yerleşiyor. Ve arka planda çalışıyor. Yani HOOK dediğimiz olayı yapıyor. Çok farklı (?!), faydalı amaçlar için kullanılabilir...




//***************************
// Unit1.dfm; dosyasının içeriği
//***************************

unit Unit1;

interface

uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, ExtCtrls, ShellAPI, Menus;

const WM_MINIMALIZE = WM_USER + 1
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
Show1: TMenuItem;
Hide1: TMenuItem;
Quit1: TMenuItem;

procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Show1Click(Sender: TObject);
procedure Hide1Click(Sender: TObject);
procedure Quit1Click(Sender: TObject);
private
FIconData : TNotifyIconData;
public
procedure WMMinimalize(var Message : TMessage); message WM_MINIMALIZE;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var i : Integer;
begin
with FIconData do
begin
cbSize := SizeOf(FIconData);
Wnd := Self.Handle;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
hIcon := Application.Icon.Handle;
uCallbackMessage := WM_MINIMALIZE; szTip := 'Hakan MÜŞTAK';
end;
Shell_NotifyIcon(NIM_ADD, @FIconData);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @FIconData);
end;

procedure TForm1.WMMinimalize(var Message : TMessage);
var p : TPoint;
begin
case Message.LParam of
WM_RBUTTONUP: begin
GetCursorPos(p);
PopupMenu1.Popup(p.x, p.y);
end;
end;
end;

procedure TForm1.Show1Click(Sender: TObject);
begin
Form1.Visible := TRUE;
ShowWindow(Application.Handle, SW_HIDE);
end;

procedure TForm1.Hide1Click(Sender: TObject);
begin
Self.Visible := FALSE;
end;

procedure TForm1.Quit1Click(Sender: TObject);
begin
Application.Terminate;
end;

end.


//***************************
// Project1.dpr; dosyasının içeriği
//***************************

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm := FALSE;
Application.Run;
end.




Delphi Prog.'a Popup reklamla açılış
________________________________________
Delphi için güzel kısayol teknikleri yazıyoruz ama inşallah işinize yarıyordur :=)

Program açılmadan tasarladığınız bir formun ilk olarak görünmesini isterseniz (Bu form Unit dosyasıdır - html diildir), önce
File/ New Form
seçeneği ile Projeye bir form ekleriz. Daha sonra eklediğimiz formu (ben form2 diyeceğim),
Project / Options dan Forms sekmesi altında Available kısmına tutup sürükleyeceğiz.
Project / View source kaynağımız şöyle olacak ;



program cevizornek7;

uses
windows, Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},

{$R *.RES}


begin
form2:=TForm2.Create(nil);
form2.show;
Application.ProcessMessages;

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
sleep(4500); {beklemeyi sağlayacak olan kod...}
form2.Hide;
form2.Release;

Application.Run;
end.




unutmadan... Resimle filan açılış yapacaksanız tasarlanan formunda formunda onShow event kısmına

form2.Brush.Style:=bsClear;
Form8.BorderStyle:=bsNone;

eklerseniz resmin(veya nesnenim) dışında kalan herşey transparent olur. Görünmez. Bu metodlar açısından kolaylık sağlayacak bi ipucu daha vereyim, CTRL + SPACE tuşları ile form nesne ve metodlarınıza ulaşabilir, CTRL + J ile ise sistem metod ve yapılarına ulaşabilirsiniz. Tabi bunlara kendiniz de ek yapabilirsiniz...

Offf yoruldum... Eee ben bu kadar yazdım, birilerinin işine yara umarım, şimdi yorumları bekliyorum :=))))))

th4nx -je -jne


Bu mesaja 1 cevap geldi.
D
20 yıl (20565 mesaj)
Yarbay

hocam bunları üst konuya eklesen daha iyi olur. çünkü bu topic bir iki gün sonra arka sayfalara düşer kaybolur gider.
http://forum.donanimhaber.com/m_2804547/tm.htm


Bu mesaja 1 cevap geldi.
M
20 yıl (106 mesaj)
Çavuş
Konu Sahibi

tamam bu günki soru ve cevapları öyle ekleyim saol



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.