It is currently Tue Mar 26, 2019 11:49 pm

All times are UTC + 1 hour




Post new topic Reply to topic  [ 12 posts ] 
Author Message
 Post subject: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 9:38 am 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
this is old, new code at next pose

ok: readme for first use

i use pb5.70 x86 on winxp make FindReplaceForPUB.exe

tool for pb IDE's FindReplace bug.
the bug from pb5.42 to now pb5.7, see:

[5.42] Replace by using old replace phrase fails...
viewtopic.php?f=4&t=65153
*************
in
ataorj.ys168.com
to
winXPcn_pbBug
see:
FindReplaceForPUB.7z [32kb] :
FindReplaceForPUB.exe 67,072 29,731
FindReplaceForPUB5.pb 5,803 2,279
purebasic.ico 318
readme.txt 1,708 553
*************
open IDE to set, or close IDE and edit PureBasic.prefs and Tools.prefs, consult:
in Tools.prefs:
[Tool_14]
Command = D:\exe1\PureB\bug\find\FindReplaceForPUB.exe
Arguments =
WorkingDir =
MenuItemName = FindReplaceForPUB

++++++++++++++
in PureBasic.prefs:
[ToolbarNew]
ItemCount = 30
...
Icon_15 = Menu:Find
Action_15 = Tool:FindReplaceForPUB
...
[FindWindow]
...
HistorySize = 1
;{***because my tool not use this History,
in FindReplaceForPUB.ini use :
CountStr2 = ...
Stringes2 = ...
CountStr3 = ...
Stringes3 = ...
}
------------

_________________
my pb for chinese:
http://ataorj.ys168.com


Last edited by gurj on Sun Jan 06, 2019 12:40 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 11:53 am 
Offline
Addict
Addict
User avatar

Joined: Tue Oct 09, 2007 2:15 am
Posts: 1032
I miss a download link, or a hint where I can find it...

_________________
PureBasic 5.46 LTS / 5.62 (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​
English is not my native language... (I often use DeepL to translate my texts.)


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 11:57 am 
Offline
Addict
Addict
User avatar

Joined: Tue Mar 02, 2004 1:20 pm
Posts: 1000
Location: Amphibios 9
gurj wrote:
open IDE to set, or close IDE and edit PureBasic.prefs and Tools.prefs, consult:

Obviously, you don't know there's a dialogue for that under Menu/Tools/Configure Tools...:

Image

@Bisonte: http://ys-o.ys168.com/415662559/VfSLjLl6U253K2I98NKI/FindReplaceForPUB.7z

_________________
Can't decide if i need a hug, an XXL coffee, 6 shots of vodka or 2 weeks of sleep.


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 2:08 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
@Bisonte, @Kiffi:
lnk is dynamic , has time limit. best way is:
on page:
ataorj.ys168.com
can see:
winXPcn_pbBug\
click it, can see:
FindReplaceForPUB.7z [32kb]
rightClick it to choice menu "save as..." to download.

---------
sorry for my bad english, i know there's a dialogue for that under Menu/Tools/Configure Tools...:

_________________
my pb for chinese:
http://ataorj.ys168.com


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 2:13 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
updated.
add Shift+Enter to close the tool

1 open FindReplaceForPUB should
by PureBasic.exe's ToolBar or Tools menu
2 then my tool use Ctrl+F to can Enable IDE's FindReplace for get it ID.
3 working...***not use F3 and Shift+F3 ...
4 active FindReplaceForPUB.exe TITLE and Shift+Enter to close the tool, or auto close when IDE closed.

_________________
my pb for chinese:
http://ataorj.ys168.com


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 3:10 pm 
Offline
Addict
Addict
User avatar

Joined: Tue Oct 09, 2007 2:15 am
Posts: 1032
gurj wrote:
@Bisonte, @Kiffi:
lnk is dynamic , has time limit. best way is:
on page:
ataorj.ys168.com
can see:
winXPcn_pbBug\
click it, can see:
FindReplaceForPUB.7z [32kb]
rightClick it to choice menu "save as..." to download.

---------
sorry for my bad english, i know there's a dialogue for that under Menu/Tools/Configure Tools...:


But I can't read the chinese language ;) They are all hieroglyphs for me :mrgreen:

_________________
PureBasic 5.46 LTS / 5.62 (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​
English is not my native language... (I often use DeepL to translate my texts.)


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 3:27 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
updated, all ok!
new code is this:

Code:
; **********note**********
; 1 for pb5.70 IDE by gurj
; 2 open FindReplaceForPUB should by PureBasic.exe's ToolBar or Tools menu
; 3 then this tool use Ctrl+F To can Enable IDE's FindReplace for get it ID.
; 4 working...***not use F3 And Shift+F3 ***
; 5  active FindReplaceForPUB.exe TITLE And Shift+Enter To close the tool,
;     Or auto close when IDE closed or minimize.
; 6 in this tool , ButtonG_"x" And "close" let form To screen's right and bottom, as 'hided';
;    again 'open' this tool is change 'hided' to 'show'
; ********ataorj.ys168.com*******
MutexName$ = "FindReplaceForPUB"
hMutex = CreateMutex_(0, 0, @MutexName$)
If GetLastError_() = #ERROR_ALREADY_EXISTS
 OpenPreferences(GetPathPart(ProgramFilename())+MutexName$+".ini")
 Handle=ReadPreferenceLong("Handle",-6)
 If IsWindow_(Handle)=0
  SendMessage_(win1,#WM_CLOSE,0,0)
  ClosePreferences()
  End
 EndIf
 win1=ReadPreferenceLong("win1",-7)
 cx=ReadPreferenceLong("cx",-8)
 cy=ReadPreferenceLong("cy",-9)
 SetWindowPos_(Handle,#HWND_TOP,cx,cy,0,0,#SWP_NOSIZE)
 SetWindowPos_(win1,#HWND_TOP,cx,cy,0,0,#SWP_NOSIZE)
 ClosePreferences()
End:EndIf

Han=GetForegroundWindow_()
Global s.s=Space(40960)
GetWindowText_(Han,@s,255)
If Left(s,10)<>"PureBasic "
 MessageRequester("FindReplaceForPUB",~"besides for close this tool when purebasic.exe already closed;\nopen FindReplaceForPUB should \nby PureBasic.exe's ToolBar or Tools menu")
End:EndIf
keybd_event_(#VK_CONTROL,0,0,0)
keybd_event_(#VK_F,0,0,0):Delay(150)
keybd_event_(#VK_F,0,#KEYEVENTF_KEYUP,0)
keybd_event_(#VK_CONTROL,0,#KEYEVENTF_KEYUP,0)
Delay(250)
Handle=GetForegroundWindow_()
OpenPreferences(GetPathPart(ProgramFilename())+MutexName$+".ini")
WritePreferenceLong("Handle",Handle)

Structure gad
 h.l;gadID
 xy.l;x or y
EndStructure
Global y1,y,Dim gad(8),g,r.rect,rec.rect,NewList gads.gad(),historys=22,check;,Dim edit(1)
Procedure ListWindows(hwnd,Param)
 Protected Class$ = Space(1024)
 GetClassName_(hwnd,@Class$,Len(Class$))
 If Class$ ="Edit"
  GetWindowRect_(hwnd,rec)
  AddElement(gads())
  gads()\h = hwnd
  gads()\xy = rec\top-2000
  g+1
 ElseIf Class$ ="ComboBox"
  GetWindowRect_(hwnd,rec)
  AddElement(gads())
  gads()\h = hwnd
  gads()\xy = rec\top-1000
  g+1
 ElseIf Class$ ="Button"
  GetWindowRect_(hwnd,rec)
  If rec\bottom>y
   AddElement(gads())
   gads()\h = hwnd
   gads()\xy = rec\left
   g+1
  ElseIf rec\top<y1; And rec\left<x1
   If SendMessage_(hwnd,#BM_GETCHECK,0,0)=0
   ;SendMessage_(hwnd,#BM_SETCHECK,1,0)
   SendMessage_(hwnd,#BM_CLICK ,0,0):EndIf
   check=hwnd:EnableWindow_(hwnd,0)
  EndIf
 EndIf
 ProcedureReturn #True
EndProcedure
;EnableMenuItem_(GetSystemMenu_(Han, #False), #SC_MINIMIZE, #MF_BYCOMMAND | 1)
;EnableMenuItem_(GetSystemMenu_(Handle, #False), #SC_CLOSE, #MF_BYCOMMAND | 1)
GetWindowRect_(Handle,r)
;x1=r\left+30
y1=r\top+60+GetSystemMetrics_(#SM_CYCAPTION)
y=r\bottom-25
r\right=r\right-r\left
r\bottom=r\bottom-r\top

win1=OpenWindow(1,0,0,0,0,"FindReplaceForPUB",#PB_Window_SystemMenu|#PB_Window_Maximize)
GetWindowRect_(win1,rec)
cx=rec\right-r\right
cy=rec\bottom-r\bottom-25
cy>>1
cx_=rec\right-60
cy_=rec\bottom-18
EnumChildWindows_(Handle,@ListWindows(),0)
SortStructuredList(gads(), 0, OffsetOf(gad\xy), TypeOf(gad\xy))
g=0
ForEach gads()
 gad(g)=gads()\h:g+1
Next

MapWindowPoints_(0,Handle,rec,2)
TextGadget(10,0,0,r\right,rec\top,"")
SetGadgetColor(10,#PB_Gadget_BackColor,$BFBFBF)
SetWindowLongPtr_(Win1, #GWL_EXSTYLE,GetWindowLongPtr_(win1, #GWL_EXSTYLE) | #WS_EX_LAYERED)
SetLayeredWindowAttributes_(Win1, $BFBFBF,0, #LWA_COLORKEY)

For a=2 To 3:GetWindowRect_(gad(a),rec):MapWindowPoints_(0,Handle,rec,2)
 ComboBoxGadget(a,rec\left ,rec\top,rec\right-rec\left ,rec\bottom-rec\top,#PB_ComboBox_Editable)
 b=ReadPreferenceLong("CountStr"+a,0)
 s=ReadPreferenceString("Stringes"+a,"")
 For c=1 To b
  AddGadgetItem(a,-1,StringField(s,c,Chr(1)))
 Next: SendMessage_(gad(a-2),#EM_GETLINE, 0, @s)
 SetGadgetText(a,s):Next

For a=4 To 8:GetWindowText_(gad(a),@s,255)
 GetWindowRect_(gad(a),rec):MapWindowPoints_(0,Handle,rec,2)
 ButtonGadget(a,rec\left ,rec\top,rec\right-rec\left ,rec\bottom-rec\top,s)
Next
SetWindowLongPtr_(win1,#GWLP_HWNDPARENT,Handle)

WritePreferenceLong("win1",win1)
WritePreferenceLong("cx",cx)
WritePreferenceLong("cy",cy)
SetWindowPos_(Handle,#HWND_TOP,cx,cy,0,0,#SWP_NOSIZE)
SetWindowPos_(win1,#HWND_TOP,cx,cy,r\right,r\bottom,#SWP_SHOWWINDOW)
;SendMessage_(gad(8),#CB_ADDSTRING,0,@s)
Procedure history(n)
 For a=0 To CountGadgetItems(n)-1
  If GetGadgetItemText(n,a)=s
   RemoveGadgetItem(n,a)
   Break
  EndIf
 Next:AddGadgetItem(n,0,s):If CountGadgetItems(n)>historys
 RemoveGadgetItem(n,CountGadgetItems(n)-1):EndIf
 While WindowEvent():Wend
 SetGadgetState(n,0)
 While WindowEvent():Wend
EndProcedure
ClosePreferences()
SetWindowColor(1,$DEB5FF)
AddKeyboardShortcut(1,#PB_Shortcut_Shift|#PB_Shortcut_Return,1)
While WindowEvent():Wend
Repeat:re:
 Select WaitWindowEvent(3600000);60 minute for check Handle close
  Case #PB_Event_Gadget:eg=EventGadget()
   Select eg
;     Case 2,3
;      If EventType()=#PB_EventType_Change
;      edit(eg)=1:EndIf
    Case 4,5:Gosub fin
    Case 6,7:s=GetGadgetText(3):history(3)
;      SendMessage_(gad(1),#EM_SETSEL, 0, -1)
;      SendMessage_(gad(1),#EM_REPLACESEL,0,s)
     SendMessage_(gad(1),#WM_SETTEXT, 0, @s)
     Gosub fin
    Case 8:If IsWindow_(Handle)
    SetWindowPos_(Handle,#HWND_TOP,cx_,cy_,0,0,#SWP_NOSIZE)
    SetWindowPos_(win1,#HWND_TOP,cx_,cy_,0,0,#SWP_NOSIZE)
   Else:Break
   EndIf
   EndSelect
   
  Case #PB_Event_CloseWindow
   If IsWindow_(Handle)
    SetWindowPos_(Handle,#HWND_TOP,cx_,cy_,0,0,#SWP_NOSIZE)
    SetWindowPos_(win1,#HWND_TOP,cx_,cy_,0,0,#SWP_NOSIZE)
   Else:Break
   EndIf
  Case 0
   If IsWindow_(Handle)=0:Break
   EndIf
  Case #PB_Event_MoveWindow
   SetWindowPos_(Handle,#HWND_TOP,WindowX(1),WindowY(1),0,0,#SWP_NOSIZE)
  Case #PB_Event_Menu:EnableWindow_(check,1)
   SetWindowPos_(Handle,#HWND_TOP,cx,cy,0,0,#SWP_NOSIZE):Break
  Case #WM_NCLBUTTONDBLCLK
   SetWindowPos_(Handle,#HWND_TOP,cx,cy,0,0,#SWP_NOSIZE)
   SetWindowPos_(win1,#HWND_TOP,cx,cy,r\right,r\bottom,#SWP_SHOWWINDOW)
   While WindowEvent():Wend
  Case #PB_Event_ActivateWindow
;   MyWindpl.WINDOWPLACEMENT
;   MyWindpl\length=SizeOf(MyWindpl)
;   If GetWindowPlacement_(han,@MyWindpl) And MyWindpl\showCmd=#SW_SHOWMINIMIZED
;     SetWindowState(1,#PB_Window_Minimize)
;   EndIf

GetWindowRect_(Han,rec);:MessageRequester("",Str(rec\left))
If rec\left<-4000:SetWindowPos_(Handle,#HWND_TOP,cx_,cy_,0,0,#SWP_NOSIZE)

 Break
 ;SetWindowLongPtr_(win1,#GWLP_HWNDPARENT,0)
;SetWindowLongPtr_(win1,#GWLP_HWNDPARENT,Handle)

;    SetWindowState(1,#PB_Window_Minimize)
;     SetWindowPos_(win1,#HWND_TOP,cx_,cy_,0,0,#SWP_NOSIZE)
;     SetWindowPos_(han,#HWND_TOP,cx_,cy_,0,0,#SWP_NOSIZE)
;     While WindowEvent():Wend
   EndIf
EndSelect:ForEver

OpenPreferences(GetPathPart(ProgramFilename())+MutexName$+".ini")
For a=2 To 3:b=CountGadgetItems(a)
 WritePreferenceLong("CountStr"+a,b)
 s=""
 For c=0 To b-1:s+GetGadgetItemText(a,c)+Chr(1)
Next:WritePreferenceString("Stringes"+a,s):Next
ClosePreferences()
CloseHandle_(hMutex)
End

fin:
s=GetGadgetText(2)
SetFocus_(gad(0));激活Handle才工作
; SendMessage_(gad(0),#EM_SETSEL, 0, -1)
; SendMessage_(gad(0),#EM_REPLACESEL,0,s)
SendMessage_(gad(0),#WM_SETTEXT, 0, @s)
If s<>"":history(2):Else:Goto re:EndIf
;SendMessage_(gad(eg),#WM_LBUTTONDOWN,0,0):Delay(122)
;SendMessage_(gad(eg),#WM_LBUTTONUP,0,0)
SendMessage_(gad(eg),#BM_CLICK ,0,0)
Return

_________________
my pb for chinese:
http://ataorj.ys168.com


Last edited by gurj on Sat Mar 02, 2019 10:32 pm, edited 2 times in total.

Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 3:53 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
@Bisonte:
FindReplaceForPUB.7z [32kb]
rightClick it to choice menu "save as..." to download.
"save as..." is with "&K"

_________________
my pb for chinese:
http://ataorj.ys168.com


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Jan 05, 2019 4:32 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
please change
EndSelect:ForEver
to
Case #WM_NCLBUTTONDBLCLK
SetWindowPos_(Handle,#HWND_TOP,cx,cy,0,0,#SWP_NOSIZE)
SetWindowPos_(win1,#HWND_TOP,cx,cy,r\right,r\bottom,#SWP_SHOWWINDOW)
While WindowEvent():Wend
EndSelect:ForEver

_________________
my pb for chinese:
http://ataorj.ys168.com


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sun Jan 06, 2019 1:52 am 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
after open the tool, if IDE is mini has question:
IDE and the tool cannot Together.
please Shift+Enter to close tool.
IDE not use mini.

_________________
my pb for chinese:
http://ataorj.ys168.com


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sun Jan 06, 2019 12:54 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
post updated, all ok!

_________________
my pb for chinese:
http://ataorj.ys168.com


Top
 Profile  
Reply with quote  
 Post subject: Re: ok: tool for pb IDE's FindReplace bug.
PostPosted: Sat Mar 02, 2019 10:34 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Thu Jan 22, 2009 3:48 am
Posts: 555
Location: china
red post updated.

_________________
my pb for chinese:
http://ataorj.ys168.com


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  

 


Powered by phpBB © 2008 phpBB Group
subSilver+ theme by Canver Software, sponsor Sanal Modifiye