ブラウザ
Posted: 2007年8月23日(木) 09:16
今インターネットブラウザを作っているのですが
IEのように戻す進むの処理をどうすればいいのかわかりません
できればソース付の解説をお願いします。
IEのように戻す進むの処理をどうすればいいのかわかりません
できればソース付の解説をお願いします。
コード: 全て選択
Dim AddressPoint(9) As *Byte
Dim NowPointingAddressPoint As Long
'第一引数に、保存するアドレス名へのポインタを渡す。
Sub PushNewAddress(Addr As *Byte)
If NowPointingAddressPoint = 10 then
free(AddressPoint(0))
Dim i As Long
For i=0 To 8
AddressPoint(i)=AddressPoint(i + 1)
Next i
AddressPoint(9)=calloc(lstrlen(Addr))
memcpy(AddressPoint(9),Addr,lstrlen(Addr))
Else
Dim npap As Long
npap = NowPointingAddressPoint
If AddressPoint(npap) then
Dim i As Long
For i = npap To 9
If AddressPoint(npap) then
free(AddressPoint(npap))
AddressPoint(npap) = 0
End If
Next i
End If
AddressPoint(npap) = calloc(lstrlen(Addr) + 1)
memcpy(AddressPoint(npap),Addr,lstrlen(Addr))
NowPointingAddressPoint ++
End If
End Sub
'引数なし。
'戻り値は、エラーなら0、エラーで無いならアドレス名へのポインタ。
Function GoAddress() As *Byte
If NowPointingAddressPoint = 10 then
GoAddress = 0
Exit Function
End If
Dim npap As Long
npap = NowPointingAddressPoint
If AddressPoint(npap) = 0 then
GoAddress = 0
Exit Function
Else
GoAddress = AddressPoint(npap)
NowPointingAddressPoint ++
Exit Function
End If
End Function
'引数なし。
'戻り値は、エラーなら0、エラーで無いならアドレス名へのポインタ。
Function BackAddress() As *Char
If NowPointingAddressPoint = 0 then
BackAddress = 0
Exit Function
End If
NowPointingAddressPoint --
BackAddress = AddressPoint(NowPointingAddressPoint)
Exit Function
End Function
コード: 全て選択
Dim NowAddressName As *Byte
Sub MainWnd_CommandButton1_Click()'戻る
Dim AddressName As *Byte
AddressName = BackAddress()
If AddressName <> 0 then
NowAddressName = AddressName
Flash()'再描画関数か何か。
End If
End Sub
Sub MainWnd_CommandButton2_Click()'進む
Dim AddressName As *Byte
AddressName = GoAddress()
If AddressName <> 0 then
NowAddressName = AddressName
Flash()'再描画関数か何か。
End If
End Sub