Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Internet per Edit öffnen (https://www.delphipraxis.net/186169-internet-per-edit-oeffnen.html)

GroZ 10. Aug 2015 07:58

Delphi-Version: 7

Internet per Edit öffnen
 
Hi ich möchte eine Suchleiste programmieren und habe es bisher so hinbekommen das er nur firefox sehr oft öffnet.

Delphi-Quellcode:
procedure TForm1.GooglesucheChange(Sender: TObject);
begin
  ShellExecute(handle, nil, Pchar('d:\firefox\Firefox.exe'), nil, nil, SW_SHOW)
end;
Wie kann ich ihm sagen das er das suchen soll was in dem Memo steht?

Daniel 10. Aug 2015 08:10

AW: Internet per Edit öffnen
 
Viele Wege führen nach Rom. Einer davon: Du könntest eine URL (z.B. zu Google) zusammenbasteln, die den Suchbegriff enthält. Und dann machst Du ein ShellExecute auf diese URL und veranlasst Windows damit, diese im Standard-Browser zu öffnen. Berücksichtige dabei unbedingt die Angabe http/https, damit Windows den String auch als URL erkennt.

Alternativ könntest Du Dich auch mit den APIs der Such-Dienstleister auseinandersetzen und einen REST-Request absenden. Damit würdest Du Dich vom Browser lösen, falls das interessant ist.

GroZ 10. Aug 2015 08:22

AW: Internet per Edit öffnen
 
Könntest du mir ein Beispiel zeigen? Das mit der Url zusammenbasteln wäre denk ich besser.
also theoretisch so?
Delphi-Quellcode:
var x : string;
begin
 x := Edit1.Text;
ShellExecute(handle, nil, Pchar('https://www.X.de'), nil, nil, SW_SHOW)
Wäre das so richtig? :D

Daniel 10. Aug 2015 08:30

AW: Internet per Edit öffnen
 
Ich kann es gerade nicht testen, aber vom draufgucken sieht es gut aus.
Probiere es doch aus. ;-)

Danach gehst Du mit einem Browser Deiner Wahl zu einer Suchmaschine Deiner Wahl und suchst nach einem Begriff. Und dann schaust Du Dir in der Adresszeile des Browsers an, wie da der Suchbegriff integriert wurde.

Im ersten Schritt solltest Du nach einfachen Begriffen ohne Leerzeichen und Umlaute suchen. Wenn das zuverlässig geht, müsstest Du Dich darum kümmern, wie Sonderzeichen (Umlaute, Leerzeichen, Satzzeichen etc.) in URLs kodiert werden. Mögliches Stichwort hier "URLEncode".

GroZ 10. Aug 2015 08:32

AW: Internet per Edit öffnen
 
das ist jetzt exakt mein code:

Delphi-Quellcode:
procedure TForm1.GooglesucheChange(Sender: TObject);

var x           : string;
    key         : OleVariant;

begin
  x := GoogleSuche.Text;
  if key = #13 then
  begin
  ShellExecute(handle, nil, Pchar('https://www.X.de'), nil, nil, SW_SHOW)
  end;
end;

end.
Bloß das mit dem Enter klappt noch nicht so ganz :D

haentschman 10. Aug 2015 08:39

AW: Internet per Edit öffnen
 
Hallo,
Zitat:

Bloß das mit dem Enter klappt noch nicht so ganz
...weil du im verkehrten Eventhandler bist. Doppelklicke im OI deines Edits mal bei OnKeyPress. :zwinker: Da bekommst du auch dann den key geliefert der das ausgelöst hat. Den kannst du dann auswerten.

ringli 10. Aug 2015 08:39

AW: Internet per Edit öffnen
 
Ich denke das OnChange-Event ist für deine Zwecke nicht das richtige. Wenn du mit der Auswertung von Tasten (z.B. die Enter-Taste) arbeiten willst, würde ich an deiner Stelle das OnKeyDown-Event des Formulars verwenden. Nicht vergessen in den Formulareigenschaften "KeyPreview" auf True zu setzen.

GroZ 10. Aug 2015 08:49

AW: Internet per Edit öffnen
 
