Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi FormShow mit CoolTrayIcon dauert zu lange (https://www.delphipraxis.net/145484-formshow-mit-cooltrayicon-dauert-zu-lange.html)

Matze 2. Jan 2010 17:03

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Zitat:

Zitat von AlexII
Und bei mir sieht das so aus, wenn jemand lust hat guck mal durch, vielleicht gibt's da was zu verbessern. :thumb:

Liest du, was wir hier schreiben? Nimm OnCreate und nicht OnShow. Sonst ist klar, dass bei jedem Maximieren die Anwendung erst einmal hängt, bei diesem gigantischen Code, der dann jedesmal abgearbeitet wird (ich habe ihn mir nicht angesehen).

Edit: Prüfe nie auf "= true" oder "= false".

So muss das sein:
Delphi-Quellcode:
if CheckBoxX.Checked then
oder

Delphi-Quellcode:
if not CheckBoxX.Checked then

AlexII 2. Jan 2010 17:08

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Zitat:

Edit: Prüfe nie auf "= true" oder "= false".
Wow, danke, cooler Tipp :thumb:

Matze 2. Jan 2010 17:10

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Und das hier:

Delphi-Quellcode:
case ComboBox1.Itemindex of
  3: Image9.Visible := False;
  7: Image9.Visible := False;
  21: Image9.Visible := False;
  22: Image9.Visible := False;
  24: Image9.Visible := False;
  25: Image9.Visible := False;
end;
lässt sich bsp. auch vereinfachen:

Delphi-Quellcode:
case ComboBox1.Itemindex of
  3, 7, 21, 22, 24, 25: Image9.Visible := False;
end;
Falls du wissen möchtest, wieso das mit dem Boolean-Vergleich so ist, kannst du dir das mal ansehen: Über den Umgang mit Boolean.

Edit: Achja, benenne deine Komponenten doch mal vernünftig. Du verstehst deinen Code so nämlich nur in Verbindung mit dem Formular.

Das liest sich beispielsweise sehr schlecht:

Delphi-Quellcode:
if ShowDate1.Checked=True then
begin
Label10.Visible:=True;
Label10.Caption:=FormatDateTime('dddd, d. mmmm yyyy', date);
end else Label10.Visible:=False;
Man kann erahnen, was du machst, aber viel lesbarer ist sowas, da du alleine anhand des Codes sagen kannst, was genau in der GUI passiert:

Delphi-Quellcode:
if ChkBoxShowDate.Checked then
begin
  LblDate.Visible := true;
  LblDate.Caption := FormatDateTime('dddd, d. mmmm yyyy', date);
end else
  LblDate.Visible := false;
Grüße, Matze

Jens Hartmann 2. Jan 2010 17:26

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Hallo Alex,

also was mir so aufgefallen ist, sind deine Bezeichner. Es kann sein, das es so OK ist, wenn du diese z.B. für Find oder so nutzen tust, aber wenn nicht wäre es schon ratsam, deinen Komponenten eindeutige Bezeichner zu geben...

Delphi-Quellcode:
Image11.Visible := False;
Image10.Visible := True;

Label10.Caption:='Label10';
Label10.Left:=348; //344 
Label10.Caption:=FormatDateTime('dddd, d. mmmm yyyy', date);

//So z.B.

ImageFirma.Visible := False;
ImageKunde.Visible := True;

//oder, bevor man mich schlägt weil Deutsche Namen

Image.Company := false;
Image.Company := true;
ich denke Du weißt was ich meine.

[EDIT] Zu langsam, aber kein roter Kasten, seltsam

Gruß Jens

AlexII 2. Jan 2010 17:30

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Ich hab in der Schule so gelernt, wir habe nie die Bezeichnung geändert. Bin also so gewöhnt, die Umstellung ist sogar etwas umständlich. Aber mal schauen, vllt kriege ich es hin. :mrgreen:

Jens Hartmann 2. Jan 2010 17:33

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Zitat:

Zitat von Alex
Ich hab in der Schule so gelernt, wir habe nie die Bezeichnung geändert. Bin also so gewöhnt, die Umstellung ist sogar etwas umständlich. Aber mal schauen, vllt kriege ich es hin.

Es wird Dir und allen anderen aufjedenfall das leben leichter machen. Du willst ja vieleicht auch in 2 Jahren nochmal was an deinem Programm machen. :thumb:

Gruß Jens

Matze 2. Jan 2010 17:47

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Zitat:

Zitat von Jens Hartmann
Delphi-Quellcode:
//oder, bevor man mich schlägt weil Deutsche Namen

Image.Company := false;
Image.Company := true;

Na ob das kompiliert? :stupid:

AlexII 2. Jan 2010 22:46

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Also ich hab jetzt den ganzen Code in OnCreate verlagert, aber mehr als die Hälfe funktioniert nicht. :wall: Da werden den Formularen 3 und 5 Werte zugewiesen, aber diese sind doch noch nicht createt. :wall:

Hab keine Ahnung wie man das anders als in OnShow machen kann. :wall:

Jens Hartmann 2. Jan 2010 23:14

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Zitat:

Zitat von Matze
Na ob das kompiliert?

:oops:

Ne, ich denke eher nicht, muss natürlich so aussehen. :idea:

Delphi-Quellcode:
CompanyImage.Visible := False;
CustomerImage.Visible := True;
Jens :hi:

Jens Hartmann 2. Jan 2010 23:16

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Zitat:

Zitat von Alex
Da werden den Formularen 3 und 5 Werte zugewiesen

Dann leg die Zuweisung doch in das FormCreate von Form3 und von Form5. Es ist logisch. In deiner Projektdatei, werden diese erst später erstellt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 Uhr.
Seite 2 von 4     12 34      

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