edit alignment
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
edit alignment
selam arkadaşlar,,
benim yapmak istediğim, edit içine girilen text in
ortalanması veya sağa dayalı yazılması ama forumda anlatılan biçimde
talignment yoluyla değil,,
çünkü ben bunu lazarus ta yapmak istiyorum..
pascal koduyla nasıl yapılır bilgisi olan arkadaşlar varsa yardımlarınızı bekliyorum
şimdiden teşekkürler,
benim yapmak istediğim, edit içine girilen text in
ortalanması veya sağa dayalı yazılması ama forumda anlatılan biçimde
talignment yoluyla değil,,
çünkü ben bunu lazarus ta yapmak istiyorum..
pascal koduyla nasıl yapılır bilgisi olan arkadaşlar varsa yardımlarınızı bekliyorum
şimdiden teşekkürler,
Anladığım kadarıyla Component kullanmak istemiyorsunuz Ama Class larla uğraşmamız gerekeçek. Ben aşağıdaki şekilde yaptım belki işinize yarar Form un unitini yapıştırıyorum.
Kolay Gelsin...
Kod: Tümünü seç
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TEdit = class(StdCtrls.TEdit)
private
FAlignment : TAlignment;
procedure SetAlignment(Value: TAlignment);
protected
procedure CreateParams(var Params: TCreateParams); override;
public
property Alignment: TAlignment read FAlignment write SetAlignment;
end;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TEdit }
procedure TEdit.CreateParams(var Params: TCreateParams);
const
Alignments : array[TAlignment] of LongWord= (ES_Left,ES_Right, ES_Center);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or Alignments[FAlignment];
end;
procedure TEdit.SetAlignment(Value: TAlignment);
begin
if FAlignment <> Value then
begin
FAlignment := Value;
RecreateWnd;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Alignment := taRightJustify;
end;
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
teşekkürler..
ben aslında normal edit bileşenini bu şekle çevirmek istiyorum..
burda kullanılan talignment özelliğinde tanımlanan işlemler delphi de
bu işlemi yapıyor..
fakat lazarus ta talignment özelliğini tanımlasanız bile buna ait olan parametreler yani tacenter, tarightjustfy, taleftjustify özellikler istenen
işlemi yapmıyor..
bu parametreler herhalde delphide bir fonksiyon veya benzer bir olaya bağlı, ve orada belirtilen şekilde edit içindeki text i konumlandırıyor..
ama bunlar lazarusta işe yaramıyor..
kısacası taleftjusty özelliği atandığında yapılan işlemi oluşturan bir foksiyon ve benzeri birşey olması gerekir diye düşünüyorum..
biraz karışık oldu gibi, bilmem anlatabildimmi..
ben aslında normal edit bileşenini bu şekle çevirmek istiyorum..
burda kullanılan talignment özelliğinde tanımlanan işlemler delphi de
bu işlemi yapıyor..
fakat lazarus ta talignment özelliğini tanımlasanız bile buna ait olan parametreler yani tacenter, tarightjustfy, taleftjustify özellikler istenen
işlemi yapmıyor..
bu parametreler herhalde delphide bir fonksiyon veya benzer bir olaya bağlı, ve orada belirtilen şekilde edit içindeki text i konumlandırıyor..
ama bunlar lazarusta işe yaramıyor..
kısacası taleftjusty özelliği atandığında yapılan işlemi oluşturan bir foksiyon ve benzeri birşey olması gerekir diye düşünüyorum..
biraz karışık oldu gibi, bilmem anlatabildimmi..
Lazarus nedir ? 

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
hocam dün veya evvelsi gün geçmişti forumda;
hıım buldum;
viewtopic.php?t=3825&highlight=free+pascal
sitesi sanki biraz yavaş çalışıyor yada çok yoğun;
kolay gelsin
hıım buldum;
viewtopic.php?t=3825&highlight=free+pascal
sitesi sanki biraz yavaş çalışıyor yada çok yoğun;

kolay gelsin

Merhaba...
- TEdit yerine TMemo kullanmanızı önericem...
TMemo'yu herhabgi bir Edit bileşeni gibi boyutlandırın.
TMemo.WordWrap özelliği false edin.
TMemo.MaxLength değerini; kaç karakter istiyorsanız o rakamı girin. Böylece belirlenenden fazla karakter girişi engellenmiş olur.
En son olarak OnKeyPress eventinde Enter tuşunu takibe alıp etkisiz hale getirin.
- İşte size Alignment özelliği olan bedava bir TEdit...
- Delphi ile ilüzyon bağıntısı
- TEdit yerine TMemo kullanmanızı önericem...




- İşte size Alignment özelliği olan bedava bir TEdit...
- Delphi ile ilüzyon bağıntısı

