AGB  ·  Datenschutz  ·  Impressum  







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

Combobox in der Zelle eines Stringgrids

Ein Thema von Flogo · begonnen am 26. Feb 2005 · letzter Beitrag vom 20. Mär 2005
Antwort Antwort
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#1

Combobox in der Zelle eines Stringgrids

  Alt 26. Feb 2005, 19:20
Hi

Mich würde mal interessieren, ob und wenn ja wie man eine Combobox in einer Zelle eines Stringgrids/Drawgrids reinbekommt, so dass man in einer Zelle eben nicht nur Text eingeben kann, sondern zwischen verschiedenen Vorgabewerten wählen kann.

Muss man das Zeichnen selber übernehmen und die Klicks auf das Grid abfangen und auswerten? oder kann man die Delphi-Komponete (TCombobox) benutzen?
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Combobox in der Zelle eines Stringgrids

  Alt 26. Feb 2005, 20:40
Hi Flo,

einfach mal suchen, das wurde schon durchgekaut.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Combobox in der Zelle eines Stringgrids

  Alt 26. Feb 2005, 20:47
Das sollte dir weiter helfen...
Angehängte Dateien
Dateityp: pas main_107.pas (14,7 KB, 44x aufgerufen)
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#4

Re: Combobox in der Zelle eines Stringgrids

  Alt 26. Feb 2005, 21:10
Wow! Vielen Dank!
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#5

Re: Combobox in der Zelle eines Stringgrids

  Alt 27. Feb 2005, 11:59
Ich hab mir jetzt aus den verschiedenen Threads folgendes zusammengebaut (Die meisten wahren ja zum DBGrid + Checkbox). Weil es bei mir viel kürzer geworden ist, als bei den meisten Beispielen wüsste ich gerne ob ich nicht irgendwas wichtiges vergessen hab.

Delphi-Quellcode:
function TStringGridEx.AddComboBox(aCol, aRow: Integer): TComboBox;
var Rect: TRect;
begin
  Result := TComboBox.Create(Owner);
  Objects[aCol, aRow] := Result;
  Result.Parent := Parent;
  Result.Color := clWindow;
  Rect := CellRect(aCol, aRow);
  Result.Left := Left + Rect.Left +2;
  Result.Top := Top + Rect.Top +2;
  Result.Width := Rect.Right - Rect.Left;
  Result.Height := Rect.Bottom - Rect.Top;
end;
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#6

Re: Combobox in der Zelle eines Stringgrids

  Alt 20. Mär 2005, 16:35
Hi!

Irgendwie stehe ich ein bisschen auf dem Schlauch... Wie bekommt man die Funktion TStringGridEx.AddComboBox(aCol, aRow: Integer): TComboBox; zum Laufen?

Ich erhalte immer einen ganzen Schwanz von Fehlermeldungen beim Compilieren:
Code:
  [Fehler] Unit1.pas(27): Funktion benötigt Ergebnistyp
[Fehler] Unit1.pas(30): Undefinierter Bezeichner: 'Owner'
[Fehler] Unit1.pas(31): Undefinierter Bezeichner: 'Objects'
[Fehler] Unit1.pas(31): Undefinierter Bezeichner: 'aRow'
[Fehler] Unit1.pas(32): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(33): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(34): Undefinierter Bezeichner: 'CellRect'
[Fehler] Unit1.pas(35): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(36): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(37): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(38): Operator oder Semikolon fehlt
Kann mir jemand zumindest den ersten Fehler "Funktion benötigt Ergebnistyp" erklären? Ich habe die Funktion einfach einmal in meien Unit kopiert, die Units Grids und StdCtrls sind auch in der Uses-Clause drin...

Vielen Dank im Voraus!
Mamphil
The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Combobox in der Zelle eines Stringgrids

  Alt 20. Mär 2005, 17:22
Moin Mamphil,

ich denke mal, dass Du Dir keine Klasse TStringGridEx erstellt hast.
Bei AddComboBox handelt es sich nicht um einen einzeln nutzbare Funktion, sondern eine Methode der oben genannten Klasse.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#8

Re: Combobox in der Zelle eines Stringgrids

  Alt 20. Mär 2005, 18:24
Hi!

Danke für den dezenten Hinweis. Es muss also das folgende im interface-Abschnitt stehen:
Delphi-Quellcode:
type
  TStringGridEx = class(TStringGrid)
    function AddComboBox(aCol, aRow: Integer): TComboBox;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
Auf die leeren private- und public-Abschnitte kann aber doch verzichtet werden?

[EDIT]
Gibt es eigentlich eine Möglichkeit ein TStringGrid in ein TStringGridEx umzuwandeln oder muss man das TStringGridEx immer zur Laufzeit erstellen?
[/EDIT]

Vielen Dank für die Hilfe!
Mamphil
The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Combobox in der Zelle eines Stringgrids

  Alt 20. Mär 2005, 19:12
Moin Mamphil,

klar kannst Du die nicht benötigten Abschnitte weglassen.

Zitat von Mamphil:
Gibt es eigentlich eine Möglichkeit ein TStringGrid in ein TStringGridEx umzuwandeln oder muss man das TStringGridEx immer zur Laufzeit erstellen?
Du kannst Dir eine Unit mit der Deklaration erstellen, ergänzt, um

procedure Register; im interface-Abschnitt

die dann, z.B. so aussehen kann.

Delphi-Quellcode:
procedure Register;
begin
 RegisterComponents('Meine Kompos', [TStringGridEx]);
end;
Die Unit kommt dann, z.B., in das Delphi\Lib-Verzeichnis, und kann dann einem Package zugefügt werden, dass Du installierst.
Wenn Du es noch besonders "nett" machen willst machst Du Dir eine DCR-Datei (Delphi-Bildeditor), um ein eigenes Icon für die Kompo zu haben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#10

Re: Combobox in der Zelle eines Stringgrids

  Alt 20. Mär 2005, 19:57
Hi!

Vielen Dank für die sehr ausführliche Antwort! Ich werd mal sehen, was ich damit machen kann...

Mamphil
The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”
  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 23:27 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