![]() |
Stringgrid Zeileweise abarbeiten
Hallo,
ich habe ein Stringgrid in dem stehen URL's und die möchte ich Zeilenweise abarbeiten. Also nach dem Prinzip: Rufe URL auf, warte auf das Ergebnis (das Ergebnis ist ein Wort im Quelltext des Webbrowsers) und arbeite dann erst die nächste URL ab. Wie kann ich das am besten machen? Gruss vom Capo |
Re: Stringgrid Zeileweise abarbeiten
Möchtest du den internen Webbrowser benutzen oder den externen?
|
Re: Stringgrid Zeileweise abarbeiten
Ich verwende den EmbeddedWB von
![]() [EDIT] und wenn dann die letzte Zeile abgearbeitet ist soll er wieder von vorne beginnen. |
Re: Stringgrid Zeileweise abarbeiten
Theoretisch würde es mir auch schon reichen "manuel" eine Zeile weiter zu rücken.
Wenn am Ende angelangt wieder mit der ersten Zeile zu beginnnen. |
Re: Stringgrid Zeileweise abarbeiten
Hmm, was ist denn jetzt das Problem?
Das Lesen aus dem StringGrid oder das Abwarten bis der WebBrowser was gemeldet hat? cu Oliver |
Re: Stringgrid Zeileweise abarbeiten
Das Problem ist zur nächsten Zeile im Stringgrid zu springen um die URL auszulesen.
Das nächste Problem ist wenn ich am Ende des Stringgrids angekommen bin wieder in der ersten zeile zu beginnen. Ich will das nicht in einer Schleife machen...weilich auf den Webbrowser warten will. |
Re: Stringgrid Zeileweise abarbeiten
Dann frag doch einfach StringGrid.Row ab, lies die Zelle aus und setze Row einen weiter.
|
Re: Stringgrid Zeileweise abarbeiten
genau das ist es ja, mein Problem, wie mache ich das.
|
Re: Stringgrid Zeileweise abarbeiten
ja, oder so:
Delphi-Quellcode:
type
TForm1 = class(TForm) ... StringGrid1 : TStringGrid; ... private ... FHierBinIchGerade : integer; // <--- sollte natürlich im OnCreate noch initialisiert werden (z.B. mit 0) ... function LeseDieNaechsteZeile : string; end; ... function LeseDieNaechsteZeile : string; begin FHierBinIchGerade := FHierBinIchGerade + 1; if ( FHierBinIchGerade > StringGrid1.RowCount ) then FHierBinIchGerade := 0; Result := StringGrid1.Cells[ 0, FHierBinIchGerade ]; end; |
Re: Stringgrid Zeileweise abarbeiten
Delphi-Quellcode:
function LeseDieNaechsteZeile(StringGrid: TStringGrid): string;
begin with StringGrid do begin Row := (Row + 1) mod RowCount; // Zur nächsten Zeile springen Result := Cells[1, Row]; // Wert von aktueller Zeile / Spalte 1 auslesen end; end; |
Re: Stringgrid Zeileweise abarbeiten
Das nenne ich mal eine elegante Lösung :thumb:
|
Re: Stringgrid Zeileweise abarbeiten
Danke für eure Hilfe. Wie kann ich dann feststellen ob ich in der letzten Zeile bin und dann wieder in die erste Zeile springen?
|
Re: Stringgrid Zeileweise abarbeiten
Zitat:
|
Re: Stringgrid Zeileweise abarbeiten
Danke.... :dance:
|
Re: Stringgrid Zeileweise abarbeiten
Hi toms,
merkwürdig aber der bleibt in der letzten Zeile stehen. gruss vom Capo |
Re: Stringgrid Zeileweise abarbeiten
Dann versuch es mal mit der langen Version:
Delphi-Quellcode:
function LeseDieNaechsteZeile(const StringGrid: TStringGrid; aCol: integer = 1): string;
var aRow: Integer; begin aRow := StringGrid.Row; if aRow < Pred(StringGrid.RowCount) then Inc(aRow) else aRow := StringGrid.FixedRows; StringGrid.Row := aRow; Result := StringGrid.Cells[aCol,aRow]; end; |
Re: Stringgrid Zeileweise abarbeiten
Ja, damit hat es geklappt, muss mir aber noch die Unterschiede ansehen. Danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz