AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VCL Styles setzen verursacht ListIndex über Maximum Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

VCL Styles setzen verursacht ListIndex über Maximum Fehler

Ein Thema von ConstantGardener · begonnen am 20. Dez 2011 · letzter Beitrag vom 20. Dez 2011
Antwort Antwort
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
375 Beiträge
 
Delphi 10.4 Sydney
 
#1

VCL Styles setzen verursacht ListIndex über Maximum Fehler

  Alt 20. Dez 2011, 17:45
Hallo in die Runde,

ich habe hier ein etwas eigenartiges Problem. Ich versuche die neuen VCL Styles im Programm zu setzen und das Programm steigt mir mit einem Listindex größer als Maximum (1) komplett aus. Das Problem ist das ich das Verhalten in einem Testprogramm in dem ich exakt das selbe tue nicht nachstellen kann.

Also 3 Probleme:

1. Warum schmiert mir die App bei einem TrySetStyle mit validem StyleName (ausgelesen aus TStylemanager) ab? Wenn sie den Style nicht setzen kann dann doch bitte ein FALSE zurückliefern.
2. Warum funktioniert es mir einer TestApp ohne Probleme? Ich verwende hier einige wenige TMS-Kompos (TSmoothTimeline, TSmoothCalendar) kann es daran liegen? Als ich sie in meiner Testapp hatte funktionierte alles perfekt.
3. Wenn ich unter OPTIONEN->Erscheinungsbild den Style von Anfang an auf einen nicht-Windows-Style setzte läuft die App ohne Probleme. Ich will aber dem Kunden die Wahl lassen.

Hat irgendwer von Euch schon mit den Styles rum gespielt und hatte ähnliche Probleme oder eine Idee? Das lässt sich auch aber sowas von schlecht debuggen
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: VCL Styles setzen verursacht ListIndex über Maximum Fehler

  Alt 20. Dez 2011, 19:22
Das Ergebnis meiner Spielereien um mal die VCl-Styles auszuprobieren:
Delphi-Quellcode:
procedure TfrmMain.acStylesExecute(Sender: TObject);
var
  i: NativeInt;
  n: NativeInt;
  sl: TStringList;
  s: String;
begin
  dlgStyles := TdlgStyles.Create(self);
  try
    sl := TStringList.Create;
    n := Length(TStyleManager.StyleNames) - 1;
    for i := 0 to n do
    begin
      sl.Add(TStyleManager.StyleNames[i]);
    end;
    n := sl.Count - 1;
    sl.Sort;
    s := TStyleManager.ActiveStyle.Name;
    dlgStyles.lbxVCLStyles.Items.Clear;
    for i := 0 to n do
    begin
      dlgStyles.lbxVCLStyles.Items.Add(sl[i]);
    end;
    i := dlgStyles.lbxVCLStyles.Items.IndexOf(s);
    dlgStyles.lbxVCLStyles.ItemIndex := i;
    if dlgStyles.ShowModal = mrOk then
    begin
      i := dlgStyles.lbxVclStyles.ItemIndex;
      TStyleManager.TrySetStyle(dlgStyles.lbxVclStyles.Items[i]);
    end;
  finally
    FreeAndNil(dlgStyles);
  end;
end;
dlgStyles ist einfach eine Dialogbox mit einer Listbox lbxVclStyles und zwei Buttons btnOk und btnCancel. Das Ganze wird in einer Action acStyles gepackt.

Funktioniert bei mir ohne Probleme...

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
375 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: VCL Styles setzen verursacht ListIndex über Maximum Fehler

  Alt 20. Dez 2011, 22:30
Ja das klappt bei mir auch ohne Probleme in einer TestApp. In einer meiner realen App's geht das schief. Ich bekomme die Styles zur Laufzeit nicht gesetzt. Wie gesagt zum Start der App funktioniert alles wie erwartet.
Andreas Schachtner
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:25 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