AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Browser programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Browser programmieren

Ein Thema von djpaull · begonnen am 18. Okt 2007 · letzter Beitrag vom 18. Apr 2008
Antwort Antwort
Seite 2 von 3     12 3      
djpaull
(Gast)

n/a Beiträge
 
#11

Re: Browser programmieren

  Alt 19. Okt 2007, 18:26
Also ich hab bisi rumgesearcht und folgendes gefindet:

Hier wurde das Problem irgendwie gelöst, bloss es ist für mich etwas zu hoch.

1. Ich kenne keine Komponente, die TBrowser heisst, nur TWebBrowser (vielleicht sind ja beide gleich?)
2. Was ist "Seitehinzufgen1Click" - ein Button, MenuItem oder...
3. Und vor allem - was zum Geier ist "TBrowser.spSkinListBox1ListBoxDblClick", wie erstellt man sowas?

Ne ListBox hab ich schon. Daten aus dem Adressen Feld können dort abgelegt werden und werden beim FormCreate geladen.

Vielleicht kann mir jemand sagen wie ich zu Laufzeit die MenuItems zur MainMenu hinzufügen kann - wäre auch hilfreich. Ich bin für alles offen.

Danke!
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Browser programmieren

  Alt 19. Okt 2007, 18:43
Also ich kann dein Problem nicht ganz nachvollziehen. Du kannst doch alle Favouriten in einer Datei hinterlegen und aus dieser laden und schreiben.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Button1: TButton;
    moep1: TMenuItem;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
NewItem : TMenuItem;
begin
NewItem := TMenuItem.Create(MainMenu1); //Zuweisung des Parents und erstellen des MenuItems
NewItem.Caption := 'foobar'; //Name des MenuItems
NewItem.Tag := 1; //Glaube hier wird die Position des MenuItems zugewiesen
newItem.onClick := ClickMe; //damit wird die Prozedur ClickMe ausgeführt, wenn auf das Item geklickt wird
moep1.Add(newItem); //Hinzufügen zum Menupunkt "moep"
end;

end.
Klappt wunderbar, müsstest du nur noch auf deine Verhältnise einstellen

Und bitte : Editiere deine Einträge, solang diese nicht älter als 24 Tage sind.
Und dann noch was: Eigentlich bloß eine Frage pro Thread *g

Grüße aus Dresden

Edit1: Kommentare zum besseren Verständnis hinzugefügt

Edit2: Ich rate dir, alle Favouriten in einer Datei zu speichern.
Diese kannst du mit einer StringList laden und somit auch bearbeiten und wieder speichern.
StringList.LoadFromFile(filename); StringList.SaveToFile(filename);
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
djpaull
(Gast)

n/a Beiträge
 
#13

Re: Browser programmieren

  Alt 19. Okt 2007, 19:14
Danke für die Hinweise, bin erst kurz im Forum. Werde sie zu beachten.

Nun zum Code.
Ja ma kann es auch mit StringList machen, ich habs eben mit ListBox probiert. Aber egal. Mir geht es darum, die einträge aus der StringList (bzw. ListBox) als die Menupunkte darzustellen. Sie werden ja bereits abgespeichert in fav.ini und von dort gelanden. Aber eben in die STRINGLIST und Nicht in MAINMENU - das ist mein Problem.

Sorry, dass ich dich mit meinem Unwissen nerve, aber ich komme einfach nicht weiter und bin etwas verzweifelt.

Edit1: Warte mal ich glaub, ich habs. Einen Moment noch...
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Browser programmieren

  Alt 19. Okt 2007, 19:47
Die Daten müssen vorerst in ein StringList, um von dort aus in das MainMenu geschrieben werden.

Dabei gehst du wie folgt vor.

Delphi-Quellcode:
StringList.Create;
StringList.LoadFromFile(filename);
for i:= 0 to StringList.Count - 1 do
 begin
   newItem := TMenuItem.Create(MainMenu);
   newItem.Caption := StringList.Strings[i];
   newItem.Tag := i;
   newItem.onClick := GoToFavURL; //oder sonstewie
   MenuItem.Add(newItem);
 end;
So ungefähr (code ungetestet)
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
djpaull
(Gast)

n/a Beiträge
 
#15

Re: Browser programmieren

  Alt 19. Okt 2007, 20:29
Ich habs! Und so Funzt es:

Laden der Favoriten:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  NewItem : TMenuItem;
  begin
    StringList := TStringList.Create;
    StringList.LoadFromFile('./Favoriten/fav.ini');
    for i:= 0 to StringList.Count - 1 do
      begin
      newItem:=TMenuItem.Create(favoriten1); // favoriten1 ist mein menupunkt Favoriten
      newItem.Caption := StringList.Strings[i];
      newItem.Tag := i;
      newItem.onClick := clickme; //ClickMe soll der Link des jeweiligen Favoritseintrages sein
      favoriten1.Add(newItem);
      end;
  end;
Hinzufügen einer Adresse zu den Favoriten:

Delphi-Quellcode:
procedure TForm1.Hinzufgen1Click(Sender: TObject); // Hinzufgen1 ist mein menupunkt im Menu Favoriten

