Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Resize- Ereignis optimieren


opfer.der.genauigkeit - Di 09.11.04 14:43
Titel: Resize- Ereignis optimieren
Hi,

Mein Problem besteht darin, dass dieser ResizeAlgo leider n bissl nicht schnell läuft.
Hat jemand nen Verbesserungsvorschlag oder Lust den Algo hier in Asm zu verwandeln. *gg*

Ich hatte mal ne schönere Lösung irgendwo aber ich hab die natürlich weggeworfen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
// Es wird nur im Verhältnis die Größe geändert.
// Prozentual und sowas.. 
procedure TFrameFileArchive.FrameResize(Sender: TObject);
var
  a, b, c, d, e, f: integer;
  op: integer;
begin
  inherited;

  a := 5;
  b := 15;
  c := 15;
  d := 30;
  e := 5;
  f := 30;

  op := cxGrid.Width - (a + b + c + d + e + f);

  cxGridDBTableVersion.Width := (a * op) div 100;
  cxGridDBTableDate.Width    := (b * op) div 100;
  cxGridDBTableCreator.Width := (c * op) div 100;
  cxGridDBTableInfo.Width    := (d * op) div 100;
  cxGridDBTableFileExt.Width := (e * op) div 100;
  cxGridDBTableComment.Width := (f * op) div 100;
end;


Thx für Einfälle.

Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt.


UGrohne - Di 09.11.04 14:49

Der Titel Deines Beitrages ist nicht aussagekräftigt genug. Man weiß nicht genau, um was es geht. Bitte ändere diesen entsprechend!
Dies kannst Du tun, indem Du in Deinem ersten Beitrag auf "Edit" klickst und den Titel dort änderst.

Dazu hier auch noch der Auszug aus den Richtlinien:
Richtlinien hat folgendes geschrieben:
1.2 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist. Eine Pseudocodezeile oder die Nennung des Objektes, um welches es sich in dem Beitrag handelt, helfen da schon mehr weiter. Wenn Du beispielsweise wissen möchtest, wie es möglich ist, eine Integer-Variable in das String-Format zu konvertieren, würde ein Beitrag wie etwa "Integer zu String" oder "Integerkonvertierung" anderen Forenmitgliedern einen kurzen Überblick über die eigentliche Fragestellung verschaffen. So ist es möglich gezielter Lösungen für Probleme zu finden. Zudem solltest du immer daran denken: Der Fragesteller möchte etwas von den anderen Usern - nicht umgekehrt.

Vielen Dank


opfer.der.genauigkeit - Di 09.11.04 14:52

Sorry, hatte angefangen zu schreiben, dann nicht und irgendwie doch.
*niederknie* ich änderes es sofort. ;)


opfer.der.genauigkeit - Di 09.11.04 14:57

Hat sich mitlerweile erledigt, ich konnte die Berechnung in ein anderes Event einbauen.

Auch der Code hat sich leicht verändert.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
var
  a, b, c, op: integer;
begin
  a := 5;
  b := 15;
  c := 30;

  op := cxGrid.Width - 2 * (a + b + c); 

  a := (a * op) div 100;
  b := (b * op) div 100;
  c := (c * op) div 100;

  cxGridDBTableVersion.Width := a;
  cxGridDBTableDate.Width    := b;
  cxGridDBTableCreator.Width := b;
  cxGridDBTableInfo.Width    := c;
  cxGridDBTableFileExt.Width := a;
  cxGridDBTableComment.Width := c;


Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt.