AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringGrid Zellen - TUpDown in Zellen

Ein Thema von Hirnsausen · begonnen am 12. Mär 2006 · letzter Beitrag vom 14. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Hirnsausen
Hirnsausen

Registriert seit: 12. Mär 2006
Ort: 18°00'33.64" N, 76°46'50.73" W, elev 344 ft
64 Beiträge
 
Delphi 7 Personal
 
#1

TStringGrid Zellen - TUpDown in Zellen

  Alt 12. Mär 2006, 14:06
Erneut Grüße.

Wie kann ich jede Zelle der 2. Column mit einem TUpDown-Feature ausstatten? Ich möchte damit die Editiermöglichkeit dieser Zellen begrenzen.

Die Anzahl der Rows ändert sich zur Laufzeit mehrmals. Ich halte ein integriertes TUpDown programmiertechnisch für mich interessanter als ein neben dem TStringGrid existierendes TUpDown. Können Zellen mit so einem Zusatzobjekt ausgestattet werden, so daß es bei Row-Erstellung schon automatisch mit dabei ist?

Auch gleich eine weitere Frage: das TUpDown braucht erst bei Editieren der Zelle sichtbar zu sein, ist dies machbar?
Vielen Dank für Eure Zeit, Absicht, Mühe und Ideen.

Sven
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 12. Mär 2006, 14:20
Hallo Sven,

der standardmäßige inplace editor wird einfach vor dem StringGrid gezeichnet, wenn er gebraucht wird. Genauso kannst auch du ein beliebiges Control dort zeichnen. Dazu ermittelst du das Rechteck, welches dir zur Verfügung steht und überlegst dir, wie du den Edit-Modus ein- bzw. ausschaltest. Beispiele findest du, wenn du im Netz nach "stringgrid inplace editor" suchst. klick

marabu
  Mit Zitat antworten Zitat
Benutzerbild von Hirnsausen
Hirnsausen

Registriert seit: 12. Mär 2006
Ort: 18°00'33.64" N, 76°46'50.73" W, elev 344 ft
64 Beiträge
 
Delphi 7 Personal
 
#3

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 12. Mär 2006, 19:34
Hallo,

danke zunächst für den Link. Ich habe mich dort umgeschaut und versucht, jenen Code für mein TUpDown zu adaptieren.

Leider klappt es nicht richtig:
- Das TUpDown wird nicht sichtbar.
- Andere Buttons sind nicht mehr benutzbar.

Das TUpDown wurde invisible auf der selben Form abgelegt, reicht von 1 bis 10.

Hier zum besseren Verständnis der Code:

Delphi-Quellcode:
procedure TAlpha.StringGridSounds0SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
 R: TRect;
begin
 if ACol=2 then
 begin
  with StringGridSounds0 do
  begin
   Options:=Options+[goEditing];
  end;
  R:=StringGridSounds0.CellRect(ACol,ARow);
  R.Left:=R.Left+StringGridSounds0.Left;
  R.Right:=R.Right+StringGridSounds0.Left;
  R.Top:=R.Top+StringGridSounds0.Top;
  R.Bottom:=R.Bottom+StringGridSounds0.Top;
  with UpDownSounds do
  begin
   Left:=R.Left+1;
   Top:=R.Top+1;
   Width:=(R.Right+1)-R.Left;
   Height:=(R.Bottom+1)-R.Top;
   Visible:=True;
   SetFocus;
  end;
 end
 else
 if ACol<>2 then
 begin
  with StringGridSounds0 do
  begin
   Options:=Options-[goEditing];
  end;
 end
end;

procedure TAlpha.StringGridSounds0Exit(Sender: TObject);
begin
 StringGridSounds0.Cells[2,StringGridSounds0.Row]:=IntToStr(UpDownSounds.Position);
 UpDownSounds.Visible:=False;
 StringGridSounds0.SetFocus;
end;
Was muß ich ändern?
Vielen Dank für Eure Zeit, Absicht, Mühe und Ideen.

Sven
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 12. Mär 2006, 19:41
Wo und wie erzeugst du das UpDown-Control? Soll das Control immer sichtbar sein, wenn eine Zelle in der dritten Spalte des Grids fokusiert ist?

marabu
  Mit Zitat antworten Zitat
Benutzerbild von Hirnsausen
Hirnsausen

Registriert seit: 12. Mär 2006
Ort: 18°00'33.64" N, 76°46'50.73" W, elev 344 ft
64 Beiträge
 
Delphi 7 Personal
 
#5

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 12. Mär 2006, 19:59
Hallo Marabou,

danke für Deine Hilfe. Ich erzeuge das TUpDown beim Designing der Form in der IDE, also wohl bei Form.OnCreate. denke ich.