Ok Danke.
Habe es probiert und bekomme die anweisung '[Fehler] Unit1.pas(38): Unbekannte Anweisung: 'X'
Delphi-Quellcode:
procedure TForm1.GooglesucheKeyDown(Sender: TObject;
var Key: Word;
  Shift: TShiftState);
    X : string;
begin
  x := GoogleSuche.Text;
  if key = #13 then
  begin
  ShellExecute(handle, nil, Pchar('https://www.X.de'), nil, nil, SW_SHOW)
  end;
end;

end.

Daniel 10. Aug 2015 08:52

AW: Internet per Edit öffnen
 
Um 'X' als lokale Variable zu deklarieren, musst Du das Wort "var" davor schreiben.


Am Rande bemerkt: Du scheinst Deine ersten Schritte in Delphi zu machen. Das ist gut. :-) Aber um Dir selbst einiges an Frust zu ersparen, solltest Du einen kurzen Blick z.B. in den Delphi Crash-Kurs (http://www.delphi-treff.de/tutorials...phi-crashkurs/) werfen. Dann bist sehr bald in der Lage, solche Fehler wie diesen auch selbst zu erkennen.
:-)

BadenPower 10. Aug 2015 08:57

AW: Internet per Edit öffnen
 
Und die nächste Antwort lautet:
VK_RETURN

Und danach kommt noch die Frage:
Warum erscheint nun "Die Webseite kann nicht angezeigt werden".

GroZ 10. Aug 2015 08:59

AW: Internet per Edit öffnen
 
ohh gott was nen fehler >.<
Und ich dachte ich krieg es langasam hin haha. Man lernt nie aus xD
Hab mir schon viele Tutorials angesehen und manche entsprechen nicht meinem Bildungsstand (Hallo Welt) und manche sind mir noch zu hoch :D. Ich komm aber immer besser klar :P

Bekomme jetzt diesen Fehler bei der Schleife für Enter:
[Fehler] Unit1.pas(41): Inkompatible Typen

GroZ 10. Aug 2015 09:00

AW: Internet per Edit öffnen
 
@BadenPower
The God! :Glaskugel:

Sir Rufo 10. Aug 2015 11:25

AW: Internet per Edit öffnen
 
Kleiner Tip:

Teile das in unterschiedliche Methoden auf, dann wird es erheblich übersichtlicher und dadurch einfacher zu verstehen/warten:
Delphi-Quellcode:
procedure TForm1.GooglesucheKeyDown(Sender: TObject;
var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_RETURN then
  begin
    SucheBeiGoogle( GoogleSuche.Text );
  end;
end;

// Ich habe mal deine bisherige Lösung hierrein verwurstet
// Evtl. fällt dir jetzt auch dein Fehler auf ;o)
procedure TForm1.SucheBeiGoogle( const Suchbegriffe: string );
begin
  ShellExecute(handle, nil, Pchar('https://www.' + Suchbegriffe + '.de'), nil, nil, SW_SHOW);
end;

Mavarik 10. Aug 2015 11:54

AW: Internet per Edit öffnen
 
Leute seit Ihr heute morgen wieder gemein...

Zitat:

Zitat von Sir Rufo (Beitrag 1311683)
Delphi-Quellcode:
// Ich habe mal deine bisherige Lösung hierrein verwurstet
// Evtl. fällt dir jetzt auch dein Fehler auf ;o)
procedure TForm1.SucheBeiGoogle( const Suchbegriffe: string );
begin
  ShellExecute(handle, nil, Pchar('https://www.google.de/?gws_rd=ssl#q=' + Suchbegriffe), nil, nil, SW_SHOW);
end;

Wir ja noch schlimm genug, wenn es mehr als ein Suchbegriff ist...

Sir Rufo 10. Aug 2015 12:04

AW: Internet per Edit öffnen
 
Zitat:

Zitat von Mavarik (Beitrag 1311684)
Leute seit Ihr heute morgen wieder gemein...

Nein, das ist etwas, was er mit seinem Wissensstand selber hätte lösen können. Er ist lediglich durch seinen Spaghetticode durcheinander gekommen.

Zitat:

Zitat von Mavarik (Beitrag 1311684)
Wir ja noch schlimm genug, wenn es mehr als ein Suchbegriff ist...

Das wäre allerdings ein schönes Beispiel für einen Unit-Test - was aber dann diesen Thread einfach nur sprengen würde :)