lazarus ta
standart bölümündeki statictext bileşeninini talignment özelliği var
baktım bu özellik classes ünitinde ve classesh.inc dosyasında tanımlanıyor
ben kendi hazırladığım (hazırlamaya çalıştığım) bileşen unit ine classes
unitini ekliyorum, fakat işe yaramıyor.. yani hatasız olarak yeni bileşen oluşturuyorum ( delphideki gibi) özellikler kısmına eklenmiş oluyor
fakat yinede sola dayalı yazıyor. yani özelliklerden center seçsem bile
değişmiyor..
zannederim statictext bileşeninin üzerine canvas ile belirtilen koordinatlarda yazı yazılabiliyor ve bu yolla yapılmış..
peki edit üzerine de canvas ile yazı yazma olanağım varmı
standart bölümündeki statictext bileşeninini talignment özelliği var
baktım bu özellik classes ünitinde ve classesh.inc dosyasında tanımlanıyor
ben kendi hazırladığım (hazırlamaya çalıştığım) bileşen unit ine classes
unitini ekliyorum, fakat işe yaramıyor.. yani hatasız olarak yeni bileşen oluşturuyorum ( delphideki gibi) özellikler kısmına eklenmiş oluyor
fakat yinede sola dayalı yazıyor. yani özelliklerden center seçsem bile
değişmiyor..
zannederim statictext bileşeninin üzerine canvas ile belirtilen koordinatlarda yazı yazılabiliyor ve bu yolla yapılmış..
peki edit üzerine de canvas ile yazı yazma olanağım varmı
Delphi Canvas tan yararlanarak yapabilirsin. Lazarus u bilmiyorum ama
Kolay Gelsin...

Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var ACanvas: TCanvas;
intLeftShift, intTopShift: Integer;
begin
inherited;
ACanvas := TCanvas.Create;
try
ACanvas.Handle := GetWindowDC(Edit1.Handle);
with ACanvas do
begin
Font.Color := ClRed;
intLeftShift := 20;
intTopShift := 2;
TextOut(intLeftShift, intTopShift, 'www.delphiturkiye.com')
end;
finally
ReleaseDC(Edit1.Handle, ACanvas.Handle);
ACanvas.Free
end;
end;
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Merhaba...
@husonet'in bu güzel örneği yanında bişey ifade eder mi bilmem ama
parametre olarak TEdit'i verip kullanabileceğin bir örnek sunayım.
- TControlCanvas adında özel bir Canvas nesnesi var.
- Vereceğim dinamik procedure, sağa yanaşıkmış gibi gösterecek ama Edit'e döndüğünde bu sihir ortadan kalkacak. OnExit olayına koyabilirsin.
1. TControlCanvas Create ediyor, TEdit'i kontrolüne veriyoruz.
2. İşlerimizi yaparken başka thread vb. etkisine karşı kilitliyoruz.
3. TEdit'in görünür yüzeyini boşaltıyoruz... Veriye dokunmuyoruz
4. Soldan başlangıç noktamızı belirliyoruz. İlerden başlatıp sağa yanaşıkmış hissi vermek için.. İlüzyon burada
5. ve yazımızı yazıyoruz.
@husonet'in bu güzel örneği yanında bişey ifade eder mi bilmem ama

- TControlCanvas adında özel bir Canvas nesnesi var.
- Vereceğim dinamik procedure, sağa yanaşıkmış gibi gösterecek ama Edit'e döndüğünde bu sihir ortadan kalkacak. OnExit olayına koyabilirsin.
1. TControlCanvas Create ediyor, TEdit'i kontrolüne veriyoruz.
2. İşlerimizi yaparken başka thread vb. etkisine karşı kilitliyoruz.
3. TEdit'in görünür yüzeyini boşaltıyoruz... Veriye dokunmuyoruz

4. Soldan başlangıç noktamızı belirliyoruz. İlerden başlatıp sağa yanaşıkmış hissi vermek için.. İlüzyon burada

5. ve yazımızı yazıyoruz.
Kod: Tümünü seç
procedure RightJustifyEdit(var xEdit : TEdit);
var
Soldan,
Uzunluk : Integer;
Yazi : String;
xCanvas : TControlCanvas;
begin
Yazi := xEdit.Text; // Yazıyı çektik
// TControlCanvas Create ediyor
// TEdit'i kontrolüne veriyoruz.
xCanvas := TControlCanvas.Create;
xCanvas.Control := xEdit;
// İşlerimizi yaparken başka thread vb.
// etkisine karşı kilitliyoruz.
xCanvas.Lock;
// TEdit'in görünür yüzeyini boşaltıyoruz...
// Veriye dokunmuyoruz :)
xCanvas.FillRect(xEdit.ClientRect);
Uzunluk := xCanvas.TextWidth(Yazi);
// Soldan başlangıç noktamızı belirliyoruz.
// İlerden başlatıp sağa yanaşıkmış hissi vermek için..
// İlüzyon burada :)
Soldan := xEdit.ClientRect.Right - Uzunluk - 1;
// Sonunda Yazımızı yazıyoruz.
xCanvas.TextRect(xEdit.ClientRect, Soldan, 0, Yazi);
xCanvas.UnLock; // Kilidi açtık.
xCanvas.Free; // Free ettik.
end;