var
NewItem : TMenuItem;
begin
  NewItem := TMenuItem.Create(mm1); //Zuweisung des Parents und erstellen des MenuItems
  NewItem.Caption := edtadresse.Text; //Name des MenuItems
  NewItem.Tag := 0; //Glaube hier wird die Position des MenuItems zugewiesen
  newItem.onClick := ClickMe; //damit wird die Prozedur ClickMe ausgeführt, wenn auf das Item geklickt wird
  favoriten1.Add(newItem); //Hinzufügen zum Menupunkt "favoriten"

  StringList.Add(edtadresse.Text);
  StringList.SaveToFile('./Favoriten/Fav.ini');
end;
Was noch fehlt, ist die Verlinkung der Favoriten mit z.B. Procedure Clickme
Meine Idee:
Delphi-Quellcode:
Procedure TForm1.ClickMe(Sender: TObject);
begin
  WebBrowser1.Navigate(newitem.caption);
end;
Oder so änlich. Bei mir spuckt er nen Fehler raus: Zugriffsverletzung blablabla...
Weiss jemand wie das Verlinken der Menupunkte geht?
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Browser programmieren

  Alt 19. Okt 2007, 21:04
Die Zugriffsverletzung wird wohl kommen, weil du die StringListe nirgends deklariert hast?

Delphi-Quellcode:
procedure TForm1.clickMe(sender: TObject);
begin
WebBrowser1.Navigate(MainMenu.Items[0].Items[0].Caption);
end;

end.
Hiermit übergibst du aus dem MainMenu das erste item und davon wiederum das erste Unteritem.
Eventuell solltest du noch die passende ID übergeben und die Procedure somit erweitern

Grüße
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
djpaull
(Gast)

n/a Beiträge
 
#17

Re: Browser programmieren

  Alt 19. Okt 2007, 21:32
Danke. Es funzt zwar, nur die Verlinkung ist ist auf den ItemXY beschränkt. Ich Überleg grad folgendes: die caption vom jeweiligem Item ist gleich die Adresse, auf die der Browser gehen soll (sonst würde es ja nicht gehen). Könnte man vielleicht sowas in der Art machen:

var
i: TMenuItem;
begin
i:=mainmenu1.selectedItem; //keine Ahnung ob es sowas gibt
wbb.Navigate(mainmenu1.Items[0].Items[i].Caption);
end;

Ist nur n Beispiel(ungetestet)
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Browser programmieren

  Alt 19. Okt 2007, 22:12
Vergiss nicht am TMainMenu die AutoHotkeys auf maManual umzustellen!
Wenn du mehrere Items hast kannst du das so machen:

Delphi-Quellcode:
procedure TForm1.ClickMe(Sender: TObject);
begin
WebBrowser.Navigate(self.httpwwwgooglede1.Caption);
end;
Die Verwendung der Delphi-Hilfe würde dich sehr viel weiter bringen
(F1).

Grüße
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
djpaull
(Gast)

n/a Beiträge
 
#19

Re: Browser programmieren

  Alt 20. Okt 2007, 16:43
Hi @ alle.

@ quendolineDD

Also ich hab Delphi Online Hilfe benutzt. Ich habe versucht noch örgentwas sinvolles zu "navigate" oder zu "self" rauszufinden. Er spuckt mir dann örgentein Krempel, vonwegen oleVariant und Automatisierte Abläufe, von dem ich sowieso kein Peil hab. Dazu ist auch schön im Delphi-Fach-Timbuktisch geschrieben. Ich bin ein einfacher Mensch und verstehe diesen Fach-esimpel nicht. Deswegen wende ich mich an die aus dem Forum. Die Leute hier können mir das Gleiche, was in der Hilfe steht, in normaler "Umgangssprache sagen", oder direkt den Code schreiben. Ich bastelle damit rum und so verstehe ich, wie der oder der Befehl funktioniert. Ich habe angefangen Delphi zu lernen erst in diesem Schuljahr und bin mittlerweile dabei ein Browser zu estellen. Ich persönlich bin der Meinung, dass das schon immerhin ein Fortschritt ist. Statt Delphi-Hilfe benutze ich Google, dort findet man auch jede Menge. Ich bin nicht faul zu suchen. Es ist nur so. Ich stelle hier eine Frage, auf die ich eine Antwort von den Leuten, die davon Ahnung haben, erwarte.

Zum Code.
Beim oben genannten Möglichkeit wird "httpwwwgooglede1" rot unterstrichen - was ist damit gemeint? Und was bedeutet "self"?

Folgendes fehlt mir im Moment: Beim Click auf den MenuItemXY soll der Browser zu dessen Caption oder Name navigieren.

Bitte um Verständnis für mein Unwissen.
  Mit Zitat antworten Zitat
Benutzerbild von WordsBG
WordsBG

Registriert seit: 17. Sep 2005
63 Beiträge
 
Delphi 7 Professional
 
#20

Re: Browser programmieren

  Alt 20. Okt 2007, 17:22
Zitat von djpaull:
Und was bedeutet "self"?
Das ist ein Bezug auf das Objekt der Klasse in der die Funktion steht. Im Falle dies wäre TForm1 wäre Self das selbe wie Form1 für Delphi.

Zitat von djpaull:
Folgendes fehlt mir im Moment: Beim Click auf den MenuItemXY soll der Browser zu dessen Caption oder Name navigieren.
Delphi-Quellcode:
procedure TForm1.MenuClick(Sender: TObject);
begin
  WebBrowser1.Navigate((Sender as TMenuItem).Caption);
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz