AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TAB Reihenfolge = Verzweiflung ?

Ein Thema von Cosamia · begonnen am 8. Feb 2010 · letzter Beitrag vom 8. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Cosamia
Cosamia

Registriert seit: 27. Feb 2007
Ort: Emmendingen
221 Beiträge
 
Delphi 2007 Professional
 
#1

TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 12:39
Hallo Zusammen,

ich habe ein kleines Problem mit der TAB Reihenfolge bei in Laufzeit erzeugten EDIT Boxen.
Ich plaziere mit Angabe von Reihe und Spalte Panels in einem Stringgrid. Auf diese Panels werden dann eine EditBox und ein Paar SpinButtons gesetzt.
Jetzt hüpft aber der Cusor bei TAB aber wie Wild hin und her, und hält sich nicht an die vorgegebene Reihenfolge.

Ich denke in habe mit dem Parent etwas falsch gemacht. Oder sieht jemand noch einen anderen Fehler?

Danke und Gruss.

Delphi-Quellcode:
     {Panel malen}
      NewPanel := TJvPanel.Create(self);
      with NewPanel do begin
        BoundsRect := AlignGrid.CellRect(myxdata[n].row,myxdata[n].col);
        Width := intPanelWidth;
        Height := intPanelHeight;
        Parent := AlignGrid;
        ParentBackground := true;
        FlatBorder := true;
        Tabs := strtoint(inttostr(myxdata[n].col*10)+inttostr(myxdata[n].row*10)) ;
        TabOrder := tabs;
        MyControls.add(NewPanel);
      end;

     {Edit malen}
      NewEdit := TEdit.Create(NewPanel);
      with NewEdit do begin
        Top := EDITYPOS;
        left := EDITxPOS;
        Width := EDITWidth;
        Height := EDITHeight;
        Parent := NewPanel;
        ActiveColor := $00FEEFDD;
        showhint := true;
        roundit := mydata[n].step;
        doformatValue := true;
        Editlabel.Caption := myxdata[n].caption;
        midpoint := calcmidpoint(minvalue,maxvalue,roundit);
        text := '';
        OnOutOfRange := MyOutOfRange;
        Dbid := mydata[n].id;
        MyControls.add(NewEdit);
      end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:10
Deine Berechnung stimmt nicht.

PS: Wenn du die Panels in der Reihenfolge erstellst, in welcher sie sichtbar sind, dann stimmt die Tabreihenfolge doch schon.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Cosamia
Cosamia

Registriert seit: 27. Feb 2007
Ort: Emmendingen
221 Beiträge
 
Delphi 2007 Professional
 
#3

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:12
Das Problem ist, dass sich die Reihenfolge immer ändert. Die Felder werden dynamisch erzeugt, und eine Vorsortierung ist nicht möglich.

Was stimmt an der Berechnung nicht?

Danke.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:19
Delphi-Quellcode:
strtoint(
  inttostr(myxdata[n].col * 10)
  +
  inttostr(myxdata[n].row * 10)
)
Ich denke mal, da ist ein *10 zuviel.


PS:
0 <= TabOrder < Parant.ControlCount
Und wenn an der Position schon ein anderes Control liegt, dann wird das TabOrder dieses alle anderen nachfolgenden Controls verschoben.
$2B or not $2B
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#5

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:24
Und warum überhaupt dieser irrwitzige Weg über StrToInt(IntToStr+IntToStr) und nicht gleich col*10+row oder row*10+col?
  Mit Zitat antworten Zitat
Benutzerbild von Cosamia
Cosamia

Registriert seit: 27. Feb 2007
Ort: Emmendingen
221 Beiträge
 
Delphi 2007 Professional
 
#6

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:27
Zitat von gammatester:
Und warum überhaupt dieser irrwitzige Weg über StrToInt(IntToStr+IntToStr) und nicht gleich col*10+row oder row*10+col?
Weil mir nichts besseres eingefallen ist.

ROW = 0
COL = 1

TABSTEP = 100;

So sollte eine "sinnvolle" Reihenfolge erezugt werden.

Die Felder werden in unsortierter Reihenfolge erzeugt, der TAB Sprung soll aber Reihen oder Spaltenweiße ablaufen. So kamm ich die irrwitzige Idee.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:38
TabOrder kann mit solchen Werten aber nicht umgehen.

TabOrder ist der Index in einer Tab-Verwaltungliste des Eltern-Controls.


Und ganz so eindeutig wäre dieses auch nicht unbedingt gewesen.
101 1 = 101010
1 101 = 101010
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Cosamia
Cosamia

Registriert seit: 27. Feb 2007
Ort: Emmendingen
221 Beiträge
 
Delphi 2007 Professional
 
#8

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:40
Zitat von himitsu:
TabOrder kann mit solchen Werten aber nicht umgehen.

TabOrder ist der Index in einer Tab-Verwaltungliste des Eltern-Controls.


Und ganz so eindeutig wäre dieses auch nicht unbedingt gewesen.
101 1 = 101010
1 101 = 101010
Ja, da hast du recht.

Auf dem StringGrid gibt ausser den dynamsich erzeugten keine weiteren Controlls. Daher sollte der Index auf 1 stehen.

Gibt es denn eine Möglichkeit das Grid Spaltenweisen zu durchlaufen, und abzufragen ob sich darauf ein EDIT Controll befindet?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:41
Ich kann mich irren, aber wie wäre es denn mit Row * ColCount + Col + 1?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Cosamia
Cosamia

Registriert seit: 27. Feb 2007
Ort: Emmendingen
221 Beiträge
 
Delphi 2007 Professional
 
#10

Re: TAB Reihenfolge = Verzweiflung ?

  Alt 8. Feb 2010, 13:49
Zitat von DeddyH:
Ich kann mich irren, aber wie wäre es denn mit Row * ColCount + Col + 1?
Da passieren dann ganz wilde Dinge.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:58 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