Jump to content

Richtext Alanında Değişiklik Yapma


Cyph3r
 Share

Recommended Posts

Arkadaşlar bir paket programın richtext alanına müdahale etmek istiyorum ancak başarılı olamadım... autoitscript sitesinde benzer bir soruna ControlGetHandle() + _GUICtrlRichEdit_GetText() kullanın denmiş....
 
$pencere = WinWait("[CLASS:TfmAdaParsel]","")
$edinme = ControlGetHandle($pencere, "", "TDBWPRichText1")
_GUICtrlRichEdit_ReplaceText($edinme, "testttt")

şeklinde salladım ama yemedi :) Acaba yanlış mı kullanıyorum yoksa başka bir sorun mu var? Richtext olan kısım programın ana penceresinin üstünde bir dialog penceresi olarak bulunuyor...

 

2ioJ8ZL.jpg

 

 

 

Link to comment
Share on other sites

Abi ControlSetText kullanmanda fayda var, bu şekilde yazdığın kodlar çok mantıklı gelmedi.

 

Not defteri için kullanım bu şekilde, kullandığın programa göre uyarlarsın.

ControlSetText("[CLASS:Notepad]","","Edit1","Divaneeeee")
Edited by DivaneTR
Link to comment
Share on other sites

 

Abi ControlSetText kullanmanda fayda var, bu şekilde yazdığın kodlar çok mantıklı gelmedi.

 

Not defteri için kullanım bu şekilde, kullandığın programa göre uyarlarsın.

ControlSetText("[CLASS:Notepad]","","Edit1","Divaneeeee")

 

Aslında mantıksız doğru, biraz kısa kestim orayı... :D olayın Richtext objesinde yazıyı bul, sonra seç ve sonrasında değiştir gibi bir sırayla gitmesi gerekiyor sanki :huh: Çünkü, oradaki gibi tek kelime olmayacak, icabında bir cümle olacak orada...Yardım dosyasında hep _GUICtrlRichEdit_Create ile kendi oluşturmuş bu objeyi ve onun üzerinde işlem yapmış... Harici bir richtext alanının handle si ile işlem yapılamıyor mu acaba onu arıyorum... controlsettext işe yaramıyor ayrıca  :closedeyes:

Link to comment
Share on other sites

Abi programın boyutu çok büyük değilse gönderebilirsen incelerim, verdiğim kod işe yarar da, tab olayı işi bozuyor. Edinme sebebi seçiliyken richtext ortaya çıkıyor çünkü.

Link to comment
Share on other sites

Program lisanlı Ömercim, kursan çalıştıramayacaksın zaten... ControlSetText denedim çalışmadı ama ControlSend ile yazı yazılabiliyor... Ancak kelime arama bulma değiştirme işi nasıl olacak bilemedim... Ben _GUICtrlRichEdit.... zorluyorum halen tık yok :D

Link to comment
Share on other sites

_GUICtrlRichEdit_ReplaceText($edinme, "testttt")     richtext'teki texti değiştirmek için kullanılır doğru ama kendi programın içinde bulunan richtext için :D Orda bi yanlışlık olmuş.

 

$pencere = WinWait("[CLASS:TfmAdaParsel]","")
$icindekiyazi = ControlGetText($pencere, "", "TDBWPRichText1") ;
$yeniyazi = StringReplace($icindekiyazi, "aradığın yazı", "değiştireceğin yazı");
$icindekiyazi = ControlSetText($pencere, "", "TDBWPRichText1", $yeniyazi);
 
;ControlSend ile oluyorsa onla yeniden düzenlersin :)

Link to comment
Share on other sites

Valla sallayabildiğim kadar türlü fantezi denendi mosty... :) programın başka bir sekmesindeki inputtan veri alabiliyorsun ama bu richtext içinden veri alamıyorsun... richtext objesine veri girebiliyorsun ama okuyamıyorsun, boş veriyor... aşağıda verdiğim resimlerde yanlış birşey yok dimi?

 

[spoiler]

Y1UmJNj.jpg

 

 

 

eGVjpvc.jpg

[/spoiler]

Link to comment
Share on other sites

$pencere = WinWait("[CLASS:TfmAdaParsel]","")

ControlSend($pencere, "", "TDBWPRichText1" , "^a");
ControlSend($pencere, "", "TDBWPRichText1" , "^c");
$icindekiyazi = ClipGet()
$yeniyazi = StringReplace($icindekiyazi, "aradığın yazı", "değiştireceğin yazı");
$icindekiyazi = ControlSend($pencere, "", "TDBWPRichText1", $yeniyazi);

Fantezi bitmez :) Tek sorun kopyala yapıştır kısmını kullanıyor ne yazık ki.

Edited by MostWanted
Link to comment
Share on other sites

