-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
6. Nov 2006
Dieser Satz ging mir die ganze Woche nicht aus dem Kopf, da es ja eigentlich bei jedem Objekt funktioniert. Deshalb habe ich mich am Wochenende noch einmal daran gesetzt, und folgendes herausgefunden. Meine ersten Tests hatte ich so versucht.
procedure TDateLine.Paint;
begin
inherited;
UpdateItems;
end;
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
30. Okt 2006
Hallo oki,
war die ganze Zeit geschäftlich unterwegs und hatte daher auch keine Änderungen vorgenommen.
Bin nun aber ein bißchen weiter gekommen, Problem war ich hatte die x,y Position mit CellRect ermittelt, diese Funktion gibt aber 0,0 zurück wenn die Zeile,Spalte außerhalb des sichtbaren Bereichs liegt. Habe daher mir eine eigene Funktion geschrieben.
Mausscrollrad, Scrollbars, Tasten...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
20. Okt 2006
Das gibt es auch schon, allerdings im THeader nennt sich FirstDate, LastDate ansonsten würde mein Demo auch nicht funktionieren.
Hier übrigens mal ein Demo, nur um anderen einen Überblick zu geben über was wir hier reden.
Ich habe noch immer das Problem beim scrollen des Grids muß wohl auf eine Message vom Grid reagieren um es zu beheben.
Also keine Postings weil etwas nicht richtig...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
20. Okt 2006
Genau hier habe ich auch angesetzt und es funktioniert auch soweit "fast" alles.
Diese proceduren existieren bereits siehe hier
procedure TDateItem.SetStartDate(Value : TDateTime);
begin
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
19. Okt 2006
Leider funktioniert es so nicht, da sich das DateLine dann in einer Endlosschleife befindet.
Obwohl DrawItems nur die neue Position berechnet habe ich dann eine Prozessorauslastung von 100%.
Reagiere ich auf Veränderungen von TDateLine und rufe dann DrawItems auf, habe ich 0% Prozessorauslastung.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
19. Okt 2006
Hi oki,
genau daran sitze ich gerade, allerdings muß man auch auf das StartDatum und EndDatum von TDateLine
eingehen. Also ob Items überhaupt gezeichnet werden sollen oder nicht.
Probleme habe ich nämlich, wenn ein Item z.Bsp. am 19.10.2006 beginnt am 21.10.06 endet und das StartDatum von TDateline am 20.10.06 gesetzt ist. Wie zeichne ich ein halbes Item?
Oder anderes Problem wenn...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
19. Okt 2006
Ja das stimmt und daran arbeite ich gerade, habe mich entschieden TControlDateItem nun von TGraphicControl abzuleiten, da ich eigentlich kein Fenster Handle benötige.
Falls es aber doch irgendwann der Fall sein sollte, werde ich TCustomControl verwenden.
Um für alle die vielleicht irgenwann ein ähnliches Problem haben sollten, werde ich spätestens nächste Woche den kompletten Aufbau und das...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
17. Okt 2006
Hi oki,
zwei der drei Fehler konnte ich nun auch gestern Abend lokalisieren und beheben.
Trotzdem war es gut für mich zu sehen, daß ich es auch richtig interpretiert hatte.
Habe kleinere Veränderungen beim zeichnen von TControlDateItem vorgenommen zumindest werden diese
wieder auf Größe der Auswahl gezeichnet.
Was mich allerdings schon gestern nach der Fehlersuche beschäftigt hatte...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
16. Okt 2006
Hi oki,
habe mir das ganze am Wochenende mal angeschaut, leider gab es da zwei Probleme die ich nicht so ganz verstehen kann.
Hier kommt ein Runtime Error, ich vermute mal es liegt daran das die TCollecton noch nicht erstellt wurde.
function TDateItems.Add: TDateItem;
begin
Result := TDateItem(inherited Add);
Update(Result);
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
13. Okt 2006
So, erstmal Vielen Dank für die große Mühe die Du dir gemacht hast.
Werde mich jetzt am Wochenende ausgehend damit beschäftigen und am Montag meinen Fortschritt mitteilen.
Wünsche Dir ein schönes Wochenende
PS:
Dabei muß ich Dir allerdings Recht geben! Aber nicht vergessen ist meine erste Komponente.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
13. Okt 2006
Hört sich ja gut an. Wenn ich schon etwas vorbereiten kann das Dir hilft, sag Bescheid.
Das Zeichnen der Items auf dem Grid funktioniert ja soweit schon, ich weiß natürlich nicht ob Du es ausprobiert hast.
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
12. Okt 2006
Hallo oki,
danke das Du es dir angeschaut hast, TCollection denke ich wird der richtige Weg sein.
Wäre es möglich TCollection und TCollectionItem zu erstellen, und nur die Eigenschaften von TDateItem
in TCollectionItem zu lesen und zu schreiben?
Damit die eigentliche Routine zum zeichnen, sowie die Eigenschaften von TDateItem in der Klasse TDateItem bleiben?
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
9. Okt 2006
Erstmal Vielen Dank oki,
werde mir das ganze mal durch den Kopf gehen lassen und natürlich auch ausprobieren.
Danke, Danke!
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
9. Okt 2006
Hi,
Ok, vielleicht war meine Frage zu kompliziert gestellt, deshalb versuche ich es nocheinmal.
Ich habe mir ein Grid erstellt, in dem ich das Datum in Spalten und die Uhrzeit oder frei definierbare Texte, in Zeilen anzeigen lassen kann. Auf dieses Grid, möchte ich DateItems als Einträge im Kalender anzeigen lassen. Siehe Screenshot erstes Posting.
TDateLine = TCustomGrid
TDateItem =...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by uwewo,
6. Okt 2006
Hallo,
ich habe am Anfang des Jahres angefangen meine erste Komponente zu programmieren, da ich jetzt wieder mehr Zeit habe möchte ich gerne daran weiterarbeiten.
Es soll eine Kalenderkomponente werden abgeleitet von TCustomGrid. Auf diesem Grid soll man Objekte abgeleitet von TGraphicControl ablegen können, die die Einträge im Kalender verwalten.
Siehe Screenshot.
Um diese Objekte zu...