GroZ 10. Aug 2015 13:12

AW: Internet per Edit öffnen
 
@SirRufo ich denke ich weiß wie du es meinst im sinne von Lösung :D.

Luckie 10. Aug 2015 23:43

AW: Internet per Edit öffnen
 
Es hilft auch ungemein, wenn man mal genau formuliert, was man eigentlich will. Das "Internt offnen"? :shock: (Aber bitte schließe es erst, wenn ich es nicht mehr brauche. :mrgreen:) Man kann ein Programm/eine Anwendung öffnen oder eine Dose Ravioli :P

Was du willst ist den Standardbrowser öffnen und ihm gleich eine bestimmte Webseite anzeigen.

Dann findet man wahrscheinlich schon die Lösung mit der Foren suche.

GroZ 11. Aug 2015 07:15

AW: Internet per Edit öffnen
 
Naja eig wollte ich die Seite die ich in der Suchleiste eingebe suchen. Das klappt jetzt auch so wie ich das möchte. bin derzeit dabei alles zu verbinden und die Funktionen einzubauen.

Mavarik 11. Aug 2015 07:33

AW: Internet per Edit öffnen
 
Zitat:

Zitat von GroZ (Beitrag 1311742)
die Seite die ich in der Suchleiste eingebe suchen.

Also auf deutsch... Du willst die URL die Du in ein
Delphi-Quellcode:
TEdit
eingegeben hast im Browser öffnen.

NIX Suchen... :stupid:

GroZ 11. Aug 2015 07:42

AW: Internet per Edit öffnen
 
ich gebe
Delphi-Quellcode:
'www.' + Edit1.Text + '.de'
ein

redox 11. Aug 2015 09:38

AW: Internet per Edit öffnen
 
Zitat:

Zitat von GroZ (Beitrag 1311746)
ich gebe
Delphi-Quellcode:
'www.' + Edit1.Text + '.de'
ein

Schau' Dir auch die Function "Trim" an :wink:

Delphi-Quellcode:
'www.' + Trim(Edit1.Text) + '.de'
In D7 auf "Trim" klicken und dann [F1].

GroZ 11. Aug 2015 09:42

AW: Internet per Edit öffnen
 
dann würde aber doch ohne .de gegoogelt werden oder? wenn ich es richtig verstanden habe :?

"Trim entfernt entfernt alle am Anfang und Ende des mit S angegebenen Strings vorhandenen Leer- und Steuerzeichen."

Sherlock 11. Aug 2015 09:44

AW: Internet per Edit öffnen
 
Welcher Teil von '.de' sieht für Dich nach einem Leer- oder Steuerzeichen aus?

Abgesehen davon wendest Du trim ja nicht auf alles an, sondern nur auf den Inhalt des Edits.
Und nochwas, Du willst doch nciht googlen, sondern eine Webseite aufmachen. Oder warum machst Du aus jedem Wort einen deutschen Weblink?

Sherlock

BadenPower 11. Aug 2015 09:49

AW: Internet per Edit öffnen
 
Zitat:

Zitat von GroZ (Beitrag 1311765)
dann würde aber doch ohne .de gegoogelt werden oder? wenn ich es richtig verstanden habe :?

Es wird bei diesem Aufruf hier (egal mit oder ohne Trim()) überhaupt nicht "gegoogelt", sondern nur eine Seite im Stanbdardbrowser aufgerufen.

Wenn Du XYZ in Dein Edit-Feld eingibst, dann versucht der Browser

www.XYZ.de

aufzurufen.

Gibst Du

XYZ.com

ein, dann ruft der Browser

www.XYZ.com.de

auf.

GroZ 11. Aug 2015 09:51

AW: Internet per Edit öffnen
 
Hä jetzt check ich gar nix mehr^^ und wenn ich ne seite mit "-" eingeben möchte? Gibt ja auch seiten die "-" in ihrer URL haben.

BadenPower 11. Aug 2015 09:55

AW: Internet per Edit öffnen
 
Zitat:

Zitat von GroZ (Beitrag 1311771)
Hä jetzt check ich gar nix mehr^^ und wenn ich ne seite mit "-" eingeben möchte? Gibt ja auch seiten die "-" in ihrer URL haben.

