ايران ويج

نسخه‌ی کامل: کامپوننتی قویتر از memo
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان
من نیاز مبرم به یه کامپوننتی دارم که علاوه بر شباهت و عملکرد memo دو تا قابلیت دیگه هم داشته باشه : 1 - با کلیک روی هر کلمه یا جمله ای که در اون نمایش داده میشه یه combobox باز بشه (منظور کلمه یا کلمات مد نظر ما)
2 - هر قسمت از کلمات و جملاتش رو که خواستیم بتونیم با rolover موس هایلایتش کنیم.
ممنون میشم اگه کمک کنید
هم memo و هم ritchedit میتونین با کمی کد نویسی این کارو انجام بدین البته برای هایلایت ritchedit بهتره
با تشکر
فقط میشه راهنمایی بیشتر کنید
امکانش هست کدی که هر قسمت از نوشته memo رو که بخواهیم، تبدیل به باتن می کنه رو این جا قرار بدید؟
واقعا ممنون میشم
منظورتون combobox هست؟که تو پست 1 گفتین؟
اون combobox نیست بلکه یک popup menu هست که وقتی روی یک نقطه کلیک راست میکنین ظاهر میشه
ببینید چه combobox و چه popup menue هر کدوم باشه خوبه
ولی الان مشکل من این هستش که می خوام هر قسمت از متن داخل memo رو که خواستم بتونم خاصیت باتن بهش بدم
یعنی با کلیک روی اون کمبوباکس یا popup menue باز بشه
واقعا خیلی لنگ این مورد هستم اگه درست بشه عالی میشه
سلام مجدد
سرانجام من یه کد پیدا کردم که داخل Rich edit تکست رو به صورت لینک در آورده
حالا جناب lord_viper میشه خواهش کنم اگه امکانش هست کاری کنید به جای لینک سایت یا ایمیل،
یه نوشته معمولی ، مثل : max رو بشه به کلیک حساس کرد (مثلا با کلیک روی اون فرم ماکسی مایز بشه)
کد php:
unit Unit2;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
Dialogs,ShellApi,RichEditStdCtrlsComCtrls;

type
  TForm2 
= class(TForm)
    
RichEdit1TRichEdit;
    
RichEdit2TRichEdit;
    
procedure FormCreate(SenderTObject);
  private
   
procedure InitRichEditURLDetection(RE TRichEdit);
    { Private 
declarations }
  public
    protected
    
procedure WndProc(var MsgTMessage); override;
    { Public 
declarations }
  
end;

var
  
Form2TForm2;

implementation

{$R *.dfm}


procedure TForm2.InitRichEditURLDetection(RETRichEdit);
var
  
maskWord;
begin
  mask 
:= SendMessage(RE.HandleEM_GETEVENTMASK00);
  
SendMessage(RE.HandleEM_SETEVENTMASK0mask or ENM_LINK);
  
SendMessage(RE.HandleEM_AUTOURLDETECTInteger(True), 0);
end;
 
procedure TForm2.FormCreate(SenderTObject);
var
  
sstring;
begin
  InitRichEditURLDetection
(RichEdit1);

  
s:='Great Delphi tutorials and articles at ' +
     
'http://www.delphi.about.com.' #13#10 +
     
'About Delphi Programming site!' #13#10 +
     
'Send an email to your Guide: mailto:delphi.guide@about.com';
  
RichEdit1.Text := s;

  
s:= 'http://www.delphi.about.com. ' +
      
' This Rich Edit does not recognize URLs!';
  
RichEdit2.Text := s

end
;
procedure TForm2.WndProc(var MsgTMessage);
var
  
pTENLink;
  
sURLstring;
  
CE TRichEdit;
begin
if (Msg.Msg WM_NOTIFYthen
begin
  
if (PNMHDR(Msg.lParam).code EN_LINKthen
  begin
   p 
:= TENLink(Pointer(TWMNotify(Msg).NMHdr)^);
   if (
p.Msg WM_LBUTTONDOWNthen
   begin
    
try
     
CE := TRichEdit(Form2.ActiveControl);
     
SendMessage(CE.HandleEM_EXSETSEL0Longint(@(p.chrg)));
     
sURL := CE.SelText;
     
ShellExecute(Handle'open'PChar(sURL), 00SW_SHOWNORMAL);
    
except
    end
;
   
end;
  
end;
end;

inherited;
end; (* TForm2.WndProc *)
end