editbox ı hizalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
cfyasar
Üye
Mesajlar: 169
Kayıt: 31 Oca 2005 05:18
Konum: izmir

editbox ı hizalama

Mesaj gönderen cfyasar »

editboxta yazıyı sağa ve ortaya nasıl hizalayabilirim?
öğrenmek, zorlukları yenmektir.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

İlüzyonla... :lol: :lol: :lol:

- Daha önce forumda aynı soruya cevap vermiştim... TEdit yerine TMemo kullanıp pratik çözebilirsin...

forum linki burada
viewtopic.php?t=1441&#6711
Resim
Resim ....Resim
Kullanıcı avatarı
cfyasar
Üye
Mesajlar: 169
Kayıt: 31 Oca 2005 05:18
Konum: izmir

Mesaj gönderen cfyasar »

programım derleyici tarzında birşey olduğu için veya epey ilerlediğim için artık editbox ı memo ya dönüştürme şansım yok. başka bir yol bulmam gerekecek. yardımınız için teşekkürler.
öğrenmek, zorlukları yenmektir.
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Merhaba;
Edit'e Sağa Dayalı Özelliği Verme

TEdit1 = class(TEdit)
public
procedure CreateParams(var Params: TCreateParams); Override;
end;


procedure TEdit1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ES_MULTILINE or ES_RIGHT;
end;

şeklinde sağa dayalı yapabilirsin ama ortalamayı daha bulamadım. Eğer bulursam yine bilgi veririm. Umarım işine yarar kolay gelsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

Windows.pas adlı dosyada yer alan aşağıdaki tanımlardan faydalanabilirsiniz.

Kod: Tümünü seç

  { Edit Control Styles }
  {$EXTERNALSYM ES_LEFT}
  ES_LEFT = 0;
  {$EXTERNALSYM ES_CENTER}
  ES_CENTER = 1;
  {$EXTERNALSYM ES_RIGHT}
  ES_RIGHT = 2;
  {$EXTERNALSYM ES_MULTILINE}
  ES_MULTILINE = 4;
  {$EXTERNALSYM ES_UPPERCASE}
  ES_UPPERCASE = 8;
çözüme gelince en iyisi Biltesin örneğinde olduğu gibi yeni bir sınıf türeterek bunu kullanmak. hatta biraz araştırılırsa hazır oluşturulmuş böyle bir bileşende bulunabilir. gerçi yazılacak çok fazla bir kod yok ama...
böyle bir bileşen bulduktan sonra bul-değiştir yöntemi ile dfm ve pas dosyalarındaki tüm TEditler uygun şekilde yeni bileşenle değiştirilebilir.

ikinci çözüm ise başka bir unitte uygun şekilde bir TEdit sınıfı tanımlanır ve TEdit şeklindeki tanımlamarın tümü UnitAdi.TEdit şeklinde bul - dğeiştir yapılır.

benim tavsiyem

Kod: Tümünü seç

TXXXEdit = class(TEdit) 
public 
procedure CreateParams(var Params: TCreateParams); Override; 
end; 


procedure TXXXEdit.CreateParams(var Params: TCreateParams); 
begin 
inherited CreateParams(Params); 
Params.Style := Params.Style or ES_CENTER; 
end; 
şeklinde yeni bir bileşen oluşturp kullanmak...
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

http://bdn.borland.com/article/0,1410,16587,00.html

ufak bir aramayla örnek bir bileşen buldum.
bunu bileşeni kullanabilirsiniz.

Kod: Tümünü seç

unit JusEdit;

interface

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

type
  TJustaEdit = class(TEdit)
  private
    { Private declarations }
     fAlignment : TAlignment;
  protected
    { Protected declarations }
    procedure SetAlignment(Value: TAlignment);
  public
    { Public declarations }
     procedure createParams(var Params : TCreateParams); override;
  published
    { Published declarations }
     property Alignment: TAlignment read FAlignment write SetAlignment
      default taLeftJustify;
  end;

procedure Register;

implementation
procedure TJustaEdit.CreateParams(var Params : TCreateParams);
var
  x : Longint;
begin
  inherited CreateParams(Params);
  case fAlignment of
    tarightjustify: x := es_right;
    taleftjustify : x := es_left;
    tacenter      : x := es_center;
  end;
  params.style := params.style or x;


end;
procedure TJustaEdit.SetAlignment;
begin
   if FAlignment <> Value then
  begin
    FAlignment := Value;
    RecreateWnd;
  end;
end;
procedure Register;
begin
  RegisterComponents('Samples', [TJustaEdit]);
end;

end.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
cfyasar
Üye
Mesajlar: 169
Kayıt: 31 Oca 2005 05:18
Konum: izmir

Mesaj gönderen cfyasar »

yardımlarınız için teşekkürler. bu kodlar sorunumu çözdü
öğrenmek, zorlukları yenmektir.
Cevapla