Wo siehst Du in

Ich-bin-toll

ein Leer oder Steuerzeichen, welches durch Trim() entfernt würde?

Diese Eingabe würde nun bei Dir

www.Ich-bin-toll.de

aufrufen.

Was möchtest Du nun eigentlich?

Googeln oder nur eine Seite aufrufen?

GroZ 11. Aug 2015 09:57

AW: Internet per Edit öffnen
 
Ich hab gedacht das '-' auch als Steuerzeichen gilt. :oops:

mb

GroZ 11. Aug 2015 10:01

AW: Internet per Edit öffnen
 
Zitat:

Zitat von BadenPower (Beitrag 1311772)
Zitat:

Zitat von GroZ (Beitrag 1311771)
Hä jetzt check ich gar nix mehr^^ und wenn ich ne seite mit "-" eingeben möchte? Gibt ja auch seiten die "-" in ihrer URL haben.

Wo siehst Du in

Ich-bin-toll

ein Leer oder Steuerzeichen, welches durch Trim() entfernt würde?

Diese Eingabe würde nun bei Dir

www.Ich-bin-toll.de

aufrufen.

Was möchtest Du nun eigentlich?

Googeln oder nur eine Seite aufrufen?

Was müsste ich eingeben um zu googlen?

redox 11. Aug 2015 10:08

AW: Internet per Edit öffnen
 
Steht in #14 :cyclops:

BadenPower 11. Aug 2015 10:11

AW: Internet per Edit öffnen
 
Zitat:

Zitat von GroZ (Beitrag 1311775)
Was müsste ich eingeben um zu googlen?

Die Hinweise hierzu wurden Dir bereits in Post

#4
#13 (bewußt falsch, um Dir den Fehler zu zeigen)
#14
#15

gegeben.

Und schau Dir Deine Anwort in #16 an, dort läßt Du uns vermuten, dass Du die Antworten zu Suche mit Google bereits verstanden hättest.

GroZ 11. Aug 2015 10:21

AW: Internet per Edit öffnen
 
Ich war etwas verwirrt wegen 'www.google.de/?gws_rd=ssl#q=' hab es aber selber gecheckt weil wenn ich www.google.de eingebe ja sofort das als URL erscheint^.^

redox 11. Aug 2015 10:49

AW: Internet per Edit öffnen
 
Dir fehlen noch einige Delphi-Grundlagen :!:

Demnächst willst Du - vermutlich - wissen, wie man Programmeinstellungen speichern und wieder laden/öffnen kann.

Schau' Dir dann dazu den Krempel zu TINIFILE an...

Und weshalb stehst Du bei Daniel eigentlich unter "Welpenschutz" :?:

MfG

GroZ 11. Aug 2015 11:03

AW: Internet per Edit öffnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich weiß doch das mir noch einiges fehlt :P mache aktiv mit Delphi was seit 1 Woche. Hab jetzt die AppBar fürs erste fertig hier mal ein kleines Bild.
Ich wüsste nix das ich unter Welpenschutz stehe. Wie kommst drauf?

Sir Rufo 11. Aug 2015 11:05

AW: Internet per Edit öffnen
 
Zunächst sehe ich keine Probleme bei den Delphi-Grundlagen, sondern am grundsätzlichen Verständnis, was passieren muss, dass das Gewünschte passiert (völlig losgelöst von der Programmierung).

Wenn ich eine Web-Seite aufrufen möchte, dann muss ich dem Browser eine URL "http://www.example.com/subpage?variable=value" geben. Diese kann er dann aufrufen.

Will ich aber bei einer Suchmaschine nach Begriffen suchen, dann muss ich zunächst in Erfahrung bringen, wie das bei dieser Suchmaschine denn abläuft.

Wenn ich diese Informationen zusammen habe erst dann kann ich mit der Umsetzung loslegen, und erst dann werden die Grundlagen relevant, die ich für diese Umsetzung brauche.

Im Moment sind wir aber wohl noch vor dem erst dann :mrgreen:

GroZ 11. Aug 2015 11:20

AW: Internet per Edit öffnen
 
Naja ich bin grundsätzlich einer der mit geschlossenen Augen durch die Welt geht^^ ich weiß zwar das sich die URL ändert wenn man was sucht aber war bisher immer der Meinung das die URL von bsp. Google gleich bleibt bis man was eingibt. Naja wieder was neues gelernt^^

