Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
TEdit hakkında - Çözüldü
#11
(15-07-2020, Saat: 10:21)mrmarman Adlı Kullanıcıdan Alıntı: Kahvaltımı yaptım, bir örnek hazırladım.


type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Single);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
      Shift: TShiftState);
    procedure Button1Click(Sender: TObject);
  private
    procedure LabelClick(sender: TObject);
    procedure NewOrUpdateLabel(aIdx: Integer);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

var
  LabelArray : Array Of TLabel;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Visible       := False;
  Edit1.Tag           := -1;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
begin
  if Edit1.Visible then Exit;

  Edit1.Text       := '';
  Edit1.Position.X := TImage(Sender).Position.X + X;
  Edit1.Position.Y := TImage(Sender).Position.Y + Y - Edit1.Height;
  Edit1.Visible := True;
  Edit1.SetFocus;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
begin
  if Key = vkReturn then begin
    Key := $0;
    NewOrUpdateLabel( TEdit(sender).Tag );
    Edit1.Tag := -1;
    Button1Click(nil);
  end;
end;

procedure TForm1.LabelClick( sender: TObject );
begin
  Edit1.Position.X  := TLabel(Sender).Position.X + Image1.Position.X;
  Edit1.Position.Y  := TLabel(Sender).Position.Y + Image1.Position.Y;
  Edit1.Text        := TLabel(Sender).Text;
  Edit1.Tag         := TLabel(Sender).Tag;
  Edit1.Visible     := True;
  Edit1.SetFocus;
end;

procedure TForm1.NewOrUpdateLabel( aIdx: Integer );
var
  idx : Integer;
begin
  if aIdx >= 0
    then idx := aIdx
    else begin
      if high( LabelArray ) < 0
        then SetLength( LabelArray, 1 )
        else SetLength( LabelArray, high( LabelArray ) + 1 + 1 ); // high is the last value, not count.

      idx := high( LabelArray );
      LabelArray[idx]             := TLabel.Create(nil);
      LabelArray[idx].Parent      := Image1;
      LabelArray[idx].Position.X  := Edit1.Position.X - Image1.Position.X;
      LabelArray[idx].Position.Y  := Edit1.Position.Y - Image1.Position.Y;
      LabelArray[idx].Cursor      := crHandPoint;
      LabelArray[idx].HitTest     := True;
      LabelArray[idx].Tag         := idx;
      LabelArray[idx].OnClick     := LabelClick;
      LabelArray[idx].Visible     := True;
    end;
  LabelArray[idx].Text        := Edit1.Text;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Visible := False; // this is "Image Text Settings" PopUp place holder / button.
end;




büyütmek için tıklayın...

pbpo3sb1huiprjplwa3w.gif

Elinize emeğinize sağlık, Güzel bir örnek olmuş çok güzel bir şekilde anlatmışsınız.

(15-07-2020, Saat: 10:36)uparlayan Adlı Kullanıcıdan Alıntı: Arkadaş sanırım TEdit nesnesinin zemin ve kenar çizgileri görünmeden bu işi nasıl yaparım diye soruyor üstat.

Teşekkür ederim.

(15-07-2020, Saat: 11:01)Mr.Developer Adlı Kullanıcıdan Alıntı: Merhaba,

Tedit'i altındaki arka plan çizgisi yüzünden hiçe atmak olmaz.
basit bir örnek ; tek yaptığım Tedit bileşeninin arka plan çizgisini kaldırmak...

Böyle bir sonuç almak istiyor iseniz Tedit bileşenine sağ tıklayıp Edit default style ya da edit custom style seçeneklerinden birini seçin. ( custom : sadece o edit için geçerli )
Ardından Strucature menüsünden editstyle bölümünün altındaki background alanına tıklayıp object inspector kısmından visible := false yapın.
Daha sonra ortadaki alanın üst barında bulunan apple style ( Play butonu görünümlü )
alanına basıp style designer'ı kapatın ve onaylayın.
Tüm yapmanız gereken bu kadar...

Gerisi Tedit bileşenini parmağınız ile dokunduğunuz alanda var etmek.
Düzenleme için de ekstra bir gereksinim olmayacaktır sanırım...





edit custom style seçeneklerinden birini seçin. ( custom : sadece o edit için geçerli ) Tekbir edit konusunu çözememiştim bu konu kafama takılıyordu teşekkür ederim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çözüldü _ Delphi Community Edition SDK ayarları hatası cinarbil 1 485 12-03-2026, Saat: 10:25
Son Yorum: damert6
  Webbrowser Sorunu [ÇÖZÜLDÜ] codder71 7 416 10-02-2026, Saat: 17:04
Son Yorum: codder71
  Orange Ui Page Control Hakkında nurah 3 549 30-10-2025, Saat: 09:17
Son Yorum: RAD Coder
  iOS Bildirim hakkında barissagir 19 3.094 03-02-2025, Saat: 16:27
Son Yorum: barissagir
  IOS FCM göndermek? [ÇÖZÜLDÜ] Mr.X 17 3.420 04-12-2024, Saat: 11:33
Son Yorum: shooterman



Konuyu Okuyanlar: 1 Ziyaretçi