![]() |
<Return> in Stringgrid simulieren [vorerst erledigt]
Hi,
ich habe hier ein Stringgrid in welches ich manuell Daten eingebe. Ich bestätige die Eingabe mit Return und springe in die nächste Spalte. Nun habe ich noch eine Suchfunktion. Momentan ist das 2. Form, auf der ich die Suchbegriffe eintrage und suche. Ist das richtige gefunden, so soll in einer Spalte der gefundene Wert eingetragen und sofort weiter in die nächste Spalte gesprungen werden. Ohne noch einmal Return zu drücken.
Delphi-Quellcode:
Das ist im OnKeyDown der Hauptform und ich habe den Verdacht, daß es so nicht geht. Also Im OnKeyDown das OnKeyPress explizit aufzurufen. Oder kann man das so machen ? Stand der Dinge ist der, daß es auf einer Form geht und auf anderer nicht. Der Zusammenhang ist mir dabei noch unklar.
frmSuch := TfrmSuch.Create(self);
frmSuch.ShowModal; if frmSuch.gefunden then with sg do begin key := VK_RETURN; Cells [1,Row] := frmSuch.lbl.Caption; Col := 1; ch := chr (key); sgNrKeyPress(Sender,ch); key := ord (ch); end; frmSuch.Close; Wie sollte man so etwas im Prinzip machen ? Soll ich vielleicht nur eine Form verwenden ? Leider ist der Programmteil schon älter und ich weiß gar nicht mehr, warum überhaupt 2 Forms da sind. :P Ja, ich weiß, immer schön alles kommentieren. :mrgreen: |
Re: <Return> in Stringgrid simulieren
ich habe ein bißchenProbleme dein problem zu verstehen (das habe ch hier irgendwie viel zu oft)
Aber ich probiere es trotzdem mal:
Delphi-Quellcode:
ist eiegtnlcih ein Einzeiler, passt nur nichtmehr auf den Bildschirm (bei mir zumindest) :-)
var x,y:integer;
with form1.mystringGrid do begin for x:=0 to ColCount -1 do for y :=0 to RowCount do if pos({Suchwort},Cells[x,y]) > -1 then ResultStringGrid.Cells[{Wohin im Resultgrid auch immer}] :=Cells[x,y]; end; |
Re: <Return> in Stringgrid simulieren
Äh Yankee. :gruebel: Es geht darum, etwas zu finden und dieses dem StringGrid richtig mitzuteilen und die entsprechende Zelle zu bestücken, wobei sie eben automatisch bestätigt werden soll. Nicht etwa, um in einem vorhandenen Stringgrid etwas zu suchen. 8) Steht aber alles in der Fragestellung oder wo liegen genau die Unklarheiten ?
|
Re: <Return> in Stringgrid simulieren
Delphi-Quellcode:
// in nächste Zeile gehen
StringGrid1.Row := StringGrid1.Row +1; // in 2. spalte gehen StringGrid1.Col := 1; // es wird von 0 an gezählt |
Re: <Return> in Stringgrid simulieren
Sehr geehrter Herr Schmidt, so nicht ! :mrgreen: Nein, ich habe mir heute den halben Mittag Dein Fehler-Tuto Assert usw. durchgelesen, um zu sehen, wie ich der Sache eventuell auf die Spur komme. Der Effekt wird mit Sicherheit durch meinen eigenen Code verursacht. Ich bräuchte nur eine gute Spur. Col := Col +1 nützt da nichts. :P Das kann ich schon. :stupid:
Vielleicht noch was wichtiges : die Cols sind im OI eingestellt. Die Rows werden zur Laufzeit bei Bedarf erweitert. |
Re: <Return> in Stringgrid simulieren
Zitat:
Bis jetzt aheb cih das so verstanden, dass du zwei StringGrids hast. In einem StringGrid sind gaaanz viele Daten. Wenn du eine Suche startest, sollen die Zellen, wo was gefunden wurde im zweitem StringGrid angezeigt werden... |
Re: <Return> in Stringgrid simulieren
Zitat:
Man beachte auch den Titel. Das Thema ist "vorerst erledigt". Das ganze geht momentan schon wieder und die Ursache ist auch eingekreist. Problematisch war, daß der Fehler sich schon ziemlich weit fortgepflanzt hatte. Es gilt eben konsequent : einmal OOP immer OOP ! Wer davon abweicht, der kann suchen. Da aber nun klar ist, woran es lag, ist das korrigieren an einer Stelle ausreichend und wirkt sich dann direkt überall aus. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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-2025 by Thomas Breitkreuz