redox 11. Aug 2015 11:29

AW: Internet per Edit öffnen
 
Zitat:

Zitat von GroZ (Beitrag 1311788)
Ich weiß doch das mir noch einiges fehlt :P mache aktiv mit Delphi was seit 1 Woche. Hab jetzt die AppBar fürs erste fertig hier mal ein kleines Bild.
Ich wüsste nix das ich unter Welpenschutz stehe. Wie kommst drauf?

Für nur eine Woche Delphi bist Du echt genial - könnte man sich nicht mit Copy&Paste&Google was zusammenklicken, dessen Funktionalität dann aber bestenfalls kompiliert :evil: ...

Welpenschutz: Wurde z.B. zwischen #20 und #21 was (von Daniel) gelöscht?

Laß Dich nicht von Deinem Ziel ablenken, aber hör' gefälligst auf die D7-Gruftis/alten D7-Hasen (zu denen ich mich nicht zählen darf). :oops:


Und verwexle DX7 nicht mit D7 :wink:

Sir Rufo 11. Aug 2015 11:46

AW: Internet per Edit öffnen
 
Zitat:

Zitat von GroZ (Beitrag 1311793)
Naja ich bin grundsätzlich einer der mit geschlossenen Augen durch die Welt geht^^ ich weiß zwar das sich die URL ändert wenn man was sucht aber war bisher immer der Meinung das die URL von bsp. Google gleich bleibt bis man was eingibt. Naja wieder was neues gelernt^^

Ähm, die URL der google-Startseite ändert sich auch nicht ... aber du willst ja den normalen Vorgang
  1. Google aufrufen (-> "https://www.google.de")
  2. Suchbegriffe eingeben
  3. Suchanfrage losschicken (-> "https://www.google.de/search?q=<Suchbegriffe>")
  4. Suchergebnis erscheint
so umbiegen, dass du von deiner Anwendung direkt den Punkt 3 startest, damit im Browser dann Punkt 4 auftaucht.

Diese Analyse wäre deine erste Aufgabe gewesen. Und ja, offene Augen sind da Minimalanforderung.

GroZ 11. Aug 2015 12:25

AW: Internet per Edit öffnen
 
Zitat:

Zitat von redox (Beitrag 1311795)
Zitat:

Zitat von GroZ (Beitrag 1311788)
Ich weiß doch das mir noch einiges fehlt :P mache aktiv mit Delphi was seit 1 Woche. Hab jetzt die AppBar fürs erste fertig hier mal ein kleines Bild.
Ich wüsste nix das ich unter Welpenschutz stehe. Wie kommst drauf?

Für nur eine Woche Delphi bist Du echt genial - könnte man sich nicht mit Copy&Paste&Google was zusammenklicken, dessen Funktionalität dann aber bestenfalls kompiliert :evil: ...

Welpenschutz: Wurde z.B. zwischen #20 und #21 was (von Daniel) gelöscht?

Laß Dich nicht von Deinem Ziel ablenken, aber hör' gefälligst auf die D7-Gruftis/alten D7-Hasen (zu denen ich mich nicht zählen darf). :oops:


Und verwexle DX7 nicht mit D7 :wink:

Ja anscheinend aber ich hab damit nix zu tun :P
Ich google natürlich sonst würde ich kaum was zu stande kriegen :D ich gebe mir mühe haha

GroZ 11. Aug 2015 12:51

AW: Internet per Edit öffnen
 
nein @deddyH habe die AppBar heute fertiggestellt sieht jetzt spitze aus und nach einer modernen Appbar.
Wenn mir einer sagt wie ich ein Screenshot vom kompletten Desktop mache könnte ich euch alles zeigen^^. Habe SnagIt und mit dem kann man nur IMHO einzelne Fenster screenshoten

Sir Rufo 11. Aug 2015 12:53

AW: Internet per Edit öffnen
 
Zitat:

Zitat von GroZ (Beitrag 1311812)
Wenn mir einer sagt wie ich ein Screenshot vom kompletten Desktop mache

Drücke die Taste Drucken


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:58 Uhr.
Seite 1 von 2  1 2      

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