Dynamiczny toolbutton

0

Tworze dynamicznie toolbuttona na toolbarze
procedure TForm1.Button1Click(Sender: TObject);
var Button:TToolButton;
begin
Button:= TToolButton.create(ToolBar1);
button.parent:=ToolBar1;
Button.Caption:=Edit1.Text;
WebBrowser1.Navigate(Edit1.Text);
end;

Przykładow stworze sobie trzy przyciski onet , interia , google Webbrowser wyświetla ostatnio stworzoną strone w tym przypadku onet
Problem jak zrobić aby po naciśnieciu przycisku np interia ta strona pokazała sie?
domyslam sie że trzeba dopisać jakąś procedure obsługi tego dynamicznie stworzonego przycisku ale nie wiem jak to zrobić
prosze o pomoc

0

np. robisz to tak:

  1. W sekcji private dodajesz
procedure Interia(Sender: TObject);
  1. W implementation:
procedure TForm1.Interia(Sender: TObject);
begin
  WebBrowser1.Navigate('http://interia.pl');
end;
  1. W kodzie, w którym tworzysz dynamiczny przycisk dodajesz linijkę:
Button.OnClick:= Interia;

I gotowe ;)

0

Dzieki -=PcSA=- ale nie o to mi chodziło !!!!!!!
Ja chce żaby ten przycisk otwierał mi dowolna stronke a nie zawsze interie
tak jak ty mi napisałeś
WebBrowser1.Navigate('http://interia.pl');
chodzi mi o to żeby po kliknieciu na przycisk otwierała się stronka jak nazwa przycisku który klikam (nazwe nadaje przy dynamicznym tworzeniu przycisku poprzez
Button.Caption:=Edit1.Text;

Jeśli ktos wie jak to zrobic to prosze o pomoc

0
WebBrowser1.Navigate(Button.Caption);
0
jas_dream napisał(a)
WebBrowser1.Navigate(Edit1.Text);

Ale z tego edita juz dawno mogl ten text zniknac...

Mu chodzi chyba o to ze tworzysz ze 200 zakladek i jak sie pozniej pobrac nazwe tej ktora zostala kliknieta.

Jest w dziale download taki program ktory pokazuje uchwyt komponentu spod myszki.

[dopisane]
Link do programu: http://4programmers.net/file.php?id=1410

0

Mu chodzi chyba o to ze tworzysz ze 200 zakladek i jak sie pozniej pobrac nazwe tej ktora zostala kliknieta.

Dokładnie o to mi chodzi ale dalej nie wiem jak to zrobić ;(
Próbowałem
WebBrowser1.Navigate(Button.Caption);
ale to nie działa wyskakuje mi
[Error] Unit1.pas(52): Undeclared identifier: 'Button'
Co mam zrobić?

0

Button chlopie to nazwa komponentu TButton na formie na pewno masz Button1, Button2, etc. albo swoje zdefiniowane nazwy

czyli zamiast Button.caption to <nazwa komponentu="komponentu">.caption

0
jas_dream napisał(a)

czyli zamiast Button.caption to <nazwa komponentu="komponentu">.caption

Ale przeciez napisal ze tworzy te buttony dynamicznie.

Stomek napisał(a)

Dokładnie o to mi chodzi ale dalej nie wiem jak to zrobić ;(

Wes nie denerwuj, w poprzednim poscie napisalem Ci w jaki sposob to zrobic oraz zapodalem link.

0

Grzegu nie denerwuj sie
Pisząc "dokładnie o to mi chodziło" miałem na mysli że rozumiałeś mój post i dzieki za wskazówki ale ja naprawde dalej nie wiem jak to zrobić :/

0
Stomek napisał(a)

Grzegu nie denerwuj sie
Pisząc "dokładnie o to mi chodziło" miałem na mysli że rozumiałeś mój post i dzieki za wskazówki ale ja naprawde dalej nie wiem jak to zrobić :/

To ci wytlumacze:
Pobierasz zrodla tego programu.
Z mojego posta wiesz ze pobiera on uchwyt bazujac sie na pozycji myszki, wiec szukasz w kodzie jak on to robi.
I gdy juz masz uchwyt to mozesz sobie pobrac wlasciwosc Caption komponentu bodajze procedura GetWindowName.

Mam nadzieje ze teraz wiesz...

0

Dobra kombinuje w ten sposób
var
Uchwyt :HWND ;
WndName:array[0..128] of char;
begin
Uchwyt:=WindowFromPoint(Mouse.CursorPos);
GetWindowText(Uchwyt, WndName, 128);
WebBrowser1.Navigate(WindowText);

end;
I lipa ;(
Co robie nie tak?

0
Stomek napisał(a)

var
Uchwyt :HWND ;
WndName:array[0..128] of char;
begin
Uchwyt:=WindowFromPoint(Mouse.CursorPos);
GetWindowText(Uchwyt, WndName, 128);
WebBrowser1.Navigate(WindowText);
end;

A co to WindowText?

0
var
  Uchwyt :HWND ;
   WndName:array[0..128] of char;
WindowText1 : string;
begin
  Uchwyt:=WindowFromPoint(Mouse.CursorPos);
WindowText1 := inttostr(GetWindowText(Uchwyt, WndName, 128));
WebBrowser_V11.Navigate(WndName);

// ale może byc też tak, że ktoś naciśnie na przycisk za pomocą klawaitury i wtedy nie wyswietli sie ta storna jeżeli kursor nie jest nad przyciskiem

0

Wielkie dzięki
Działa [browar]
Temat uważam za oficjalniezamknęty :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1