Yalnız şöyle bir durum var; Programın içinde metin onun içinde belirli bir kesiti almak gerekiyor. Onu da StringInStr ya da StringRegExpReplace ile aratıp değiştirmek gerekiyor anladığım kadarıyla :db:

Link to comment
Share on other sites

@MostWanted, eline koluna sağlık... :) sonuç olarak evet aynen istediğim görevi yerine getirdi... ancak teknik olarak bazı sıkıntılar var. Resimlerde temsili olarak tek kelime yazmıştım, normalde orada 25-30 satır bir yazı var ve matbu bir şablona çıktı alınacak şekilde biçimlendirmesi yapılmış... Kodlar istenen kelimeyi değiştiriyor ama tüm cümleyi kelime kelime tekrardan yazdığı için tüm biçimlendirmeler kayboluyor :) 

Link to comment
Share on other sites

Demek istediğini tam olarak anlayamadım abi, küçük bi tane değiştirilecek yazı, olması gereken yazı ve bizim programın o yazıyı nasıl çevirdiğini örnek olarak verirsen bi çözüm bulmaya çalışabilirim.

Link to comment
Share on other sites

Arkadaşlar bence TabControl kaynaklı bir sıkıntı var. 'Edinme sebebi' sekmesinin aktif olduğunu kontrol edip controlleri gönderirse sorun olmayabilir. Abi istersen bir de öyle yap.

Link to comment
Share on other sites

TabControl ile ilgili birşeyler karaladım, bende sorun çıkarmadı, istediğim gibi çalışıyor

#include <GuiTab.au3>
$Handle = ControlGetHandle("[CLASS:TfmAdaParsel]", "", "SysTabControl321") ; Tab objesinin handle'ını alalım önce
$Tab = _GUICtrlTab_GetCurSel($Handle) ; Seçilen tab hangisi onu öğrenelim
If $Tab = 2 Then ; Edinme sebebi sekmesi aktif ise
	ControlSetText("[CLASS:TfmAdaParsel]", "", "TDBWPRichText1", "ömer") ; Metni değiştirirelim
EndIf

Abi 'SysTabControl321' yazan yere TabControl objesinin ID bilgilerini yazıp denermisin.

Edited by DivaneTR
Link to comment
Share on other sites

Mosty... yazının orjinali bu şekilde....

[spoiler]V3bfnWJ.jpg[/spoiler]

 

Örnek olarak yazıdaki tüm "Kadastro" kelimelerini "Orman" olarak değiştirmesini istedim... değişim başarılı ancak, kırmızı çerçeve ile gösterdiğim şekilde textin biçimi bozuluyor...

[spoiler]xppbqoK.jpg[/spoiler]

 

 

Divane, dostum bu programın tab anlayışı biraz değişik :D tüm tabların class ve ID bilgileri aynı çıktı... :huh: 

Link to comment
Share on other sites

kullanmış olduğunuz programın adı nedir acaba merak ettim ,bir mahsuru yoksa söyleyebilirmisiniz

Valla sallayabildiğim kadar türlü fantezi denendi mosty... :) programın başka bir sekmesindeki inputtan veri alabiliyorsun ama bu richtext içinden veri alamıyorsun... richtext objesine veri girebiliyorsun ama okuyamıyorsun, boş veriyor... aşağıda verdiğim resimlerde yanlış birşey yok dimi?

[spoiler]
Y1UmJNj.jpg



eGVjpvc.jpg
[/spoiler]

 

 

 

 

Cyph3r - PM attım

Link to comment
Share on other sites

Abi tabiki de aynı olacak, zaten orda tek tabcontrol var, diğerleri onun sayfaları. Sen yazdığım kod ile tabcontrol içindeki edinme sebebi sekmesinin aktif olduğunu kontrol edeceksin, sonra kontrolleri göndereceksin. Düzenleyip denedin mi? Kullandığın program Delphi ile yazılmış, delphi ile yazılan başka programlarda da test ettim.

Link to comment
Share on other sites

$pencere = WinWait("[CLASS:TfmAdaParsel]","")

If _ClipBoard_Open($pencere) Then

	; Show clipboard formats available
	MemoWrite("Clipboard formats ..: " & _ClipBoard_CountFormats())

	; Enumerate clipboard formats
	Do
		$iFormat = _ClipBoard_EnumFormats($iFormat)
		If $iFormat <> 0 Then
			$iCount += 1
			MemoWrite("Clipboard format " & $iCount & " .: " & _ClipBoard_FormatStr($iFormat))
		EndIf
	Until $iFormat = 0

	; Close the clipboard
	_ClipBoard_Close()
EndIf

Şunu çalıştırır mısın abi?Bakalım sonuç olarak ne gelecek.Bir de önce kod için ControlSend de text yerine ^v yollar mısın bi de onu deneyelim.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...