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
  Web butona tıklama - Çözüldü Altıner 2 228 13-03-2024, Saat: 16:42
Son Yorum: Altıner
  Google play Uygulama yükleme hatası [Çözüldü] codder71 3 388 23-02-2024, Saat: 22:42
Son Yorum: codder71
  Delphi 12 Boş Form Derleme Hatası [Çözüldü] codder71 4 554 21-02-2024, Saat: 22:09
Son Yorum: codder71
  Android 33 api sdk güncelleme [ÇÖZÜLDÜ] codder71 4 455 19-02-2024, Saat: 22:38
Son Yorum: codder71
  Xcode Üyeliği hakkında barissagir 15 2.076 07-02-2024, Saat: 16:26
Son Yorum: barissagir



Konuyu Okuyanlar: 1 Ziyaretçi