Label 'ı fare ile nasıl seçebilirim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Label 'ı fare ile nasıl seçebilirim

Mesaj gönderen muskut »

Hani wordde falan bi yazıyı mouse ile tutup seçeriz ya, sonra onu kopyalarız falan

heehh işte ben bunu LABEL üzerinde yapmak istiyorum.

Uses kısmına Clipbrd falan ekleyerek

Clipboard.AsText := Label1.Caption;

gibi atama yapmayı seçim olarak kast etmiyorum. Ben farem ile istediğim kadar karakteri seçebilecem ve kopyalayacam.

vesselam
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Edit koy.

ParentColor := True;
BorderStyle := bsNone;

yap :)

Kolay gelsin.
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

yooook olmaz, ben inat ettim label ı seçecem inş. Hani bu delphi herşeyi yapardı :) Biz abilerimizden böyle gördük :) Şimdi hiley kaçmayalım, tamam savaşta hile caiz de, maaanaaaneee ben labelı seçecem inş :)
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

global bir degisken tmpglb olsun
labelin OnMouseDown olayına

Kod: Tümünü seç

if (sender.ClassName='TLabel') and (button=mbRight) then
       tmpglb:= TLabel(Sender).Caption;
yabi bide popup menu kullanacan
bir eleman ekle ve ismini Copy de
icine de

Kod: Tümünü seç

  try
    Clipboard.SetTextBuf(Pchar(tmpglb));
  except
  end;
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

Kardeş tamam inat ettinde bodrum kata nasıl balkon yapacan. :D
Eğer yaparsan bizimlede paylaşırsın değilmi :wink:
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

hala aradığım cevabı bulamadım :(

Biliyorum çok şey istiyorum ama biraz inat, biraz ihtiyaç oldu :)

(inat daha ağırlıklı)
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

valla benim bildiğim inatçı adam oturur kodunu kendi yazar :)

Valla kusura bakma ama senin kuru inadın için saatlerimi harcayamam. Aç Windows'u, bu tarz yerlerin hepsinde benim söylediğim yöntem kullanılıyor.

İnatta bir erdemdir ama kuru olanı değil :lol:

Kolay gelsin.
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

Eyvallah, sağolun. Belki birinin bildiği bir API falan vardır diye sordum. Malum label bir windows bileşeni ve statik olduğundan dolayı seçime izin vermiyor.

Öneriler için sağolun.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

hayır, Delphi'deki TLabel grafik bir bileşendir. Daha az kaynak kullanması için öyle tasarlanmıştır.

Windows'taki Label ise TStaticText olarak geçmektedir. Sanırım System sayfasında. Onu bir dene istersen.

Kolay gelsin.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

Mehaba..
Sabah uyandığım zaman :idea:
Pas dosyası

Kod: Tümünü seç

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
    downed:boolean;
    StartX,StopX:byte;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  downed:=true;
  startX:=(x div 11)+1;
end;

procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  downed:=false;
  stopx:=(x div 11)+1;
  if stopx>startx
     then edit1.Text:=copy(label1.caption,startx,abs(stopx-startx)+1)
     else edit1.Text:=copy(label1.caption,stopx,abs(startx-stopx)+1);
end;

end.
dfm dosyası
gerçi formda fazla bişey yok
bi label bir edit
labelin fontu Courier new 14 olarak ayarlandı.
11 1 karakterin genişliği. courier new 14 e göre. diğer fontlarda ve size larda bu rakamın değişmesi gerekecek. tabi harf genişliğine göre dinamikde yapılabilir.

Kod: Tümünü seç

object Form1: TForm1
  Left = 220
  Top = 103
  Width = 224
  Height = 112
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = TURKISH_CHARSET
  Font.Color = clWindowText
  Font.Height = -19
  Font.Name = 'Courier New'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 21
  object Label1: TLabel
    Left = 8
    Top = 8
    Width = 187
    Height = 21
    Caption = 'Copy this text...'
    OnMouseDown = Label1MouseDown
    OnMouseUp = Label1MouseUp
  end
  object Edit1: TEdit
    Left = 16
    Top = 40
    Width = 177
    Height = 29
    TabOrder = 0
  end
end
geliştirilmeye müsait.
hafızaya atmıyor ama editin textinde gösteriyor. metin belli olduğuna göre hafızayada alınır.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

eyvallahh, elinize dilinize sağlık
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

afiyet olsun.
tuzunu biberini ekersin artık :wink:
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla