Richedit veya Memo Bileşenlerinde İstenilen Yazıyı Gizleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
seci20

Richedit veya Memo Bileşenlerinde İstenilen Yazıyı Gizleme

Mesaj gönderen seci20 »

Ustalarım selamunaleykum.daha once bir konumda anlatım bozuklugu oldugu ıcın cozum bulamamıstım.Şimdi kodları dahıl hepsını yazıcam inş güzel bir şekilde anlatmış olurum.

Sorunum şu bir mtk flash aracını dos command ile komut gönderek read yapıp richedite yazmasını sağlıyorum.Kodu şu.

Kod: Tümünü seç

DosCommand1.CommandLine:='_flashtool -d "'+sOpenDialog2.FileName+'" -s "'+sfilenameedit3.FileName+'" -c  format-download';
DosCommand1.OutputLines:= srichedit1.Lines;
DosCommand1.Execute;
şimdi burda normalde sorun yok.ama örneğin richedite şu yazıyor.

Kod: Tümünü seç

Begin
Media Tek SP FlashTool v5.1524.00
Build Time: Jun 17 2015 10:15:09
Init config from input arguments
DownloadCommand::Execute
General settings creat command
General Command exec
General Command ::LoadDA
General Command ::LoadScatterFile
xml(C:/Documents and Settings/Xp/Desktop/SUNNY-SS01_150416_ForFlashtoolFromReadBack_150928-022654\platform.xml) is NOT existed!
SP FLASH TOOL ERROR: (8402)

platform.xml does not exist!
[HINT]:
.
General command exec done!
Get Storage type fail, Please load scatter file first!
şimdi yukardaki flash tool gönderdiği veriyi örneğin.


örneğin yazmasını istemediğim yazıda şu

Kod: Tümünü seç

Media Tek SP FlashTool v5.1524.00
Build Time: Jun 17 2015 10:15:09
yukarda gösterilen yazıyı yazmasını istemiyorum richeditte sadece benim seçtiğim yazının gizlenmesini istiyorum yada memoda farketmez benim için.bu yazı gizlenirken istediğim yazılarında kalmasını istiyorum.bu konuda biraz acemiyim bana kod ornegı verebılırsenız cok memnun olurum.umarım açıklayıcı bır dıl ıle anlatabılmısımdır.yardım edenlere şimdiden teşekkür ederim.
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Richedit veya Memo Bileşenlerinde İstenilen Yazıyı Gizleme

Mesaj gönderen G.Arkas »

Merhaba;

Anladığım kadarı ile o satırlar statik. Bu yüzden şöyle yapabilirsin. İşlem sonunda Satır index'ini verip silebilirsin.

Kod: Tümünü seç

RichEdit1.Lines.Delete(1); //Media Tek SP FlashTool v5.1524.00
RichEdit1.Lines.Delete(2); //Build Time: Jun 17 2015 10:15:09
ya da ekleme anında Richedit change olayında Copy ve Pos komutlarını kullanarak "begin" ve "Init" satırları arasındaki değerleri silebilirsin. Ya da @mrmarman hocanın aşağıdaki fonksiyonu ile de bu işi halledebilirsin.

Kod: Tümünü seç

Function aradansec( text, ilk, son:String ): String;
begin
   Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
   Result := Copy(Text, 1, Pos(Son, Text)-1);
end;

Kod: Tümünü seç

var
sSource: String;
begin
sSource:= RichEdit1.Text;
if (sSource <> '')   then
RichEdit1.Text:= AradanSec(sSource, 'begin', 'Init');
Resim
seci20

Re: Richedit veya Memo Bileşenlerinde İstenilen Yazıyı Gizleme

Mesaj gönderen seci20 »

hocam cevap verdiğiniz için teşekkür ederim.ilk verdiğiniz komutta silme işlemi yapmıyor + hata veriyor.(benden kaynaklıdır büyük ihtimalle) ikinci komuttada silmiyor.burda bişeyi tekrardan belirtim yukardaki şu texti.

Kod: Tümünü seç

Media Tek SP FlashTool v5.1524.00
Build Time: Jun 17 2015 10:15:09
rechedit flash tool programından veri alarak işliyor dos command ile yani.ordaki kendimin yazdırdıgı bir text degıl.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Richedit veya Memo Bileşenlerinde İstenilen Yazıyı Gizleme

Mesaj gönderen mrmarman »

Merhaba
Saklamak istediğiniz kod bütününü, gösterim yaptığınız TRichEdit bileşenine eş başka bir TStringList, TListbox, TMemo veya ikinci bir TRichEdit içerisinde tutun. Bu ikinci kaynak gizli olacak.

Asıl gösterim yapılacak olandaki sadece istediğiniz kısımlar dışında kalan kodları silin.

Lazım olduğunda ikincil kaynaktan takviye edersiniz.

Delphi fonksiyonlarından Pos( ) Copy() Delete() ReplaceString() olanları araştırın. Kolaylık için forumda PARSE ifadesini arayın. Çünkü bu bahsettiğiniz işlemin teknik adı budur.

Başarılar.
Resim
Resim ....Resim
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Richedit veya Memo Bileşenlerinde İstenilen Yazıyı Gizleme

Mesaj gönderen ertank »

G.Arkas'ın önerisini nesneyi Memo yaparak çalıştırabilirsiniz.

Düzeltiyorum. RichEdit için yazılan kod Memo ile uyumlu değil. Memo nesnesi kullanırsanız Önce Font rengini beyaz yapın. Böylece içine yazılanlar gözükmez. Ardından komut çalışması bitince

Memo1.Lines[0] := '';
Memo1.Lines[1] := '';

Şeklinde iki satır kod yazın. Ardından font rengini normal haline getirin.

Bu şekilde gözükmesinin önüne geçebilirsiniz.
seci20

Re: Richedit veya Memo Bileşenlerinde İstenilen Yazıyı Gizleme

Mesaj gönderen seci20 »

teşekkür ederim hemen araştırıyorum.
seci20

Re: Richedit veya Memo Bileşenlerinde İstenilen Yazıyı Gizleme

Mesaj gönderen seci20 »

ustalarım söyle bir çözüm buldum stringi del komutuyla istediğim yerleri siliyorum başka arkadaslara yardımcı olur inş herkese teşekkür ederim.
Cevapla