![]() |
Listenindex überschreitet das Maximum
Hallo
ich habe folgene Procedure mit der ich Buttons in einer Outlookbar dynamisch erzeuge: procedure addJvOutlookButton(page:Integer;BtnIndex:Integer;C aption:Str15;ImgIndex:Integer;tag:Integer); begin jvoutlookbar1.Pages[page].Buttons.Insert(BtnIndex); jvoutlookbar1.Pages[page].Buttons[BtnIndex].ImageIndex:=imgIndex; jvoutlookbar1.Pages[page].Buttons[BtnIndex].Caption:=caption; jvoutlookbar1.Pages[page].Buttons[BtnIndex].tag:=Tag; end; Während des Programms erstell ich dann folgenden Button: addJvOutlookButton(0,0,'Test',42,102); später möchte ich dann die Caption des Buttons ändern: JvOutlookBar1.ActivePage.Buttons[102].Caption:='Test2'; dabei kommt immer die Fehlermeldung: Listenindex überschreitet das Maximum (102) Kann mir da jemand weiterhelfen? |
Re: Listenindex überschreitet das Maximum
Bitte setze die [delphi]-Tags um die Code-Blöcke.
Die Meldung heißt soviel, dass es den Index 102 nicht gibt. Ich weiß nicht, wo du das aufrufst (Schleife?), doch ich denke, irgendwas lässt du von 1 - 102 laufen, anstatt von 0 - 101, oder so ähnlich. Kann es aber nur vermuten. |
Re: Listenindex überschreitet das Maximum
Benutz doch bitte die Delphi-Tag's ...
Der Fehler sieht mir stark nach vergessenem -1 aus .. Sprich Index fängt bei 0 nicht bei 1 an Benutzt du ne Schleife zum erstellen ?? EDIT: ... misst .. zu lahm ^^ |
Re: Listenindex überschreitet das Maximum
Du erstellst den Button ja unter Pages[page] und versuchst dann über ActivePage wieder darauf zuzugreifen.
Bist du dir sicher, daß ActivePage und Pages[page] das selber ist, oder zumindestens in der ActivePage mindestens 103 Buttons rumliegen? |
Re: Listenindex überschreitet das Maximum
Hallo Lucky83,
dein Button hat den Index 0 und den tag value 102, du verwendest aber den tag value als index - macht das Sinn? Grüße vom marabu |
Re: Listenindex überschreitet das Maximum
Also ich will es zwar in einer for-Schleife aufrufen (hatte -1 nicht vergessen), aber da immer der Fehler kan hab ich zum Testen jetzt einfach einen Button angelegt. Durch klicken soll sich dann die Caption ändern.
Ich hab mehrer pages, welche mehrere Buttons enthalten. Auf der Page auf der ich mich gerade befinde (also activePage) gibt es 6 Buttons und der Button mit dem Tag 102 soll geändert werden. Ist das verständlich? War im erklären noch nie gut und bin ebenfalls noch Anfänger. @marabu die procedure war schon vorhanden. Soll Update an dem Programm vornehmen. Wie soll ich es denn sonst machen? |
Re: Listenindex überschreitet das Maximum
Na dann ist's doch klar.
Es gibt 6 Buttons, demnach Index 0 bis 5. Also wird es dort keinen Button mit dem Index 102 geben :?: |
Re: Listenindex überschreitet das Maximum
Aber der Button mit dem Tag 102 hat ja nicht auch den Index 102. Aber genau den versuchst du später mit
Delphi-Quellcode:
aufzurufen. Der existiert aber nicht, da du ja schließlich nur 6 Buttons hast. Entweder, du merkst dir anstatt des Tags den Index, oder du schreibst dir eine Funktion, die dir den Index eines Buttons anhand seines Tags zurückgibt.
JvOutlookBar1.ActivePage.Buttons[102].Caption:='Test2';
//Edit: ZB:
Delphi-Quellcode:
function GetBtnIndexByTag(aPage, aTag : Integer) : Integer;
begin Result := high(jvoutlookbar1.Pages[aPage].Buttons); while (Result >= low(jvoutlookbar1.Pages[aPage].Buttons)) and (jvoutlookbar1.Pages[aPage].Buttons[Result].Tag <> aTag) do dec(Result); end; |
Re: Listenindex überschreitet das Maximum
*mist*
ja danke, wenn man mal auf dem Schlauch steht........... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 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