Ja, jedesmal, wenn irgendeine Zelle der dritten Säule (Column 2) selektiert wurde, soll das TUpDown sichtbar werden. Und Unsichtbar, wenn der Editiervorgang abgeschlossen ist und die Zelle den Wert des TUpDown.Position übernommen hat.
Vielen Dank für Eure Zeit, Absicht, Mühe und Ideen.

Sven
  Mit Zitat antworten Zitat
Benutzerbild von Hirnsausen
Hirnsausen

Registriert seit: 12. Mär 2006
Ort: 18°00'33.64" N, 76°46'50.73" W, elev 344 ft
64 Beiträge
 
Delphi 7 Personal
 
#6

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 13. Mär 2006, 16:20
Wer kann helfen?
Vielen Dank für Eure Zeit, Absicht, Mühe und Ideen.

Sven
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 13. Mär 2006, 18:43
Hallo Sven,

dein Versuch ist doch gar nicht so falsch gewesen. Schau dir mein Beispiel an und finde den Unterschied. Wie es am Ende zu realisieren ist, das hängt von einer Reihe von Detailanforderungen ab, die du noch nicht mitgeteilt hast.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip sg-updown_119.zip (2,0 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Hirnsausen
Hirnsausen

Registriert seit: 12. Mär 2006
Ort: 18°00'33.64" N, 76°46'50.73" W, elev 344 ft
64 Beiträge
 
Delphi 7 Personal
 
#8

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 13. Mär 2006, 20:03
Hallo Marabou,

ich denke, ich werde Dir (und allen anderen hilfsbereiten Teilnehmern) den gesamten Sourcecode zugänglich machen. Da ich keine 3rd-Party-Elemente verwende, sollte also alles ganz problemlos kompilierbar sein.

Das Löschen von Rows geht auch noch nicht richtig, aber vieleicht komme ich damit selbst klar.

Alle Versuche mache ich gegenwärtig mit dem StringGridSounds0 innerhalb dieses Projektes. Das seitliche UpDownSounds ist nur eine vorläufige Lösung, es soll ja durch ein UpDown innerhalb jeder editierbaren Zelle ersetzt werden.

Zitat:
Wo und wie erzeugst du das UpDown-Control?
Durch Anbringen auf der Form, bis jetzt, innerhalb der IDE.

Zitat:
Soll das Control immer sichtbar sein, wenn eine Zelle in der dritten Spalte des Grids fokusiert ist?
Ja.

Grüße,

Sven
Angehängte Dateien
Dateityp: rar soundscape_171.rar (228,1 KB, 6x aufgerufen)
Vielen Dank für Eure Zeit, Absicht, Mühe und Ideen.

Sven
  Mit Zitat antworten Zitat
Benutzerbild von Hirnsausen
Hirnsausen

Registriert seit: 12. Mär 2006
Ort: 18°00'33.64" N, 76°46'50.73" W, elev 344 ft
64 Beiträge
 
Delphi 7 Personal
 
#9

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 13. Mär 2006, 21:31
Hallo Marabou,

während Deine Beispielsform funktioniert, bleibt bei meiner Form das UpDown noch immer unsichtbar.

Hier mein modifizierter Code nach Deinem Beispiel:

Delphi-Quellcode:
procedure TAlpha.StringGridSounds0SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
 R: TRect;
begin
 if ACol=2 then
 begin
  with StringGridSounds0 do
  begin
   Options:=Options-[goEditing];
   R:=CellRect(ACol, ARow);
  end;
  Zeile:=ARow;
  with UpDownSounds do
  begin
   Position:=StrToInt(StringGridSounds0.Cells[2,Zeile]);
   Top:=R.Top;
   Left:=R.Right;
   Visible:=True;
  end;
 end
 else
 if ACol<>2 then
 begin
  with StringGridSounds0 do
  begin
   Options:=Options-[goEditing];
  end;
  UpDownSounds.Visible:=False;
 end
end;
Entweder liegt es am Positionieren, oder an irgend einem anderen Faktor welchen ich noch nicht kenne.

Sven
Vielen Dank für Eure Zeit, Absicht, Mühe und Ideen.

Sven
  Mit Zitat antworten Zitat
Benutzerbild von Hirnsausen
Hirnsausen

Registriert seit: 12. Mär 2006
Ort: 18°00'33.64" N, 76°46'50.73" W, elev 344 ft
64 Beiträge
 
Delphi 7 Personal
 
#10

Re: TStringGrid Zellen - TUpDown in Zellen

  Alt 14. Mär 2006, 00:04
(siehe unten)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:40 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